1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# Mutation Testing Configuration
# This file controls which parts of the codebase are subject to mutation testing
[]
# Files to include in mutation testing
= [
"src/adaptive/**/*.rs",
"src/identity/**/*.rs",
"src/dht/**/*.rs",
"src/security.rs",
"src/validation.rs",
"src/network.rs",
]
# Files to exclude from mutation testing
= [
"src/main.rs",
"src/lib.rs",
"src/config.rs",
"tests/**/*.rs",
"benches/**/*.rs",
"examples/**/*.rs",
]
# Functions to exclude from mutation testing (too complex or external dependencies)
= [
"tokio::main",
"async fn main",
"println!",
"eprintln!",
"dbg!",
"unimplemented!",
"todo!",
]
# Mutation operators to use
= [
"arith", # Arithmetic operator replacement
"binary", # Binary operator replacement
"bool", # Boolean literal replacement
"comparison", # Comparison operator replacement
"if", # If statement condition negation
"negate", # Negate expressions
"return", # Return value replacement
"swap", # Swap expressions
]
# Timeout for each test run (seconds)
= 300
# Maximum number of mutations to test (0 = unlimited)
= 1000
# Minimum test coverage threshold
= 80.0
# Generate HTML report
= true
# Output directory for reports
= "target/mutation-reports"
# Parallel execution
= 4