From 0ff3ccbbd88a80d49ea6073dec8567b4909ac554 Mon Sep 17 00:00:00 2001 From: ASuciuX Date: Tue, 26 Mar 2024 14:24:59 +0200 Subject: [PATCH] added the mutants from PR #4483 --- Cargo.lock | 1 + clarity/Cargo.toml | 1 + clarity/src/vm/ast/traits_resolver/mod.rs | 1 + clarity/src/vm/costs/mod.rs | 3 +++ clarity/src/vm/types/mod.rs | 10 +++++++++- 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 70b20ecf4..5376ac318 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -762,6 +762,7 @@ dependencies = [ "hashbrown 0.14.3", "integer-sqrt", "lazy_static", + "mutants", "rand 0.8.5", "rand_chacha 0.3.1", "regex", diff --git a/clarity/Cargo.toml b/clarity/Cargo.toml index 36caeb828..70cbcec58 100644 --- a/clarity/Cargo.toml +++ b/clarity/Cargo.toml @@ -31,6 +31,7 @@ stacks_common = { package = "stacks-common", path = "../stacks-common" } rstest = "0.17.0" rstest_reuse = "0.5.0" hashbrown = { workspace = true } +mutants = "0.0.3" [dependencies.serde_json] version = "1.0" diff --git a/clarity/src/vm/ast/traits_resolver/mod.rs b/clarity/src/vm/ast/traits_resolver/mod.rs index bff0c40e7..657bc744c 100644 --- a/clarity/src/vm/ast/traits_resolver/mod.rs +++ b/clarity/src/vm/ast/traits_resolver/mod.rs @@ -45,6 +45,7 @@ impl TraitsResolver { TraitsResolver {} } + #[cfg_attr(test, mutants::skip)] pub fn run(&mut self, contract_ast: &mut ContractAST) -> ParseResult<()> { let mut referenced_traits = HashMap::new(); diff --git a/clarity/src/vm/costs/mod.rs b/clarity/src/vm/costs/mod.rs index b28fcf4c9..744b60569 100644 --- a/clarity/src/vm/costs/mod.rs +++ b/clarity/src/vm/costs/mod.rs @@ -786,6 +786,9 @@ impl TrackerData { /// `apply_updates` - tells this function to look for any changes in the cost voting contract /// which would need to be applied. if `false`, just load the last computed cost state in this /// fork. + /// TODO: #4587 add test for Err cases + /// Or keep the skip and remove the comment + #[cfg_attr(test, mutants::skip)] fn load_costs(&mut self, clarity_db: &mut ClarityDatabase, apply_updates: bool) -> Result<()> { clarity_db.begin(); let epoch_id = clarity_db diff --git a/clarity/src/vm/types/mod.rs b/clarity/src/vm/types/mod.rs index 3d612099c..44483dd99 100644 --- a/clarity/src/vm/types/mod.rs +++ b/clarity/src/vm/types/mod.rs @@ -1528,7 +1528,11 @@ impl TupleData { pub fn is_empty(&self) -> bool { self.data_map.is_empty() } - + + ///TODO: #4587 create default for TupleData, then check if the mutation tests are caught for the case: + /// Ok((Default::default())) + /// Or keep the skip and remove the comment + #[cfg_attr(test, mutants::skip)] pub fn from_data(data: Vec<(ClarityName, Value)>) -> Result { let mut type_map = BTreeMap::new(); let mut data_map = BTreeMap::new(); @@ -1545,6 +1549,10 @@ impl TupleData { Self::new(TupleTypeSignature::try_from(type_map)?, data_map) } + ///TODO: #4587 create default for TupleData, then check if the mutation tests are caught for the case: + /// Ok((Default::default())) + /// Or keep the skip and remove the comment + #[cfg_attr(test, mutants::skip)] pub fn from_data_typed( epoch: &StacksEpochId, data: Vec<(ClarityName, Value)>,