aboutsummaryrefslogtreecommitdiff
path: root/infra/base-images/base-builder
diff options
context:
space:
mode:
authorCatena cyber <35799796+catenacyber@users.noreply.github.com>2021-01-07 16:41:26 +0100
committerGitHub <noreply@github.com>2021-01-07 07:41:26 -0800
commit60b3a3d5ddd0075dec650974334ab476cba26ac5 (patch)
tree87d3d22dfaf01299b0ebb8a5c8333f7cd45ff5d8 /infra/base-images/base-builder
parent5ebefe4cff2f9b3426d0acd85b42c75dee22b947 (diff)
downloadoss-fuzz-60b3a3d5ddd0075dec650974334ab476cba26ac5.tar.gz
Golang coverage improvements (#4920)
* Uses idiomatic way for golang package in coverage * Extends go coverage report to the whole repository
Diffstat (limited to 'infra/base-images/base-builder')
-rwxr-xr-xinfra/base-images/base-builder/compile_go_fuzzer6
1 files changed, 4 insertions, 2 deletions
diff --git a/infra/base-images/base-builder/compile_go_fuzzer b/infra/base-images/base-builder/compile_go_fuzzer
index 6113f39ef..b827f8223 100755
--- a/infra/base-images/base-builder/compile_go_fuzzer
+++ b/infra/base-images/base-builder/compile_go_fuzzer
@@ -25,7 +25,7 @@ fi
if [[ $SANITIZER = *coverage* ]]; then
cd $GOPATH/src/$path
- fuzzed_package=`pwd | rev | cut -d'/' -f 1 | rev`
+ fuzzed_package=`go list -f '{{.Name}}'`
cp $GOPATH/ossfuzz_coverage_runner.go ./"${function,,}"_test.go
sed -i -e 's/FuzzFunction/'$function'/' ./"${function,,}"_test.go
sed -i -e 's/mypackagebeingfuzzed/'$fuzzed_package'/' ./"${function,,}"_test.go
@@ -33,7 +33,9 @@ if [[ $SANITIZER = *coverage* ]]; then
echo "#!/bin/sh" > $OUT/$fuzzer
echo "cd $path" >> $OUT/$fuzzer
- echo "go test -run Test${function}Corpus -v $tags -coverprofile \$1 " >> $OUT/$fuzzer
+ # The fuzzer may be in a subdirectory, but we want the coverage report for the whole repository
+ fuzzed_repo=`echo $path | cut -d/ -f-3`
+ echo "go test -run Test${function}Corpus -v $tags -coverpkg $fuzzed_repo/... -coverprofile \$1 " >> $OUT/$fuzzer
chmod +x $OUT/$fuzzer
cd -