[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xsmith-dev] [ANN] Xsmith 2.0

Announcing the release of Xsmith version 2.0!

Xsmith is a DSL for making random test case generators (fuzzers) for
programming language implementations.  Xsmith is designed to generate
valid test cases that can be used for differential testing between
multiple different implementations of programming languages.  Xsmith
version 2 is not backwards compatible with version 1, but it's pretty
easy to upgrade if you happen to have written a fuzzer with Xsmith
version 1.

Many things have improved since version 1:
• Improvements to the type and effect systems, including subtyping support.
• New ways to control the order of subtree generation and refine programs.
• Better interfaces featuring less boiler-plate code.
• Integration with the Clotho[1] library to provide Zest[2]-style support for feedback-directed fuzzing.
• A library of drop-in components for common language constructs.
• Many bug fixes, so there should be fewer (or at least different) bugs!
• Improved and expanded documentation.

Xsmith is available as the `xsmith` package, with example fuzzers in
the `xsmith-examples` package.

xsmith package:  https://pkgd.racket-lang.org/pkgn/package/xsmith
xsmith-examples package:  https://pkgd.racket-lang.org/pkgn/package/xsmith-examples
source code repository:  https://gitlab.flux.utah.edu/xsmith/xsmith

[1] - Clotho package: https://pkgd.racket-lang.org/pkgn/package/clotho paper: https://www.flux.utah.edu/paper/darragh-scheme20

[2] - Semantic Fuzzing With Zest by Padhye et al: https://doi.org/10.1145/3293882.3330576