Skip to content

Commit 7882524

Browse files
committed
difftest: use relative paths, create output directory in target
1 parent d33b067 commit 7882524

File tree

4 files changed

+265
-199
lines changed

4 files changed

+265
-199
lines changed

tests/difftests/bin/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use-compiled-tools = []
1616
anyhow = "1.0"
1717
tracing = "0.1"
1818
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
19-
tempfile = "3.5"
2019
tester = "0.9.1"
2120
serde = { version = "1.0", features = ["derive"] }
2221
serde_json = "1.0"
@@ -27,5 +26,8 @@ bytemuck = "1.21.0"
2726
difftest = { path = "../lib" }
2827
tabled = { version = "0.15", default-features = false, features = ["std"] }
2928

29+
[dev-dependencies]
30+
tempfile = "3.5"
31+
3032
[lints]
3133
workspace = true

tests/difftests/bin/src/main.rs

Lines changed: 32 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#![allow(clippy::exit)]
22

3+
use crate::testcase::collect_test_dirs;
34
use anyhow::Result;
5+
use runner::Runner;
46
use std::{
5-
env,
7+
env, fs,
68
process::{self, Command},
79
};
810
use tester::{
@@ -14,7 +16,7 @@ use tracing_subscriber::FmtSubscriber;
1416

1517
mod differ;
1618
mod runner;
17-
use runner::Runner;
19+
mod testcase;
1820

1921
fn main() -> Result<()> {
2022
let subscriber = FmtSubscriber::builder()
@@ -63,10 +65,19 @@ fn main() -> Result<()> {
6365
.expect("Failed to canonicalize tests directory");
6466
tracing::debug!("Using tests directory: {}", base.display());
6567

66-
let runner = Runner::new(base.clone());
68+
let output_dir = std::path::Path::new(manifest_dir).join("../tests/target/difftest");
69+
fs::create_dir_all(&output_dir)?;
70+
let output_dir = output_dir
71+
.canonicalize()
72+
.expect("Failed to canonicalize tests directory");
73+
tracing::debug!("Using output directory: {}", output_dir.display());
74+
75+
let runner = Runner {
76+
base_dir: base.clone(),
77+
output_dir,
78+
};
6779

68-
let test_cases =
69-
Runner::collect_test_dirs(&base).expect("Failed to collect test case directories");
80+
let test_cases = collect_test_dirs(&base).expect("Failed to collect test case directories");
7081
if test_cases.is_empty() {
7182
eprintln!("No valid tests found in {}", base.display());
7283
process::exit(1);
@@ -92,25 +103,22 @@ fn main() -> Result<()> {
92103

93104
let tests: Vec<TestDescAndFn> = test_cases
94105
.into_iter()
95-
.map(|case| {
96-
let test_name = Runner::format_test_name(&case, &base);
97-
TestDescAndFn {
98-
desc: TestDesc {
99-
name: DynTestName(test_name.clone()),
100-
ignore: false,
101-
should_panic: ShouldPanic::No,
102-
allow_fail: false,
103-
test_type: TestType::IntegrationTest,
104-
},
105-
testfn: TestFn::DynTestFn(Box::new({
106-
let runner = runner.clone();
107-
move || {
108-
runner
109-
.run_test_case(&case)
110-
.unwrap_or_else(|e| panic!("{}", e));
111-
}
112-
})),
113-
}
106+
.map(|case| TestDescAndFn {
107+
desc: TestDesc {
108+
name: DynTestName(case.to_string()),
109+
ignore: false,
110+
should_panic: ShouldPanic::No,
111+
allow_fail: false,
112+
test_type: TestType::IntegrationTest,
113+
},
114+
testfn: TestFn::DynTestFn(Box::new({
115+
let runner = runner.clone();
116+
move || {
117+
runner
118+
.run_test_case(&case)
119+
.unwrap_or_else(|e| panic!("{}", e));
120+
}
121+
})),
114122
})
115123
.collect();
116124

0 commit comments

Comments
 (0)