blob: 25eee37f7e110539471cddc3b4bc3462d55713b0 [file] [log] [blame]
# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/components.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
import("//build/testing/environments.gni")
import("//build/testing/host_test_data.gni")
CORE_DEPS = [
"//sdk/fidl/fuchsia.overnet:fuchsia.overnet-rustc",
"//sdk/fidl/fuchsia.overnet.protocol:fuchsia.overnet.protocol-rustc",
"//sdk/fidl/fuchsia.net:fuchsia.net-rustc",
"//src/connectivity/overnet/lib/quic",
"//src/lib/cutex",
"//src/lib/async-utils",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/zircon/rust:fuchsia-zircon-status",
"//third_party/boringssl/rust/boringssl-sys",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:async-lock",
"//third_party/rust_crates:base64",
"//third_party/rust_crates:byteorder",
"//third_party/rust_crates:crc",
"//third_party/rust_crates:event-listener",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:libc",
"//third_party/rust_crates:log",
"//third_party/rust_crates:assert_matches",
"//third_party/rust_crates:parking_lot",
"//third_party/rust_crates:pin-project",
"//third_party/rust_crates:rand",
"//third_party/rust_crates:thiserror",
"//third_party/rust_crates/mirrors/quiche",
"//third_party/boringssl",
]
if (is_fuchsia) {
CORE_DEPS += [ "//src/lib/zircon/rust:fuchsia-zircon" ]
} else {
CORE_DEPS += [ "//third_party/rust_crates:tempfile" ]
}
CORE_SOURCES = [
"src/coding.rs",
"src/future_help.rs",
"src/handle_info.rs",
"src/labels.rs",
"src/lib.rs",
"src/link/mod.rs",
"src/link/frame_label.rs",
"src/link/ping_tracker.rs",
"src/peer/mod.rs",
"src/peer/framed_stream.rs",
"src/proxy/mod.rs",
"src/proxy/run/mod.rs",
"src/proxy/run/main.rs",
"src/proxy/run/spawn.rs",
"src/proxy/run/xfer.rs",
"src/proxy/stream.rs",
"src/proxy/handle/mod.rs",
"src/proxy/handle/channel.rs",
"src/proxy/handle/event_pair.rs",
"src/proxy/handle/signals.rs",
"src/proxy/handle/socket.rs",
"src/router/diagnostics_service.rs",
"src/router/mod.rs",
"src/router/routes.rs",
"src/router/security_context.rs",
"src/router/service_map.rs",
"src/router/link_status_updater.rs",
"src/stat_counter.rs",
"src/test_util.rs",
]
rustc_library("core") {
name = "overnet_core"
edition = "2021"
deps = CORE_DEPS
sources = CORE_SOURCES
}
rustc_test("core_test") {
name = "overnet_core_test"
edition = "2021"
deps = CORE_DEPS + [
"//third_party/rust_crates:arbitrary",
"//src/lib/fuchsia",
]
if (is_host) {
deps += [ ":test_certs" ]
args = [ "--test-threads=1" ]
}
sources = CORE_SOURCES
}
if (is_host) {
host_test_data("test_certs") {
sources = [
"//third_party/rust_crates/mirrors/quiche/quiche/examples/cert.crt",
"//third_party/rust_crates/mirrors/quiche/quiche/examples/cert.key",
"//third_party/rust_crates/mirrors/quiche/quiche/examples/rootca.crt",
]
outputs = [ "$root_out_dir/overnet_test_certs/{{source_file_part}}" ]
}
}
fuchsia_unittest_package("overnet-core-tests") {
deps = [
":core_test",
"//src/connectivity/overnet/overnetstack:certificates",
]
}
group("tests") {
testonly = true
deps = [
":core_test($host_toolchain)",
":overnet-core-tests",
]
}