use a text-based comparison in the go-generate workflow

This commit is contained in:
Marten Seemann
2021-01-09 17:16:35 +08:00
parent d1c5297c0b
commit 018b7dc76d

View File

@@ -2,7 +2,14 @@
set -e set -e
find . -type f -name "*.go" -exec shasum {} \; > checksums_before.txt DIR=$(pwd)
TMP=$(mktemp -d)
cd "$TMP"
mkdir orig generated
cp -r "$DIR" orig
cp -r "$DIR" generated
cd generated
# delete all go-generated files generated (that adhere to the comment convention) # delete all go-generated files generated (that adhere to the comment convention)
grep --include \*.go -lrIZ "^// Code generated .* DO NOT EDIT\.$" . | xargs --null rm grep --include \*.go -lrIZ "^// Code generated .* DO NOT EDIT\.$" . | xargs --null rm
# delete all files generated by Genny # delete all files generated by Genny
@@ -11,11 +18,7 @@ grep --include \*.go -lrIZ "This file was automatically generated by genny." . |
grep --include \*.go -lrI "//go:generate genny" | xargs -L 1 go generate grep --include \*.go -lrI "//go:generate genny" | xargs -L 1 go generate
# now generate everything # now generate everything
go generate ./... go generate ./...
find . -type f -name "*.go" -exec shasum {} \; > checksums_after.txt cd ..
DIFF=$(diff checksums_before.txt checksums_after.txt) || true
echo "$DIFF" # don't compare fuzzing corpora
if [ -n "$DIFF" ]; then diff --exclude=corpus -ruN orig generated
exit 1
else
echo "All generated files match."
fi