Extend and refine the crash case minimization process. Test input: Bug 1909261 full_reproducer 6500 QTest instructions (write mostly)
Refined (-M1 minimization level) vs. Original version: real 38m31.942s <-- real 532m57.192s user 28m18.188s <-- user 89m0.536s sys 12m42.239s <-- sys 50m33.074s 2558 instructions <-- 2846 instructions Test Enviroment: i7-8550U, 16GB LPDDR3, SSD Ubuntu 20.04.1 5.4.0-58-generic x86_64 Python 3.8.5 v8: Fix: [PATCH v7 1/7] misused the bytes type Add: [PATCH v7 1/7] warn when the CRASH_TOKEN cannot be found v7: Fix: [PATCH v6 1/7] get stuck in crash detection v6: Fix: add Reviewed-by and Tested-by tags v5: Fix: send SIGKILL on timeout Fix: rename minimization functions v4: Fix: messy diff in [PATCH v3 4/7] v3: Fix: checkpatch.pl errors v2: New: [PATCH v2 1/7] New: [PATCH v2 2/7] New: [PATCH v2 4/7] New: [PATCH v2 6/7] New: [PATCH v2 7/7] Fix: [PATCH 2/4] split using binary approach Fix: [PATCH 3/4] typo in comments Discard: [PATCH 1/4] the hardcoded regex match for crash detection Discard: [PATCH 4/4] the delaying minimizer Thanks for the suggestions from: Alexander Bulekov Qiuhao Li (7): fuzz: accelerate non-crash detection fuzz: double the IOs to remove for every loop fuzz: split write operand using binary approach fuzz: remove IO commands iteratively fuzz: set bits in operand of write/out to zero fuzz: add minimization options fuzz: heuristic split write based on past IOs scripts/oss-fuzz/minimize_qtest_trace.py | 260 +++++++++++++++++++---- 1 file changed, 213 insertions(+), 47 deletions(-) -- 2.25.1