From 44df39e72cf57f13a6e788a443167ff959a73d4e Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Thu, 13 Feb 2025 18:03:56 +0000 Subject: [PATCH 1/2] Skip deprecated functions in mutants.toml Cargo mutants found mutants in `fee_vb` and `fee_wu`. Both functions are deprecated. Skip them in mutant testing. --- .cargo/mutants.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cargo/mutants.toml b/.cargo/mutants.toml index 6477f498e..96f373550 100644 --- a/.cargo/mutants.toml +++ b/.cargo/mutants.toml @@ -19,6 +19,8 @@ exclude_re = [ "dec_width", # Replacing num /= 10 with num %=10 in a loop causes a timeout due to infinite loop # src/locktime/relative.rs "Time::to_consensus_u32", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask + "FeeRate::fee_vb", # Deprecated + "FeeRate::fee_wu", # Deprecated # primitives "Sequence::from_512_second_intervals", # Mutant from replacing | with ^, this returns the same value since the XOR is taken against the u16 with an all-zero bitmask From 854a4cf51189b4be596c4f048420fc9b1212d714 Mon Sep 17 00:00:00 2001 From: "Jamil Lambert, PhD" Date: Thu, 13 Feb 2025 18:05:03 +0000 Subject: [PATCH 2/2] Kill mutant in checked_mul_by_fee_rate Use `checked_mul_by_fee_rate` in existing test to kill the mutant. --- units/src/fee.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/units/src/fee.rs b/units/src/fee.rs index 94601db87..84c0899b8 100644 --- a/units/src/fee.rs +++ b/units/src/fee.rs @@ -254,7 +254,7 @@ mod tests { let weight = Weight::from_wu(381); let fee_rate = FeeRate::from_sat_per_kwu(864); - let fee = fee_rate.checked_mul_by_weight(weight).unwrap(); + let fee = weight.checked_mul_by_fee_rate(fee_rate).unwrap(); // 381 * 0.864 yields 329.18. // The result is then rounded up to 330. assert_eq!(fee, Amount::from_sat_unchecked(330));