commit 295fced96aa3aef15966a69207a8c531d3c56162 from: Sergey Bronnikov date: Tue May 30 19:33:29 2023 UTC add treereduce commit - b566a2659d29694b42a05ad77043443f70527aa6 commit + 295fced96aa3aef15966a69207a8c531d3c56162 blob - 736c777567d432744adac96f3d5e809bf82e6ebd blob + ad533eff32add96fff7476770721a41750b5f323 --- testcase-minimization.md +++ testcase-minimization.md @@ -5,8 +5,11 @@ ### Algorithms and Implementations -- https://github.com/DRMacIver/shrinkray -- [preduce](https://github.com/fitzgen/preduce). Language-agnostic. +Comparison: https://langston-barrett.github.io/treereduce/overview.html#comparison-to-other-tools + +- Rust [treereduce](https://github.com/langston-barrett/treereduce) - A fast, parallel, syntax-aware test case reducer based on tree-sitter grammars. +- Python [shrinkray](https://github.com/DRMacIver/shrinkray) +- Python [preduce](https://github.com/fitzgen/preduce). Language-agnostic. - [C-Reduce](http://embed.cs.utah.edu/creduce/), according to [comparison](https://blog.regehr.org/extra_files/creduce21.png) C-Reduce is significantly better than Delta - C-Vise https://github.com/marxin/cvise - Delta-Debugging algorithm, see paper *Simplifying Failure-Inducing Input*, Ralf Hildebrandt and Andreas Zeller, 2000. Implementations: @@ -19,7 +22,7 @@ - JS https://github.com/wala/jsdelta - https://en.wikipedia.org/wiki/Delta_debugging#Software - https://github.com/MarkusTeufelberger/afl-ddmin-mod -- halfempty https://github.com/googleprojectzero/halfempty +- [halfempty](https://github.com/googleprojectzero/halfempty) - DustMite https://dlang.org/blog/2020/04/13/dustmite-the-general-purpose-data-reduction-tool/ - [afl-tmin](https://github.com/google/AFL/blob/master/afl-tmin.c), [description](https://github.com/google/AFL/blob/61037103ae3722c8060ff7082994836a794f978e/docs/technical_details.txt#L281-L313) - [lithium](https://github.com/MozillaSecurity/lithium/) (testcase reduction algorithm is a modified version of the "ddmin" algorithm in Andreas Zeller's paper, Simplifying and Isolating Failure-Inducing Input)