aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2024-02-15 10:32:59 -0500
committerNick Mathewson <nickm@torproject.org>2024-03-13 09:38:22 -0400
commitb529bb0a4dcabfae10a907fbed9101b9715fb559 (patch)
treeb7267bfa4824593f3202d45e22034ec02af314c2
parent969e037edf422a6a574f3367d4784e2864d1c8a8 (diff)
downloadarti-b529bb0a4dcabfae10a907fbed9101b9715fb559.tar.gz
arti-b529bb0a4dcabfae10a907fbed9101b9715fb559.zip
Use ConfigurationSource::Verbatim in our tests.
-rw-r--r--crates/arti/src/cfg.rs24
-rw-r--r--crates/tor-config/src/load.rs28
-rw-r--r--crates/tor-config/src/path.rs12
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