diff options
Diffstat (limited to 'src/rust')
-rw-r--r-- | src/rust/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/crypto/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/external/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/protover/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/protover/protover.rs | 14 | ||||
-rw-r--r-- | src/rust/smartlist/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/tor_allocate/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/tor_log/Cargo.toml | 5 | ||||
-rw-r--r-- | src/rust/tor_rust/Cargo.toml | 6 | ||||
-rw-r--r-- | src/rust/tor_util/Cargo.toml | 6 |
10 files changed, 64 insertions, 3 deletions
diff --git a/src/rust/Cargo.toml b/src/rust/Cargo.toml index 4bbadbe535..e399dbb33a 100644 --- a/src/rust/Cargo.toml +++ b/src/rust/Cargo.toml @@ -23,3 +23,9 @@ default = [] test-c-from-rust = [ "crypto/test-c-from-rust", ] + +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/crypto/Cargo.toml b/src/rust/crypto/Cargo.toml index d68ac48e28..6ebfe0dc11 100644 --- a/src/rust/crypto/Cargo.toml +++ b/src/rust/crypto/Cargo.toml @@ -30,3 +30,9 @@ rand_core = { version = "=0.2.0-pre.0", default-features = false } # execute with `cargo test`. Due to numerous linker issues (#25386), this is # currently disabled by default. test-c-from-rust = [] + +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/external/Cargo.toml b/src/rust/external/Cargo.toml index 60ec03be40..4735144ee6 100644 --- a/src/rust/external/Cargo.toml +++ b/src/rust/external/Cargo.toml @@ -14,3 +14,9 @@ name = "external" path = "lib.rs" crate_type = ["rlib", "staticlib"] +[features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/protover/Cargo.toml b/src/rust/protover/Cargo.toml index a8480e142a..2f7783e76c 100644 --- a/src/rust/protover/Cargo.toml +++ b/src/rust/protover/Cargo.toml @@ -4,6 +4,11 @@ version = "0.0.1" name = "protover" [features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] [dependencies] libc = "=0.2.39" @@ -27,4 +32,3 @@ path = "../tor_log" name = "protover" path = "lib.rs" crate_type = ["rlib", "staticlib"] - diff --git a/src/rust/protover/protover.rs b/src/rust/protover/protover.rs index 7b3f808cb2..8417d85959 100644 --- a/src/rust/protover/protover.rs +++ b/src/rust/protover/protover.rs @@ -10,7 +10,6 @@ use std::str::FromStr; use std::string::String; use external::c_tor_version_as_new_as; -use external::c_tor_is_using_nss; use errors::ProtoverError; use protoset::ProtoSet; @@ -125,6 +124,17 @@ impl From<Protocol> for UnknownProtocol { } } +#[cfg(feature="test_linking_hack")] +fn have_linkauth_v1() -> bool { + true +} + +#[cfg(not(feature="test_linking_hack"))] +fn have_linkauth_v1() -> bool { + use external::c_tor_is_using_nss; + ! c_tor_is_using_nss() +} + /// Get a CStr representation of current supported protocols, for /// passing to C, or for converting to a `&str` for Rust. /// @@ -142,7 +152,7 @@ impl From<Protocol> for UnknownProtocol { /// // C_RUST_COUPLED: protover.c `protover_get_supported_protocols` pub(crate) fn get_supported_protocols_cstr() -> &'static CStr { - if c_tor_is_using_nss() { + if ! have_linkauth_v1() { cstr!("Cons=1-2 \ Desc=1-2 \ DirCache=1-2 \ diff --git a/src/rust/smartlist/Cargo.toml b/src/rust/smartlist/Cargo.toml index 6ddcbee8e9..4ecdf50869 100644 --- a/src/rust/smartlist/Cargo.toml +++ b/src/rust/smartlist/Cargo.toml @@ -11,3 +11,9 @@ name = "smartlist" path = "lib.rs" crate_type = ["rlib", "staticlib"] +[features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/tor_allocate/Cargo.toml b/src/rust/tor_allocate/Cargo.toml index 468425f115..7bb3b9887f 100644 --- a/src/rust/tor_allocate/Cargo.toml +++ b/src/rust/tor_allocate/Cargo.toml @@ -11,3 +11,9 @@ name = "tor_allocate" path = "lib.rs" crate_type = ["rlib", "staticlib"] +[features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/tor_log/Cargo.toml b/src/rust/tor_log/Cargo.toml index 9d06299c05..1aa9be0612 100644 --- a/src/rust/tor_log/Cargo.toml +++ b/src/rust/tor_log/Cargo.toml @@ -9,6 +9,11 @@ path = "lib.rs" crate_type = ["rlib", "staticlib"] [features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] [dependencies] libc = "0.2.39" diff --git a/src/rust/tor_rust/Cargo.toml b/src/rust/tor_rust/Cargo.toml index 86fad3ee76..1523ee0dd1 100644 --- a/src/rust/tor_rust/Cargo.toml +++ b/src/rust/tor_rust/Cargo.toml @@ -14,3 +14,9 @@ path = "../tor_util" [dependencies.protover] path = "../protover" +[features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] diff --git a/src/rust/tor_util/Cargo.toml b/src/rust/tor_util/Cargo.toml index a606a280b2..51e4bd9c5d 100644 --- a/src/rust/tor_util/Cargo.toml +++ b/src/rust/tor_util/Cargo.toml @@ -17,3 +17,9 @@ path = "../tor_log" [dependencies] libc = "=0.2.39" +[features] +# We have to define a feature here because doctests don't get cfg(test), +# and we need to disable some C dependencies when running the doctests +# because of the various linker issues. See +# https://github.com/rust-lang/rust/issues/45599 +test_linking_hack = [] |