fuzz-shell.nix 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. with import <nixpkgs> { };
  2. pkgs.mkShell {
  3. name = "go-fuzz";
  4. buildInputs = [ go ];
  5. shellHook = ''
  6. function setup() {
  7. mkdir -p $GOPATH/src
  8. pushd $GOPATH/src
  9. go get github.com/dvyukov/go-fuzz/go-fuzz
  10. go get github.com/dvyukov/go-fuzz/go-fuzz-build
  11. popd
  12. }
  13. function teardown() {
  14. chmod -R u+w $GOPATH
  15. rm -rf $GOPATH
  16. }
  17. echo "Setup up fuzzing environment"
  18. export GOPATH=$(mktemp -d /tmp/GOPATH.XXXXXX)
  19. trap teardown EXIT
  20. setup
  21. alias fuzzbuild="$GOPATH/bin/go-fuzz-build -tags gofuzz -o fuzz.zip"
  22. alias fuzzlink="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzLinkMessage"
  23. alias fuzzaddress="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzAddressMessage"
  24. alias fuzzroute="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzRouteMessage"
  25. alias fuzzneigh="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzNeighMessage"
  26. echo "Fuzz environment ready. There are 5 aliases available:"
  27. echo ""
  28. echo "fuzzbuild - will build the fuzzing file"
  29. echo "fuzzlink - will start fuzzing Link Messages"
  30. echo "fuzzaddress - will start fuzzing Address Messages"
  31. echo "fuzzroute - will start fuzzing Route Messages"
  32. echo "fuzzneigh - will start fuzzing Neigh Messages"
  33. echo ""
  34. '';
  35. }