Add experimental fuzz test support for Go 1.17

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • go

    The Go programming language

  • There’s some ‘got’ and ‘want’ pointers in https://github.com/golang/go/wiki/TestComments .

    But yeah, I didn’t even realize this was a very Google thing :).

  • gopter

    GOlang Property TestER

  • Does anyone have experience with Gopter, a Golang Property Based testing library? https://github.com/leanovate/gopter

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • go-fuzz

    Randomized testing for Go

  • Go tests and benchmarks are so easy to write and run: just add TestFoo and BenchmarkFoo functions to a bar_test.go file, and "go test" does the rest. It's currently doable, but it requires a 3rd party library (go-fuzz) and a bit of fluffing around. This will make fuzz testing an equally first-class citizen with standard Go tooling (just add FuzzFoo), and as such we'll probably see a lot more people testing with fuzzing.

    I used go-fuzz in GoAWK and it found several bugs (see https://benhoyt.com/writings/goawk/#fuzz-testing), and almost everyone who's done fuzz testing has similar reports. Certainly go-fuzz has found many, many bugs in Go itself: https://github.com/dvyukov/go-fuzz#trophies

    For what it's worth, I wrote an article for LWN about the upcoming support for built-in fuzzing in Go: https://lwn.net/Articles/829242/ (of course, if you want full details, read the full proposal).

  • trophy-case

    🏆 Collection of bugs uncovered by fuzzing Rust code

  • Fuzzing is still very relevant in Rust. It tends to find panics rather than segfaults, but that's still bugs.

    https://github.com/rust-fuzz/trophy-case

  • diem

    Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.

  • Just to add, we're a heavy user of fuzzing in Diem[1] and we found a good number of bugs thanks to it : )

    https://github.com/diem/diem/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts