Browse Source

preserve existing behavior and avoid changes to gh workflows/xtask

abhijeetbhagat 2 years ago
parent
commit
c83d012c51
1 changed files with 21 additions and 9 deletions
  1. 21 9
      test/integration-test/src/main.rs

+ 21 - 9
test/integration-test/src/main.rs

@@ -4,16 +4,19 @@ mod tests;
 use tests::IntegrationTest;
 
 use clap::Parser;
+
 #[derive(Debug, Parser)]
+#[clap(author, version, about, long_about = None)]
+#[clap(propagate_version = true)]
 pub struct RunOptions {
     #[clap(short, long, value_parser)]
     tests: Option<Vec<String>>,
 }
 
 #[derive(Debug, Parser)]
-struct Options {
+struct Cli {
     #[clap(subcommand)]
-    command: Command,
+    command: Option<Command>,
 }
 
 #[derive(Debug, Parser)]
@@ -33,13 +36,21 @@ macro_rules! exec_test {
     }};
 }
 
+macro_rules! exec_all_tests {
+    () => {{
+        for t in inventory::iter::<IntegrationTest> {
+            exec_test!(t)
+        }
+    }};
+}
+
 fn main() -> anyhow::Result<()> {
     env_logger::init();
 
-    let cmd = Command::parse();
+    let cli = Cli::parse();
 
-    match cmd {
-        Command::Run(opts) => match opts.tests {
+    match &cli.command {
+        Some(Command::Run(opts)) => match &opts.tests {
             Some(tests) => {
                 for t in inventory::iter::<IntegrationTest> {
                     if tests.contains(&t.name.into()) {
@@ -48,16 +59,17 @@ fn main() -> anyhow::Result<()> {
                 }
             }
             None => {
-                for t in inventory::iter::<IntegrationTest> {
-                    exec_test!(t)
-                }
+                exec_all_tests!()
             }
         },
-        Command::List => {
+        Some(Command::List) => {
             for t in inventory::iter::<IntegrationTest> {
                 info!("{}", t.name);
             }
         }
+        None => {
+            exec_all_tests!()
+        }
     }
 
     Ok(())