diff --git a/src/cargo.rs b/src/cargo.rs index 4faed54c..5e6a5da3 100644 --- a/src/cargo.rs +++ b/src/cargo.rs @@ -231,6 +231,16 @@ mod test { // "--workspace" ] ); + assert_eq!( + cargo_argv(build_dir, None, Phase::Basic, &options)[1..], + [ + "rustyrts", + "basic", + "-Z", + "no-index-update", + // "--workspace", + ] + ); assert_eq!( cargo_argv(build_dir, None, Phase::Dynamic, &options)[1..], [ @@ -308,6 +318,10 @@ mod test { // build_manifest_path.as_str(), ] ); + assert_eq!( + cargo_argv(build_dir, Some(&[&package]), Phase::Basic, &options)[1..], + ["rustyrts", "basic", "-Z", "no-index-update",] + ); assert_eq!( cargo_argv(build_dir, Some(&[&package]), Phase::Dynamic, &options)[1..], ["rustyrts", "dynamic", "-Z", "no-index-update",] @@ -372,6 +386,19 @@ mod test { "--test-threads=1" ] ); + assert_eq!( + cargo_argv(build_dir, None, Phase::Basic, &options)[1..], + [ + "rustyrts", + "basic", + "-Z", + "no-index-update", + "--verbose", + // "--workspace", + "--", + "--test-threads=1" + ] + ); assert_eq!( cargo_argv(build_dir, None, Phase::Dynamic, &options)[1..], [ diff --git a/src/lab.rs b/src/lab.rs index 397a8fb8..98d61493 100644 --- a/src/lab.rs +++ b/src/lab.rs @@ -216,6 +216,7 @@ fn test_scenario( let test_phase = match options.test_tool { TestTool::Cargo => Phase::Test, TestTool::Nextest => panic!("Nextest is not supported"), + TestTool::Basic => Phase::Basic, TestTool::Dynamic => Phase::Dynamic, TestTool::Static => Phase::Static, }; diff --git a/src/options.rs b/src/options.rs index 6dd552ed..da81264e 100644 --- a/src/options.rs +++ b/src/options.rs @@ -119,6 +119,9 @@ pub enum TestTool { /// Use `cargo nextest`. Nextest, + // Use 'cargo rustyrts basic' + Basic, + // Use 'cargo rustyrts dynamic' Dynamic, diff --git a/src/outcome.rs b/src/outcome.rs index f8c533de..241feefb 100644 --- a/src/outcome.rs +++ b/src/outcome.rs @@ -35,6 +35,7 @@ pub enum Phase { Check, Build, Test, + Basic, Dynamic, Static, BuildDynamic, @@ -48,13 +49,22 @@ impl Phase { Phase::BuildDynamic => vec!["build"], Phase::Test => vec!["test"], + Phase::Basic => vec!["rustyrts", "basic"], Phase::Dynamic => vec!["rustyrts", "dynamic"], Phase::Static => vec!["rustyrts", "static"], } } pub fn is_test_phase(&self) -> bool { - return self == &Phase::Test || self == &Phase::Dynamic || self == &Phase::Static; + match self { + Phase::Check => false, + Phase::Build => false, + Phase::Test => true, + Phase::Basic => true, + Phase::Dynamic => true, + Phase::Static => true, + Phase::BuildDynamic => false, + } } }