rtnetlink/fuzz-shell.nix
Jeroen Simonetti 7196e82636
Add a nix-shell fuzzing file (#89)
Signed-off-by: Jeroen Simonetti <jeroen@simonetti.nl>
2020-10-27 16:06:21 +01:00

36 lines
1.3 KiB
Nix

with import <nixpkgs> { };
pkgs.mkShell {
name = "go-fuzz";
buildInputs = [ go ];
shellHook = ''
function setup() {
mkdir -p $GOPATH/src
pushd $GOPATH/src
go get github.com/dvyukov/go-fuzz/go-fuzz
go get github.com/dvyukov/go-fuzz/go-fuzz-build
popd
}
function teardown() {
chmod -R u+w $GOPATH
rm -rf $GOPATH
}
echo "Setup up fuzzing environment"
export GOPATH=$(mktemp -d /tmp/GOPATH.XXXXXX)
trap teardown EXIT
setup
alias fuzzbuild="$GOPATH/bin/go-fuzz-build -tags gofuzz -o fuzz.zip"
alias fuzzlink="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzLinkMessage"
alias fuzzaddress="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzAddressMessage"
alias fuzzroute="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzRouteMessage"
alias fuzzneigh="$GOPATH/bin/go-fuzz -bin=./fuzz.zip -workdir=testdata -func FuzzNeighMessage"
echo "Fuzz environment ready. There are 5 aliases available:"
echo ""
echo "fuzzbuild - will build the fuzzing file"
echo "fuzzlink - will start fuzzing Link Messages"
echo "fuzzaddress - will start fuzzing Address Messages"
echo "fuzzroute - will start fuzzing Route Messages"
echo "fuzzneigh - will start fuzzing Neigh Messages"
echo ""
'';
}