Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 5 additions & 10 deletions crates/libtest2-harness/src/harness.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,17 @@ pub struct Harness {
}

impl Harness {
pub fn with_args(args: impl IntoIterator<Item = impl Into<std::ffi::OsString>>) -> Self {
let raw = expand_args(args);
Self { raw, cases: vec![] }
}

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) {
self.cases.push(Box::new(case));
pub fn with_args(args: impl IntoIterator<Item = impl Into<std::ffi::OsString>>) -> Self {
let raw = expand_args(args);
Self { raw, cases: vec![] }
}

pub fn cases(&mut self, cases: impl IntoIterator<Item = impl Case + 'static>) {
pub fn discover(&mut self, cases: impl IntoIterator<Item = impl Case + 'static>) {
for case in cases {
self.cases.push(Box::new(case));
}
Expand Down
12 changes: 7 additions & 5 deletions crates/libtest2-mimic/examples/mimic-simple.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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))
.discover([
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();
}

Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/examples/mimic-tidy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 2 additions & 7 deletions crates/libtest2-mimic/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,9 @@ 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<Item = Trial>) -> Self {
pub fn discover(mut self, cases: impl IntoIterator<Item = Trial>) -> Self {
self.harness
.cases(cases.into_iter().map(|c| TrialCase { inner: c }));
.discover(cases.into_iter().map(|c| TrialCase { inner: c }));
self
}

Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/tests/testsuite/all_passing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(())),
Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/tests/testsuite/argfile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(())),
Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/tests/testsuite/main_thread.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(())
Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/tests/testsuite/mixed_bag.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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(())),
Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2-mimic/tests/testsuite/panic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")),
])
Expand Down
2 changes: 1 addition & 1 deletion crates/libtest2/examples/tidy.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}

Expand Down
6 changes: 4 additions & 2 deletions crates/libtest2/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.discover([
$(::libtest2::Trial::test(::std::stringify!($test), $test)),*
]);
harness.main();
}
}
}
Expand Down
Loading