diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/specs/mod.rs | 14 | ||||
-rw-r--r-- | tests/specs/schema.json | 9 |
2 files changed, 22 insertions, 1 deletions
diff --git a/tests/specs/mod.rs b/tests/specs/mod.rs index 7a3572a94..9565aa71f 100644 --- a/tests/specs/mod.rs +++ b/tests/specs/mod.rs @@ -56,6 +56,8 @@ struct MultiTestMetaData { pub cwd: Option<String>, #[serde(default)] pub tests: BTreeMap<String, JsonMap>, + #[serde(default)] + pub ignore: bool, } impl MultiTestMetaData { @@ -90,6 +92,9 @@ impl MultiTestMetaData { } } } + if multi_test_meta_data.ignore && !value.contains_key("ignore") { + value.insert("ignore".to_string(), true.into()); + } } let mut collected_tests = Vec::with_capacity(self.tests.len()); @@ -125,6 +130,8 @@ struct MultiStepMetaData { pub repeat: Option<usize>, #[serde(default)] pub steps: Vec<StepMetaData>, + #[serde(default)] + pub ignore: bool, } #[derive(Clone, Deserialize)] @@ -138,6 +145,8 @@ struct SingleTestMetaData { pub repeat: Option<usize>, #[serde(flatten)] pub step: StepMetaData, + #[serde(default)] + pub ignore: bool, } impl SingleTestMetaData { @@ -149,6 +158,7 @@ impl SingleTestMetaData { repeat: self.repeat, envs: Default::default(), steps: vec![self.step], + ignore: self.ignore, } } } @@ -236,7 +246,9 @@ fn run_test(test: &CollectedTest<serde_json::Value>) -> TestResult { let diagnostic_logger = Rc::new(RefCell::new(Vec::<u8>::new())); let result = TestResult::from_maybe_panic_or_result(AssertUnwindSafe(|| { let metadata = deserialize_value(metadata_value); - if let Some(repeat) = metadata.repeat { + if metadata.ignore { + TestResult::Ignored + } else if let Some(repeat) = metadata.repeat { TestResult::SubTests( (0..repeat) .map(|i| { diff --git a/tests/specs/schema.json b/tests/specs/schema.json index bf57b4826..8f3953ee4 100644 --- a/tests/specs/schema.json +++ b/tests/specs/schema.json @@ -50,6 +50,9 @@ }, "exitCode": { "type": "integer" + }, + "ignore": { + "type": "boolean" } } }, @@ -77,6 +80,9 @@ "items": { "$ref": "#/definitions/single_test" } + }, + "ignore": { + "type": "boolean" } } }, { @@ -126,6 +132,9 @@ "additionalProperties": { "$ref": "#/definitions/single_or_multi_step_test" } + }, + "ignore": { + "type": "boolean" } } } |