/ 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