From c356e5ba0e992db501f33079b36338819cb8ca00 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 15 Aug 2025 12:17:00 -0500 Subject: [PATCH 1/3] fix(schema)!: Rename Suite to Run --- crates/libtest-json/event.schema.json | 4 +- crates/libtest-json/src/event.rs | 12 +- crates/libtest-json/tests/roundtrip.rs | 16 +- crates/libtest2-harness/src/harness.rs | 4 +- crates/libtest2-harness/src/notify/pretty.rs | 4 +- crates/libtest2-harness/src/notify/summary.rs | 4 +- crates/libtest2-harness/src/notify/terse.rs | 8 +- .../tests/testsuite/mixed_bag.rs | 168 +++++++++--------- crates/libtest2/tests/testsuite/mixed_bag.rs | 168 +++++++++--------- 9 files changed, 194 insertions(+), 194 deletions(-) diff --git a/crates/libtest-json/event.schema.json b/crates/libtest-json/event.schema.json index 8e22aaf..21de32a 100644 --- a/crates/libtest-json/event.schema.json +++ b/crates/libtest-json/event.schema.json @@ -94,7 +94,7 @@ }, "event": { "type": "string", - "const": "suite_start" + "const": "run_start" } }, "required": [ @@ -188,7 +188,7 @@ }, "event": { "type": "string", - "const": "suite_complete" + "const": "run_complete" } }, "required": [ diff --git a/crates/libtest-json/src/event.rs b/crates/libtest-json/src/event.rs index f7e0457..099da53 100644 --- a/crates/libtest-json/src/event.rs +++ b/crates/libtest-json/src/event.rs @@ -37,7 +37,7 @@ pub enum Event { )] elapsed_s: Option, }, - SuiteStart { + RunStart { #[cfg_attr( feature = "serde", serde(default, skip_serializing_if = "Option::is_none") @@ -76,7 +76,7 @@ pub enum Event { )] elapsed_s: Option, }, - SuiteComplete { + RunComplete { #[cfg_attr( feature = "serde", serde(default, skip_serializing_if = "Option::is_none") @@ -153,10 +153,10 @@ impl Event { buffer.value(String::from(*elapsed_s)).unwrap(); } } - Self::SuiteStart { elapsed_s } => { + Self::RunStart { elapsed_s } => { buffer.key("event").unwrap(); buffer.keyval_sep().unwrap(); - buffer.value("suite_start").unwrap(); + buffer.value("run_start").unwrap(); if let Some(elapsed_s) = elapsed_s { buffer.val_sep().unwrap(); @@ -226,10 +226,10 @@ impl Event { buffer.value(String::from(*elapsed_s)).unwrap(); } } - Self::SuiteComplete { elapsed_s } => { + Self::RunComplete { elapsed_s } => { buffer.key("event").unwrap(); buffer.keyval_sep().unwrap(); - buffer.value("suite_complete").unwrap(); + buffer.value("run_complete").unwrap(); if let Some(elapsed_s) = elapsed_s { buffer.val_sep().unwrap(); diff --git a/crates/libtest-json/tests/roundtrip.rs b/crates/libtest-json/tests/roundtrip.rs index e85e450..8e7e0bf 100644 --- a/crates/libtest-json/tests/roundtrip.rs +++ b/crates/libtest-json/tests/roundtrip.rs @@ -71,14 +71,14 @@ fn discover_complete() { #[test] fn suite_start() { t( - libtest_json::Event::SuiteStart { elapsed_s: None }, - str![[r#"{"event":"suite_start"}"#]], + libtest_json::Event::RunStart { elapsed_s: None }, + str![[r#"{"event":"run_start"}"#]], ); t( - libtest_json::Event::SuiteStart { + libtest_json::Event::RunStart { elapsed_s: Some(libtest_json::Elapsed(Default::default())), }, - str![[r#"{"event":"suite_start","elapsed_s":"0"}"#]], + str![[r#"{"event":"run_start","elapsed_s":"0"}"#]], ); } @@ -130,14 +130,14 @@ fn case_complete() { #[test] fn suite_complete() { t( - libtest_json::Event::SuiteComplete { elapsed_s: None }, - str![[r#"{"event":"suite_complete"}"#]], + libtest_json::Event::RunComplete { elapsed_s: None }, + str![[r#"{"event":"run_complete"}"#]], ); t( - libtest_json::Event::SuiteComplete { + libtest_json::Event::RunComplete { elapsed_s: Some(libtest_json::Elapsed(Default::default())), }, - str![[r#"{"event":"suite_complete","elapsed_s":"0"}"#]], + str![[r#"{"event":"run_complete","elapsed_s":"0"}"#]], ); } diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index cd0f1cc..048577b 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -250,7 +250,7 @@ fn run( cases: Vec>, notifier: &mut dyn notify::Notifier, ) -> std::io::Result { - notifier.notify(notify::Event::SuiteStart { + notifier.notify(notify::Event::RunStart { elapsed_s: Some(notify::Elapsed(start.elapsed())), })?; @@ -398,7 +398,7 @@ fn run( } } - notifier.notify(notify::Event::SuiteComplete { + notifier.notify(notify::Event::RunComplete { elapsed_s: Some(notify::Elapsed(start.elapsed())), })?; diff --git a/crates/libtest2-harness/src/notify/pretty.rs b/crates/libtest2-harness/src/notify/pretty.rs index 50156c7..9ed4aaa 100644 --- a/crates/libtest2-harness/src/notify/pretty.rs +++ b/crates/libtest2-harness/src/notify/pretty.rs @@ -38,7 +38,7 @@ impl super::Notifier for PrettyRunNotifier { } } Event::DiscoverComplete { .. } => {} - Event::SuiteStart { .. } => { + Event::RunStart { .. } => { self.summary.write_start(&mut self.writer)?; } Event::CaseStart { name, .. } => { @@ -59,7 +59,7 @@ impl super::Notifier for PrettyRunNotifier { } writeln!(self.writer, "{style}{s}{style:#}")?; } - Event::SuiteComplete { .. } => { + Event::RunComplete { .. } => { self.summary.write_complete(&mut self.writer)?; } } diff --git a/crates/libtest2-harness/src/notify/summary.rs b/crates/libtest2-harness/src/notify/summary.rs index 4132ce6..414b685 100644 --- a/crates/libtest2-harness/src/notify/summary.rs +++ b/crates/libtest2-harness/src/notify/summary.rs @@ -96,7 +96,7 @@ impl super::Notifier for Summary { } } Event::DiscoverComplete { .. } => {} - Event::SuiteStart { .. } => {} + Event::RunStart { .. } => {} Event::CaseStart { .. } => {} Event::CaseComplete { name, @@ -115,7 +115,7 @@ impl super::Notifier for Summary { self.num_passed += 1; } }, - Event::SuiteComplete { elapsed_s, .. } => { + Event::RunComplete { elapsed_s, .. } => { self.elapsed_s = elapsed_s; } } diff --git a/crates/libtest2-harness/src/notify/terse.rs b/crates/libtest2-harness/src/notify/terse.rs index 0ab3b68..aa6870a 100644 --- a/crates/libtest2-harness/src/notify/terse.rs +++ b/crates/libtest2-harness/src/notify/terse.rs @@ -34,10 +34,10 @@ impl super::Notifier for TerseListNotifier { writeln!(self.writer, "{} tests", self.tests)?; writeln!(self.writer)?; } - Event::SuiteStart { .. } => {} + Event::RunStart { .. } => {} Event::CaseStart { .. } => {} Event::CaseComplete { .. } => {} - Event::SuiteComplete { .. } => {} + Event::RunComplete { .. } => {} } Ok(()) } @@ -65,7 +65,7 @@ impl super::Notifier for TerseRunNotifier { Event::DiscoverStart { .. } => {} Event::DiscoverCase { .. } => {} Event::DiscoverComplete { .. } => {} - Event::SuiteStart { .. } => { + Event::RunStart { .. } => { self.summary.write_start(&mut self.writer)?; } Event::CaseStart { .. } => {} @@ -78,7 +78,7 @@ impl super::Notifier for TerseRunNotifier { write!(self.writer, "{style}{c}{style:#}")?; self.writer.flush()?; } - Event::SuiteComplete { .. } => { + Event::RunComplete { .. } => { self.summary.write_complete(&mut self.writer)?; } } diff --git a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs index d01d1e6..1141e39 100644 --- a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs @@ -835,88 +835,88 @@ fn test_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_start" + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bear", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_complete" + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] @@ -940,10 +940,6 @@ fn test_json() { "event": "case_complete", "name": "cat" }, - { - "elapsed_s": "[..]", - "event": "suite_complete" - }, { "elapsed_s": "[..]", "event": "discover_start" @@ -994,10 +990,6 @@ fn test_json() { "event": "discover_case", "name": "cat" }, - { - "elapsed_s": "[..]", - "event": "suite_start" - }, { "elapsed_s": "[..]", "event": "case_start", @@ -1007,6 +999,14 @@ fn test_json() { "elapsed_s": "[..]", "event": "case_start", "name": "cat" + }, + { + "event": "run_start", + "elapsed_s": "[..]" + }, + { + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] @@ -1100,106 +1100,106 @@ fn fail_fast_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bunny" + "name": "bunny", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "dog" + "name": "dog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "fly" + "name": "fly", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "fox" + "name": "fox", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "frog" + "name": "frog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "owl" + "name": "owl", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_start" + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bear", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bunny" + "name": "bunny", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bunny", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "dog" + "name": "dog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "was not a good boy", "name": "dog", - "status": "failed" + "status": "failed", + "message": "was not a good boy", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_complete" + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] diff --git a/crates/libtest2/tests/testsuite/mixed_bag.rs b/crates/libtest2/tests/testsuite/mixed_bag.rs index 8a5a2e1..dd2d840 100644 --- a/crates/libtest2/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2/tests/testsuite/mixed_bag.rs @@ -842,88 +842,88 @@ fn test_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "run": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_start" + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bear", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_complete" + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] @@ -947,10 +947,6 @@ fn test_json() { "event": "case_complete", "name": "cat" }, - { - "elapsed_s": "[..]", - "event": "suite_complete" - }, { "elapsed_s": "[..]", "event": "discover_start" @@ -1001,10 +997,6 @@ fn test_json() { "event": "discover_case", "name": "cat" }, - { - "elapsed_s": "[..]", - "event": "suite_start" - }, { "elapsed_s": "[..]", "event": "case_start", @@ -1014,6 +1006,14 @@ fn test_json() { "elapsed_s": "[..]", "event": "case_start", "name": "bear" + }, + { + "event": "run_start", + "elapsed_s": "[..]" + }, + { + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] @@ -1107,106 +1107,106 @@ fn fail_fast_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bunny" + "name": "bunny", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "dog" + "name": "dog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "fly" + "name": "fly", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "fox" + "name": "fox", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "frog" + "name": "frog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "owl" + "name": "owl", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_start" + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bear", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "bunny" + "name": "bunny", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "fails", "name": "bunny", - "status": "ignored" + "status": "ignored", + "message": "fails", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_start", - "name": "dog" + "name": "dog", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "case_complete", - "message": "was not a good boy", "name": "dog", - "status": "failed" + "status": "failed", + "message": "was not a good boy", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "suite_complete" + "event": "run_complete", + "elapsed_s": "[..]" } ] "#]] From dafbfd5b34867b86439c56a25106eb44eca592dc Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 15 Aug 2025 12:23:48 -0500 Subject: [PATCH 2/3] fix(schema)!: Remove mode from CaseComplete This is less a state of an individual Case and more of the operation as a whole and is a bit redundant. --- crates/libtest-json/event.schema.json | 3 --- crates/libtest-json/src/event.rs | 13 ------------- crates/libtest-json/tests/roundtrip.rs | 4 +--- crates/libtest2-harness/src/harness.rs | 1 - 4 files changed, 1 insertion(+), 20 deletions(-) diff --git a/crates/libtest-json/event.schema.json b/crates/libtest-json/event.schema.json index 21de32a..1e8d05f 100644 --- a/crates/libtest-json/event.schema.json +++ b/crates/libtest-json/event.schema.json @@ -133,9 +133,6 @@ "name": { "type": "string" }, - "mode": { - "$ref": "#/$defs/RunMode" - }, "status": { "description": "`None` means success", "anyOf": [ diff --git a/crates/libtest-json/src/event.rs b/crates/libtest-json/src/event.rs index 099da53..b53e012 100644 --- a/crates/libtest-json/src/event.rs +++ b/crates/libtest-json/src/event.rs @@ -54,11 +54,6 @@ pub enum Event { }, CaseComplete { name: String, - #[cfg_attr( - feature = "serde", - serde(default, skip_serializing_if = "RunMode::is_default") - )] - mode: RunMode, /// `None` means success #[cfg_attr( feature = "serde", @@ -184,7 +179,6 @@ impl Event { } Self::CaseComplete { name, - mode, status, message, elapsed_s, @@ -198,13 +192,6 @@ impl Event { buffer.keyval_sep().unwrap(); buffer.value(name).unwrap(); - if !mode.is_default() { - buffer.val_sep().unwrap(); - buffer.key("mode").unwrap(); - buffer.keyval_sep().unwrap(); - buffer.value(mode.as_str()).unwrap(); - } - if let Some(status) = status { buffer.val_sep().unwrap(); buffer.key("status").unwrap(); diff --git a/crates/libtest-json/tests/roundtrip.rs b/crates/libtest-json/tests/roundtrip.rs index 8e7e0bf..6b43914 100644 --- a/crates/libtest-json/tests/roundtrip.rs +++ b/crates/libtest-json/tests/roundtrip.rs @@ -105,7 +105,6 @@ fn case_complete() { t( libtest_json::Event::CaseComplete { name: "Hello\tworld!".to_owned(), - mode: libtest_json::RunMode::Test, status: None, message: None, elapsed_s: None, @@ -116,13 +115,12 @@ fn case_complete() { t( libtest_json::Event::CaseComplete { name: "Hello\tworld!".to_owned(), - mode: libtest_json::RunMode::Bench, status: Some(libtest_json::RunStatus::Ignored), message: Some("This\tfailed".to_owned()), elapsed_s: Some(libtest_json::Elapsed(Default::default())), }, str![[ - r#"{"event":"case_complete","name":"Hello\tworld!","mode":"bench","status":"ignored","message":"This\tfailed","elapsed_s":"0"}"# + r#"{"event":"case_complete","name":"Hello\tworld!","status":"ignored","message":"This\tfailed","elapsed_s":"0"}"# ]], ); } diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 048577b..1babcf7 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -440,7 +440,6 @@ fn run_case( let message = err.and_then(|e| e.cause().map(|c| c.to_string())); notifier.notify(notify::Event::CaseComplete { name: case.name().to_owned(), - mode: RunMode::Test, status, message, elapsed_s: Some(notify::Elapsed(start.elapsed())), From 6fa5edad4b09d7ce0a7bd05df7c68020365cf22a Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 15 Aug 2025 12:27:09 -0500 Subject: [PATCH 3/3] fix(schema): Rename DiscoverCase::run to selected I feel this better clarifies things in light of `--list`, `--fail-fast`, etc --- crates/libtest-json/event.schema.json | 2 +- crates/libtest-json/src/event.rs | 10 +- crates/libtest-json/tests/roundtrip.rs | 6 +- crates/libtest2-harness/src/harness.rs | 2 +- crates/libtest2-harness/src/notify/pretty.rs | 4 +- crates/libtest2-harness/src/notify/summary.rs | 4 +- crates/libtest2-harness/src/notify/terse.rs | 7 +- .../tests/testsuite/mixed_bag.rs | 152 +++++++++--------- crates/libtest2/tests/testsuite/mixed_bag.rs | 152 +++++++++--------- 9 files changed, 171 insertions(+), 168 deletions(-) diff --git a/crates/libtest-json/event.schema.json b/crates/libtest-json/event.schema.json index 1e8d05f..0483369 100644 --- a/crates/libtest-json/event.schema.json +++ b/crates/libtest-json/event.schema.json @@ -33,7 +33,7 @@ "mode": { "$ref": "#/$defs/RunMode" }, - "run": { + "selected": { "description": "Whether selected to be run by the user", "type": "boolean" }, diff --git a/crates/libtest-json/src/event.rs b/crates/libtest-json/src/event.rs index b53e012..d33eec2 100644 --- a/crates/libtest-json/src/event.rs +++ b/crates/libtest-json/src/event.rs @@ -23,7 +23,7 @@ pub enum Event { feature = "serde", serde(default = "true_default", skip_serializing_if = "is_true") )] - run: bool, + selected: bool, #[cfg_attr( feature = "serde", serde(default, skip_serializing_if = "Option::is_none") @@ -103,7 +103,7 @@ impl Event { Self::DiscoverCase { name, mode, - run, + selected, elapsed_s, } => { buffer.key("event").unwrap(); @@ -122,11 +122,11 @@ impl Event { buffer.value(mode.as_str()).unwrap(); } - if !run { + if !selected { buffer.val_sep().unwrap(); - buffer.key("run").unwrap(); + buffer.key("selected").unwrap(); buffer.keyval_sep().unwrap(); - buffer.value(run).unwrap(); + buffer.value(selected).unwrap(); } if let Some(elapsed_s) = elapsed_s { diff --git a/crates/libtest-json/tests/roundtrip.rs b/crates/libtest-json/tests/roundtrip.rs index 6b43914..f410252 100644 --- a/crates/libtest-json/tests/roundtrip.rs +++ b/crates/libtest-json/tests/roundtrip.rs @@ -34,7 +34,7 @@ fn discover_case() { libtest_json::Event::DiscoverCase { name: "Hello\tworld!".to_owned(), mode: libtest_json::RunMode::Test, - run: true, + selected: true, elapsed_s: None, }, str![[r#"{"event":"discover_case","name":"Hello\tworld!"}"#]], @@ -44,11 +44,11 @@ fn discover_case() { libtest_json::Event::DiscoverCase { name: "Hello\tworld!".to_owned(), mode: libtest_json::RunMode::Bench, - run: false, + selected: false, elapsed_s: Some(libtest_json::Elapsed(Default::default())), }, str![[ - r#"{"event":"discover_case","name":"Hello\tworld!","mode":"bench","run":false,"elapsed_s":"0"}"# + r#"{"event":"discover_case","name":"Hello\tworld!","mode":"bench","selected":false,"elapsed_s":"0"}"# ]], ); } diff --git a/crates/libtest2-harness/src/harness.rs b/crates/libtest2-harness/src/harness.rs index 1babcf7..c2a1017 100644 --- a/crates/libtest2-harness/src/harness.rs +++ b/crates/libtest2-harness/src/harness.rs @@ -230,7 +230,7 @@ fn discover( notifier.notify(notify::Event::DiscoverCase { name: case.name().to_owned(), mode: RunMode::Test, - run: retain_case, + selected: retain_case, elapsed_s: Some(notify::Elapsed(start.elapsed())), })?; } diff --git a/crates/libtest2-harness/src/notify/pretty.rs b/crates/libtest2-harness/src/notify/pretty.rs index 9ed4aaa..017d527 100644 --- a/crates/libtest2-harness/src/notify/pretty.rs +++ b/crates/libtest2-harness/src/notify/pretty.rs @@ -32,8 +32,8 @@ impl super::Notifier for PrettyRunNotifier { self.summary.notify(event.clone())?; match event { Event::DiscoverStart { .. } => {} - Event::DiscoverCase { name, run, .. } => { - if run { + Event::DiscoverCase { name, selected, .. } => { + if selected { self.name_width = name.len().max(self.name_width); } } diff --git a/crates/libtest2-harness/src/notify/summary.rs b/crates/libtest2-harness/src/notify/summary.rs index 414b685..223e73d 100644 --- a/crates/libtest2-harness/src/notify/summary.rs +++ b/crates/libtest2-harness/src/notify/summary.rs @@ -88,8 +88,8 @@ impl super::Notifier for Summary { fn notify(&mut self, event: Event) -> std::io::Result<()> { match event { Event::DiscoverStart { .. } => {} - Event::DiscoverCase { run, .. } => { - if run { + Event::DiscoverCase { selected, .. } => { + if selected { self.num_run += 1; } else { self.num_filtered_out += 1; diff --git a/crates/libtest2-harness/src/notify/terse.rs b/crates/libtest2-harness/src/notify/terse.rs index aa6870a..8821a9d 100644 --- a/crates/libtest2-harness/src/notify/terse.rs +++ b/crates/libtest2-harness/src/notify/terse.rs @@ -21,9 +21,12 @@ impl super::Notifier for TerseListNotifier { match event { Event::DiscoverStart { .. } => {} Event::DiscoverCase { - name, mode, run, .. + name, + mode, + selected, + .. } => { - if run { + if selected { let mode = mode.as_str(); writeln!(self.writer, "{name}: {mode}")?; self.tests += 1; diff --git a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs index 1141e39..0c26e07 100644 --- a/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2-mimic/tests/testsuite/mixed_bag.rs @@ -706,58 +706,58 @@ fn list_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" } ] "#]] @@ -766,58 +766,58 @@ fn list_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" } ] "#]] @@ -841,37 +841,37 @@ fn test_json() { { "event": "discover_case", "name": "bunny", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "dog", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "fly", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "fox", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "frog", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "owl", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { @@ -947,65 +947,65 @@ fn test_json() { { "elapsed_s": "[..]", "event": "discover_case", - "name": "bunny", - "run": false + "name": "bear" }, { "elapsed_s": "[..]", "event": "discover_case", - "name": "dog", - "run": false + "name": "cat" }, { "elapsed_s": "[..]", - "event": "discover_case", - "name": "fly", - "run": false + "event": "case_start", + "name": "bear" }, { "elapsed_s": "[..]", - "event": "discover_case", - "name": "fox", - "run": false + "event": "case_start", + "name": "cat" }, { - "elapsed_s": "[..]", - "event": "discover_case", - "name": "frog", - "run": false + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_case", - "name": "owl", - "run": false + "event": "run_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bunny", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "dog", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "case_start", - "name": "bear" + "event": "discover_case", + "name": "fly", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "case_start", - "name": "cat" + "event": "discover_case", + "name": "fox", + "selected": false, + "elapsed_s": "[..]" }, { - "event": "run_start", + "event": "discover_case", + "name": "frog", + "selected": false, "elapsed_s": "[..]" }, { - "event": "run_complete", + "event": "discover_case", + "name": "owl", + "selected": false, "elapsed_s": "[..]" } ] diff --git a/crates/libtest2/tests/testsuite/mixed_bag.rs b/crates/libtest2/tests/testsuite/mixed_bag.rs index dd2d840..89fc58d 100644 --- a/crates/libtest2/tests/testsuite/mixed_bag.rs +++ b/crates/libtest2/tests/testsuite/mixed_bag.rs @@ -713,58 +713,58 @@ fn list_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" } ] "#]] @@ -773,58 +773,58 @@ fn list_json() { str![[r#" [ { - "elapsed_s": "[..]", - "event": "discover_start" + "event": "discover_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "bunny", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "dog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fly", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "fox", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "frog", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", "name": "owl", - "run": false + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bear", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "cat", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_complete" + "event": "discover_complete", + "elapsed_s": "[..]" } ] "#]] @@ -848,37 +848,37 @@ fn test_json() { { "event": "discover_case", "name": "bunny", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "dog", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "fly", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "fox", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "frog", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { "event": "discover_case", "name": "owl", - "run": false, + "selected": false, "elapsed_s": "[..]" }, { @@ -954,65 +954,65 @@ fn test_json() { { "elapsed_s": "[..]", "event": "discover_case", - "name": "bunny", - "run": false + "name": "bear" }, { "elapsed_s": "[..]", "event": "discover_case", - "name": "dog", - "run": false + "name": "cat" }, { "elapsed_s": "[..]", - "event": "discover_case", - "name": "fly", - "run": false + "event": "case_start", + "name": "cat" }, { "elapsed_s": "[..]", - "event": "discover_case", - "name": "fox", - "run": false + "event": "case_start", + "name": "bear" }, { - "elapsed_s": "[..]", - "event": "discover_case", - "name": "frog", - "run": false + "event": "run_start", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "discover_case", - "name": "owl", - "run": false + "event": "run_complete", + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "bear" + "name": "bunny", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", "event": "discover_case", - "name": "cat" + "name": "dog", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "case_start", - "name": "cat" + "event": "discover_case", + "name": "fly", + "selected": false, + "elapsed_s": "[..]" }, { - "elapsed_s": "[..]", - "event": "case_start", - "name": "bear" + "event": "discover_case", + "name": "fox", + "selected": false, + "elapsed_s": "[..]" }, { - "event": "run_start", + "event": "discover_case", + "name": "frog", + "selected": false, "elapsed_s": "[..]" }, { - "event": "run_complete", + "event": "discover_case", + "name": "owl", + "selected": false, "elapsed_s": "[..]" } ]