-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmutants.toml
More file actions
52 lines (42 loc) · 1.65 KB
/
mutants.toml
File metadata and controls
52 lines (42 loc) · 1.65 KB
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
# Mutation testing configuration for bitnet-rs
#
# This file configures cargo-mutants to exclude files that cannot be effectively
# tested through mutation testing due to tooling limitations or architectural constraints.
#
# See Issue #440 for mutation testing hardening strategy.
# Files and directories excluded from mutation testing
exclude_globs = [
# Build scripts - tooling glue that runs at compile time with no runtime test harness
"**/build.rs",
# FFI shim modules - thin wrappers around C++ code where:
# 1. The real logic lives in C++ (not Rust)
# 2. Mutations would break FFI ABI contracts
# 3. Cross-language testing is complex and outside mutation test scope
"**/ffi/**/*.rs",
"**/*_ffi.rs",
"**/sys/**/*.rs",
# Build artifacts
"target/**",
# Generated bindings and code
"**/bindings.rs",
"**/generated/**",
# Vendored code
"vendor/**",
# Test utilities and fixtures (not production code)
"**/tests/common/**",
"**/tests/fixtures/**",
"**/test_utilities.rs",
# Benchmark code (separate from production logic)
"**/benches/**",
]
# Mutation testing thresholds and timeouts
#
# Note: Some crates like bitnet-kernels may have lower mutation scores due to
# compile-time feature gate testing limitations (see device_features.rs comments).
# This is acceptable as long as runtime behavior is thoroughly tested.
# Increase timeout for GPU tests and complex inference workloads
# Default is 300s, but neural network operations can take longer
timeout = 600
# Minimum acceptable mutation score for logic-heavy crates
# Excludes thin FFI wrappers and build scripts
minimum_test_timeout = 20