Skip to content

Commit 9584b22

Browse files
committed
make tests file yaml
1 parent 1831ff4 commit 9584b22

File tree

6 files changed

+3096
-4109
lines changed

6 files changed

+3096
-4109
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ci/svd2rust-regress/Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ authors = ["James Munns <james.munns@gmail.com>", "The svd2rust developers"]
77
[dependencies]
88
clap = { version = "4.1", features = ["color", "derive", "string", "env"] }
99
svd2rust = { path = "../../" }
10-
reqwest = { version = "0.11", features= ["blocking"] }
10+
reqwest = { version = "0.11", features = ["blocking"] }
1111
rayon = "1.4"
1212
anyhow = "1"
1313
thiserror = "1"
1414
serde = "1"
1515
serde_json = "1"
16+
serde_yaml = "0.9"
1617
prettyplease = "0.2"
1718
syn = "2"
1819
wildmatch = "2.1.1"

ci/svd2rust-regress/src/main.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ pub struct Opts {
241241
#[clap(global = true, long = "toolchain")] // , env = "RUSTUP_TOOLCHAIN"
242242
pub rustup_toolchain: Option<String>,
243243

244-
/// Test cases to run, defaults to `tests.json`
244+
/// Test cases to run
245245
#[clap(global = true, long, default_value = default_test_cases())]
246246
pub test_cases: std::path::PathBuf,
247247

@@ -273,18 +273,18 @@ impl Opts {
273273
}
274274
}
275275

276-
/// Hack to use ci/tests.json as default value when running as `cargo run`
276+
/// Hack to use ci/tests.yml as default value when running as `cargo run`
277277
fn default_test_cases() -> std::ffi::OsString {
278278
std::env::var_os("CARGO_MANIFEST_DIR")
279279
.map(|mut e| {
280-
e.extend([std::ffi::OsStr::new("/tests.json")]);
280+
e.extend([std::ffi::OsStr::new("/tests.yml")]);
281281
std::path::PathBuf::from(e)
282282
.strip_prefix(std::env::current_dir().unwrap())
283283
.unwrap()
284284
.to_owned()
285285
.into_os_string()
286286
})
287-
.unwrap_or_else(|| std::ffi::OsString::from("tests.json".to_owned()))
287+
.unwrap_or_else(|| std::ffi::OsString::from("tests.yml".to_owned()))
288288
}
289289

290290
fn default_svd2rust() -> std::ffi::OsString {

ci/svd2rust-regress/src/tests.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,23 @@ pub fn tests(test_cases: Option<&std::path::Path>) -> Result<&'static [TestCase]
104104
Ok(cases)
105105
} else {
106106
let path = test_cases.ok_or_else(|| anyhow::format_err!("no test cases specified"))?;
107-
let cases: Vec<TestCase> = serde_json::from_reader(
108-
std::fs::OpenOptions::new()
109-
.read(true)
110-
.open(path)
111-
.with_context(|| format!("couldn't open file {}", path.display()))?,
112-
)?;
107+
let cases: Vec<TestCase> = if path.extension() != Some(std::ffi::OsStr::new("yml")) {
108+
serde_json::from_reader(
109+
std::fs::OpenOptions::new()
110+
.read(true)
111+
.open(path)
112+
.with_context(|| format!("couldn't open file {}", path.display()))?,
113+
)?
114+
} else if path.extension() != Some(std::ffi::OsStr::new("json")) {
115+
serde_yaml::from_reader(
116+
std::fs::OpenOptions::new()
117+
.read(true)
118+
.open(path)
119+
.with_context(|| format!("couldn't open file {}", path.display()))?,
120+
)?
121+
} else {
122+
anyhow::bail!("unknown file extension for {}", path.display());
123+
};
113124
Ok(TESTS.get_or_init(|| cases))
114125
}
115126
}

0 commit comments

Comments
 (0)