Add a few tests to tor-config.
This commit is contained in:
parent
42ae8c7a2a
commit
b3b6a92145
|
@ -2595,6 +2595,7 @@ dependencies = [
|
|||
"shellexpand",
|
||||
"thiserror",
|
||||
"tracing",
|
||||
"tracing-test",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -2979,6 +2980,29 @@ dependencies = [
|
|||
"tracing-log",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-test"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3eb7bda2e93bbc9c5b247034acc6a4b3d04f033a3d4b8fc1cb87d4d1c7c7ebd7"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"tracing-core",
|
||||
"tracing-subscriber",
|
||||
"tracing-test-macro",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-test-macro"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4801dca35e4e2cee957c469bd4a1c370fadb7894c0d50721a40eba3523e6e91c"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "try-lock"
|
||||
version = "0.2.3"
|
||||
|
|
|
@ -25,3 +25,4 @@ directories = { version = "4.0.1", optional = true }
|
|||
|
||||
[dev-dependencies]
|
||||
dirs = "4.0.0"
|
||||
tracing-test = "0.2.1"
|
||||
|
|
|
@ -69,9 +69,31 @@ impl Reconfigure {
|
|||
})
|
||||
}
|
||||
Reconfigure::WarnOnFailures => {
|
||||
tracing::warn!("Cannot change field {} on a running client", field.as_ref());
|
||||
tracing::warn!("Cannot change {} on a running client.", field.as_ref());
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use tracing_test::traced_test;
|
||||
|
||||
#[test]
|
||||
#[traced_test]
|
||||
fn reconfigure_helpers() {
|
||||
let how = Reconfigure::AllOrNothing;
|
||||
let err = how.cannot_change("the_laws_of_physics").unwrap_err();
|
||||
assert_eq!(
|
||||
err.to_string(),
|
||||
"Cannot change the_laws_of_physics on a running client.".to_owned()
|
||||
);
|
||||
|
||||
let how = Reconfigure::WarnOnFailures;
|
||||
let ok = how.cannot_change("stuff");
|
||||
assert!(ok.is_ok());
|
||||
assert!(logs_contain("Cannot change stuff on a running client."));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,3 +66,48 @@ impl<T> From<T> for MutCfg<T> {
|
|||
MutCfg::new(config)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn basic_constructors() {
|
||||
let m = MutCfg::new(7_u32);
|
||||
assert_eq!(*m.get(), 7);
|
||||
let m: MutCfg<u32> = MutCfg::default();
|
||||
assert_eq!(*m.get(), 0);
|
||||
let m: MutCfg<u32> = 100.into();
|
||||
assert_eq!(*m.get(), 100);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn mutate_with_existing_ref() {
|
||||
let m = MutCfg::new(100_u32);
|
||||
let old_ref = m.get();
|
||||
m.replace(101);
|
||||
assert_eq!(*old_ref, 100);
|
||||
assert_eq!(*m.get(), 101);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_and_replace() {
|
||||
let m = MutCfg::new(100_u32);
|
||||
let different_100 = Arc::new(100_u32);
|
||||
// won't replace, since it is a different arc.
|
||||
assert!(!m.check_and_replace(&different_100, 200));
|
||||
let old_100 = m.get();
|
||||
assert_eq!(*old_100, 100);
|
||||
assert!(m.check_and_replace(&old_100, 200));
|
||||
assert_eq!(*m.get(), 200);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn map_and_replace() {
|
||||
let m = MutCfg::new(100_u32);
|
||||
let m_old = m.get();
|
||||
m.map_and_replace(|old_val| **old_val * 20);
|
||||
assert_eq!(*m.get(), 2000);
|
||||
assert_eq!(*m_old, 100);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -443,9 +443,8 @@ impl<R: Runtime> DirMgr<R> {
|
|||
// was no current netdir.)
|
||||
self.netdir_consensus_changed.store(true, Ordering::SeqCst);
|
||||
|
||||
// TODO(nickm): need to make sure that notify gets called. But
|
||||
// first I should probably refactor notify() to be more like the
|
||||
// backend for tor-events.
|
||||
// TODO(nickm): need to make sure that notify gets called. But first I should probably
|
||||
// refactor notify() to be more like the backend for tor-events.
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
Loading…
Reference in New Issue