/ proptest.toml
proptest.toml
 1  # Property-based test configuration for FerrisProof
 2  # This file configures proptest behavior across all crates
 3  
 4  # Number of test cases to generate for each property test
 5  # Can be overridden by PROPTEST_CASES environment variable
 6  cases = 1000
 7  
 8  # Maximum number of shrinking iterations when a test fails
 9  # Can be overridden by PROPTEST_MAX_SHRINK_ITERS environment variable
10  max_shrink_iters = 10000
11  
12  # Timeout for each individual test case in milliseconds
13  # Can be overridden by PROPTEST_TIMEOUT environment variable
14  timeout = 300000  # 5 minutes
15  
16  # Source file for storing regression test cases
17  # This helps ensure that previously found bugs don't reoccur
18  source_file = "proptest-regressions"
19  
20  # Strategy for generating test cases
21  # "fork" creates separate processes for each test case (more isolation)
22  # "no-fork" runs all test cases in the same process (faster)
23  fork = false
24  
25  # Verbose output for debugging
26  verbose = 0
27  
28  # Failure persistence - how to handle test failures
29  # "FailurePersistence::SourceParallel" stores failures in source files
30  failure_persistence = "SourceParallel"
31  
32  # Test case generation strategy
33  # "arbitrary" uses the Arbitrary trait implementation
34  # "uniform" generates values uniformly across the range
35  strategy = "arbitrary"
36  
37  # Shrinking strategy when a test fails
38  # "linear" tries to reduce values linearly
39  # "binary" uses binary search to find minimal failing case
40  shrink_strategy = "linear"
41  
42  # Maximum size for generated collections (Vec, HashMap, etc.)
43  max_flat_map_regens = 1000000
44  
45  # Configuration for specific test patterns
46  [test_filter]
47  # Only run property tests matching these patterns
48  include = ["property", "proptest", "prop_"]
49  
50  # Exclude tests matching these patterns
51  exclude = ["slow_", "manual_"]
52  
53  # Environment-specific configurations
54  [env.ci]
55  # Reduced settings for CI to avoid timeouts
56  cases = 500
57  max_shrink_iters = 5000
58  timeout = 180000  # 3 minutes
59  
60  [env.nightly]
61  # Extended settings for nightly testing
62  cases = 10000
63  max_shrink_iters = 100000
64  timeout = 1800000  # 30 minutes
65  
66  [env.fuzzing]
67  # Intensive settings for fuzzing
68  cases = 100000
69  max_shrink_iters = 1000000
70  timeout = 7200000  # 2 hours