diff options
author | Nick Mathewson <nickm@torproject.org> | 2024-02-15 10:32:59 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2024-03-13 09:38:22 -0400 |
commit | b529bb0a4dcabfae10a907fbed9101b9715fb559 (patch) | |
tree | b7267bfa4824593f3202d45e22034ec02af314c2 | |
parent | 969e037edf422a6a574f3367d4784e2864d1c8a8 (diff) | |
download | arti-b529bb0a4dcabfae10a907fbed9101b9715fb559.tar.gz arti-b529bb0a4dcabfae10a907fbed9101b9715fb559.zip |
Use ConfigurationSource::Verbatim in our tests.
-rw-r--r-- | crates/arti/src/cfg.rs | 24 | ||||
-rw-r--r-- | crates/tor-config/src/load.rs | 28 | ||||
-rw-r--r-- | crates/tor-config/src/path.rs | 12 |
3 files changed, 41 insertions, 23 deletions
diff --git a/crates/arti/src/cfg.rs b/crates/arti/src/cfg.rs index 122e0661c..8226bdb2b 100644 --- a/crates/arti/src/cfg.rs +++ b/crates/arti/src/cfg.rs @@ -600,7 +600,9 @@ mod test { fn default_config() { use InExample::*; - let empty_config = config::Config::builder().build().unwrap(); + let empty_config = tor_config::ConfigurationSources::new_empty() + .load() + .unwrap(); let empty_config: ArtiCombinedConfig = tor_config::resolve(empty_config).unwrap(); let default = (ArtiConfig::default(), TorClientConfig::default()); @@ -661,10 +663,14 @@ mod test { } let parses_to_defaults = |example: &str, which: WhichExample, uncommented: bool| { - let cfg = config::Config::builder() - .add_source(config::File::from_str(example, config::FileFormat::Toml)) - .build() - .unwrap(); + let cfg = { + let mut sources = tor_config::ConfigurationSources::new_empty(); + sources.push_source( + tor_config::ConfigurationSource::from_verbatim(example.to_string()), + tor_config::sources::MustRead::MustRead, + ); + sources.load().unwrap() + }; // This tests that the example settings do not *contradict* the defaults. let results: ResolutionResults<ArtiCombinedConfig> = @@ -1244,8 +1250,12 @@ example config file {which:?}, uncommented={uncommented:?} fn parse(&self) -> config::Config { let s = self.build_string(); eprintln!("parsing\n --\n{}\n --", &s); - let c: toml::Value = toml::from_str(&s).expect(&s); - config::Config::try_from(&c).expect(&s) + let mut sources = tor_config::ConfigurationSources::new_empty(); + sources.push_source( + tor_config::ConfigurationSource::from_verbatim(s.to_string()), + tor_config::sources::MustRead::MustRead, + ); + sources.load().expect(&s) } fn resolve<R: tor_config::load::Resolvable>(&self) -> Result<R, ConfigResolveError> { diff --git a/crates/tor-config/src/load.rs b/crates/tor-config/src/load.rs index 50bfebd53..d37dca6ab 100644 --- a/crates/tor-config/src/load.rs +++ b/crates/tor-config/src/load.rs @@ -783,12 +783,14 @@ mod test { a = "hi" old = true "#; - let source = config::File::from_str(test_data, config::FileFormat::Toml); - - let cfg = config::Config::builder() - .add_source(source) - .build() - .unwrap(); + let cfg = { + let mut sources = crate::ConfigurationSources::new_empty(); + sources.push_source( + crate::ConfigurationSource::from_verbatim(test_data.to_string()), + crate::sources::MustRead::MustRead, + ); + sources.load().unwrap() + }; let _: (TestConfigA, TestConfigB) = resolve_ignore_warnings(cfg.clone()).unwrap(); @@ -835,11 +837,15 @@ mod test { // suppress a dead-code warning. let _b = TestConfigC::builder(); - let source = config::File::from_str(test_data, config::FileFormat::Toml); - let cfg = config::Config::builder() - .add_source(source) - .build() - .unwrap(); + let cfg = { + let mut sources = crate::ConfigurationSources::new_empty(); + sources.push_source( + crate::ConfigurationSource::from_verbatim(test_data.to_string()), + crate::sources::MustRead::MustRead, + ); + sources.load().unwrap() + }; + { // First try "A", then "C". let res1: Result<ResolutionResults<(TestConfigA, TestConfigC)>, _> = diff --git a/crates/tor-config/src/path.rs b/crates/tor-config/src/path.rs index 41acbbbef..9fe00eead 100644 --- a/crates/tor-config/src/path.rs +++ b/crates/tor-config/src/path.rs @@ -404,11 +404,13 @@ mod test_serde { } fn deser_toml_cfg(toml: &str) -> CfgPath { dbg!(toml); - let cfg = config::File::from_str(toml, config::FileFormat::Toml); - let cfg = config::Config::builder() - .add_source(cfg) - .build() - .expect("parse toml failed"); + let mut sources = crate::ConfigurationSources::new_empty(); + sources.push_source( + crate::ConfigurationSource::from_verbatim(toml.to_string()), + crate::sources::MustRead::MustRead, + ); + let cfg = sources.load().unwrap(); + dbg!(&cfg); let TestConfigFile { p } = cfg.try_deserialize().expect("deser cfg failed"); p |