From fc8d4f8e0e36e22de4978eb35f15ca97ddfbb3b1 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 10 Sep 2025 16:35:12 -0500 Subject: [PATCH 1/4] refactor(harness): Impl with_env in terms of with_args --- crates/libtest2-harness/src/harness.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 41aa93d..9d48304 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -15,8 +15,7 @@ impl Harness { pub fn with_env() -> Self { let raw = std::env::args_os(); - let raw = expand_args(raw); - Self { raw, cases: vec![] } + Self::with_args(raw) } pub fn case(&mut self, case: impl Case + 'static) { From 024c18832c5521588da768399019cdb6e1c4a82f Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 10 Sep 2025 16:35:28 -0500 Subject: [PATCH 2/4] docs(harness): Emphsize with_env --- crates/libtest2-harness/src/harness.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 9d48304..0b923cf 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -8,16 +8,16 @@ pub struct Harness { } impl Harness { - pub fn with_args(args: impl IntoIterator>) -> Self { - let raw = expand_args(args); - Self { raw, cases: vec![] } - } - pub fn with_env() -> Self { let raw = std::env::args_os(); Self::with_args(raw) } + pub fn with_args(args: impl IntoIterator>) -> Self { + let raw = expand_args(args); + Self { raw, cases: vec![] } + } + pub fn case(&mut self, case: impl Case + 'static) { self.cases.push(Box::new(case)); } From 3e54ab1188b2d2001e93b1a2c56098920975c15c Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 10 Sep 2025 17:06:57 -0500 Subject: [PATCH 3/4] fix(harness)!: Remove singular case addition --- crates/libtest2-harness/src/harness.rs | 4 ---- crates/libtest2-mimic/examples/mimic-simple.rs | 12 +++++++----- crates/libtest2-mimic/src/lib.rs | 5 ----- crates/libtest2/src/lib.rs | 6 ++++-- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 0b923cf..16547ad 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -18,10 +18,6 @@ impl Harness { Self { raw, cases: vec![] } } - pub fn case(&mut self, case: impl Case + 'static) { - self.cases.push(Box::new(case)); - } - pub fn cases(&mut self, cases: impl IntoIterator) { for case in cases { self.cases.push(Box::new(case)); diff --git a/crates/libtest2-mimic/examples/mimic-simple.rs b/crates/libtest2-mimic/examples/mimic-simple.rs index a60f10c..17d9bc1 100644 --- a/crates/libtest2-mimic/examples/mimic-simple.rs +++ b/crates/libtest2-mimic/examples/mimic-simple.rs @@ -5,11 +5,13 @@ use libtest2_mimic::Trial; fn main() { libtest2_mimic::Harness::with_env() - .case(Trial::test("check_toph", check_toph)) - .case(Trial::test("check_katara", check_katara)) - .case(Trial::test("check_sokka", check_sokka)) - .case(Trial::test("long_computation", long_computation)) - .case(Trial::test("compile_fail_dummy", compile_fail_dummy)) + .cases([ + Trial::test("check_toph", check_toph), + Trial::test("check_katara", check_katara), + Trial::test("check_sokka", check_sokka), + Trial::test("long_computation", long_computation), + Trial::test("compile_fail_dummy", compile_fail_dummy), + ]) .main(); } diff --git a/crates/libtest2-mimic/src/lib.rs b/crates/libtest2-mimic/src/lib.rs index d2456de..37a5dc7 100644 --- a/crates/libtest2-mimic/src/lib.rs +++ b/crates/libtest2-mimic/src/lib.rs @@ -43,11 +43,6 @@ impl Harness { } } - pub fn case(mut self, case: Trial) -> Self { - self.harness.case(TrialCase { inner: case }); - self - } - pub fn cases(mut self, cases: impl IntoIterator) -> Self { self.harness .cases(cases.into_iter().map(|c| TrialCase { inner: c })); diff --git a/crates/libtest2/src/lib.rs b/crates/libtest2/src/lib.rs index 3ac52ba..263310c 100644 --- a/crates/libtest2/src/lib.rs +++ b/crates/libtest2/src/lib.rs @@ -76,8 +76,10 @@ macro_rules! libtest2_main { ( $( $test:path ),* $(,)*) => { fn main() { let mut harness = ::libtest2::Harness::with_env(); - $(harness.case(::libtest2::Trial::test(::std::stringify!($test), $test));)* - harness.main(); + harness.cases([ + $(::libtest2::Trial::test(::std::stringify!($test), $test)),* + ]); + harness.main(); } } } From bd412c4c04ff31edc5822f0ef3f1d33182536b17 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 10 Sep 2025 17:09:42 -0500 Subject: [PATCH 4/4] fix(harness)!: Rename Harness::cases to discover --- crates/libtest2-harness/src/harness.rs | 2 +- crates/libtest2-mimic/examples/mimic-simple.rs | 2 +- crates/libtest2-mimic/examples/mimic-tidy.rs | 2 +- crates/libtest2-mimic/src/lib.rs | 4 ++-- crates/libtest2-mimic/tests/testsuite/all_passing.rs | 2 +- crates/libtest2-mimic/tests/testsuite/argfile.rs | 2 +- crates/libtest2-mimic/tests/testsuite/main_thread.rs | 2 +- crates/libtest2-mimic/tests/testsuite/mixed_bag.rs | 2 +- crates/libtest2-mimic/tests/testsuite/panic.rs | 2 +- crates/libtest2/examples/tidy.rs | 2 +- crates/libtest2/src/lib.rs | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 16547ad..202cf3d 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -18,7 +18,7 @@ impl Harness { Self { raw, cases: vec![] } } - pub fn cases(&mut self, cases: impl IntoIterator) { + pub fn discover(&mut self, cases: impl IntoIterator) { for case in cases { self.cases.push(Box::new(case)); } diff --git a/crates/libtest2-mimic/examples/mimic-simple.rs b/crates/libtest2-mimic/examples/mimic-simple.rs index 17d9bc1..bdfc68c 100644 --- a/crates/libtest2-mimic/examples/mimic-simple.rs +++ b/crates/libtest2-mimic/examples/mimic-simple.rs @@ -5,7 +5,7 @@ use libtest2_mimic::Trial; fn main() { libtest2_mimic::Harness::with_env() - .cases([ + .discover([ Trial::test("check_toph", check_toph), Trial::test("check_katara", check_katara), Trial::test("check_sokka", check_sokka), diff --git a/crates/libtest2-mimic/examples/mimic-tidy.rs b/crates/libtest2-mimic/examples/mimic-tidy.rs index 71f50b4..6b72bf6 100644 --- a/crates/libtest2-mimic/examples/mimic-tidy.rs +++ b/crates/libtest2-mimic/examples/mimic-tidy.rs @@ -4,7 +4,7 @@ use libtest2_mimic::Trial; fn main() -> std::io::Result<()> { let tests = collect_tests()?; - libtest2_mimic::Harness::with_env().cases(tests).main() + libtest2_mimic::Harness::with_env().discover(tests).main() } /// Creates one test for each `.rs` file in the current directory or diff --git a/crates/libtest2-mimic/src/lib.rs b/crates/libtest2-mimic/src/lib.rs index 37a5dc7..c3adfad 100644 --- a/crates/libtest2-mimic/src/lib.rs +++ b/crates/libtest2-mimic/src/lib.rs @@ -43,9 +43,9 @@ impl Harness { } } - pub fn cases(mut self, cases: impl IntoIterator) -> Self { + pub fn discover(mut self, cases: impl IntoIterator) -> Self { self.harness - .cases(cases.into_iter().map(|c| TrialCase { inner: c })); + .discover(cases.into_iter().map(|c| TrialCase { inner: c })); self } diff --git a/crates/libtest2-mimic/tests/testsuite/all_passing.rs b/crates/libtest2-mimic/tests/testsuite/all_passing.rs index 6438fe5..f7d3450 100644 --- a/crates/libtest2-mimic/tests/testsuite/all_passing.rs +++ b/crates/libtest2-mimic/tests/testsuite/all_passing.rs @@ -10,7 +10,7 @@ fn test_cmd() -> snapbox::cmd::Command { fn main() { use libtest2_mimic::Trial; libtest2_mimic::Harness::with_env() - .cases(vec![ + .discover([ Trial::test("foo", |_| Ok(())), Trial::test("bar", |_| Ok(())), Trial::test("barro", |_| Ok(())), diff --git a/crates/libtest2-mimic/tests/testsuite/argfile.rs b/crates/libtest2-mimic/tests/testsuite/argfile.rs index 8d671db..720fc63 100644 --- a/crates/libtest2-mimic/tests/testsuite/argfile.rs +++ b/crates/libtest2-mimic/tests/testsuite/argfile.rs @@ -11,7 +11,7 @@ fn main() { use libtest2_mimic::Trial; use libtest2_mimic::RunError; libtest2_mimic::Harness::with_env() - .cases(vec![ + .discover([ Trial::test("one", |_| Ok(())), Trial::test("two", |_| Ok(())), Trial::test("three", |_| Ok(())), diff --git a/crates/libtest2-mimic/tests/testsuite/main_thread.rs b/crates/libtest2-mimic/tests/testsuite/main_thread.rs index 48cf9ed..6d0f57c 100644 --- a/crates/libtest2-mimic/tests/testsuite/main_thread.rs +++ b/crates/libtest2-mimic/tests/testsuite/main_thread.rs @@ -8,7 +8,7 @@ fn main() { use libtest2_mimic::Trial; let outer_thread = std::thread::current().id(); libtest2_mimic::Harness::with_env() - .cases(vec![ + .discover([ Trial::test("check", move |_| { assert_eq!(outer_thread, std::thread::current().id()); Ok(()) diff --git a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs index 7e36001..9ca3ceb 100644 --- a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs @@ -11,7 +11,7 @@ fn main() { use libtest2_mimic::Trial; use libtest2_mimic::RunError; libtest2_mimic::Harness::with_env() - .cases(vec![ + .discover([ Trial::test("cat", |_| Ok(())), Trial::test("dog", |_| Err(RunError::fail("was not a good boy"))), Trial::test("fox", |_| Ok(())), diff --git a/crates/libtest2-mimic/tests/testsuite/panic.rs b/crates/libtest2-mimic/tests/testsuite/panic.rs index 9d2db79..7b164e7 100644 --- a/crates/libtest2-mimic/tests/testsuite/panic.rs +++ b/crates/libtest2-mimic/tests/testsuite/panic.rs @@ -10,7 +10,7 @@ fn test_cmd() -> snapbox::cmd::Command { fn main() { use libtest2_mimic::Trial; libtest2_mimic::Harness::with_env() - .cases(vec![ + .discover([ Trial::test("passes", |_| Ok(())), Trial::test("panics", |_| panic!("uh oh")), ]) diff --git a/crates/libtest2/examples/tidy.rs b/crates/libtest2/examples/tidy.rs index 9aecc30..57423df 100644 --- a/crates/libtest2/examples/tidy.rs +++ b/crates/libtest2/examples/tidy.rs @@ -5,7 +5,7 @@ use libtest2::Trial; fn main() -> std::io::Result<()> { let tests = collect_tests()?; let mut harness = libtest2::Harness::with_env(); - harness.cases(tests); + harness.discover(tests); harness.main() } diff --git a/crates/libtest2/src/lib.rs b/crates/libtest2/src/lib.rs index 263310c..8bab2c4 100644 --- a/crates/libtest2/src/lib.rs +++ b/crates/libtest2/src/lib.rs @@ -76,7 +76,7 @@ macro_rules! libtest2_main { ( $( $test:path ),* $(,)*) => { fn main() { let mut harness = ::libtest2::Harness::with_env(); - harness.cases([ + harness.discover([ $(::libtest2::Trial::test(::std::stringify!($test), $test)),* ]); harness.main();