Compare commits

...

1 Commits

Author SHA1 Message Date
James Wilson ce3aaf1888 Allow the corpus to point to a single file 2025-07-28 15:51:55 +01:00
2 changed files with 12 additions and 15 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ authors = ["Parity Technologies <admin@parity.io>"]
license = "MIT/Apache-2.0" license = "MIT/Apache-2.0"
edition = "2024" edition = "2024"
repository = "https://github.com/paritytech/revive-differential-testing.git" repository = "https://github.com/paritytech/revive-differential-testing.git"
rust-version = "1.85.0" rust-version = "1.88.0"
[workspace.dependencies] [workspace.dependencies]
revive-dt-common = { version = "0.1.0", path = "crates/common" } revive-dt-common = { version = "0.1.0", path = "crates/common" }
+11 -14
View File
@@ -28,13 +28,19 @@ impl Corpus {
} }
} }
/// Recursively walks `path` and parses any JSON or Solidity file into a test /// If `path` is a file, try to parse it directly into a [MetadataFile].
/// definition [Metadata]. /// Else, recursively walk through the `path` directory and parse any
/// JSON or Solidity file into a test definition [MetadataFile].
/// ///
/// Found tests are inserted into `tests`. /// Found tests are inserted into `tests`.
///
/// `path` is expected to be a directory.
pub fn collect_metadata(path: &Path, tests: &mut Vec<MetadataFile>) { pub fn collect_metadata(path: &Path, tests: &mut Vec<MetadataFile>) {
if path.is_file()
&& let Some(metadata) = MetadataFile::try_from_file(&path)
{
tests.push(metadata);
return;
}
let dir_entry = match std::fs::read_dir(path) { let dir_entry = match std::fs::read_dir(path) {
Ok(dir_entry) => dir_entry, Ok(dir_entry) => dir_entry,
Err(error) => { Err(error) => {
@@ -53,15 +59,6 @@ pub fn collect_metadata(path: &Path, tests: &mut Vec<MetadataFile>) {
}; };
let path = entry.path(); let path = entry.path();
if path.is_dir() { collect_metadata(&path, tests);
collect_metadata(&path, tests);
continue;
}
if path.is_file() {
if let Some(metadata) = MetadataFile::try_from_file(&path) {
tests.push(metadata)
}
}
} }
} }