diff options
author | Catena cyber <35799796+catenacyber@users.noreply.github.com> | 2021-01-07 16:41:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-07 07:41:26 -0800 |
commit | 60b3a3d5ddd0075dec650974334ab476cba26ac5 (patch) | |
tree | 87d3d22dfaf01299b0ebb8a5c8333f7cd45ff5d8 /infra/base-images/base-builder | |
parent | 5ebefe4cff2f9b3426d0acd85b42c75dee22b947 (diff) | |
download | oss-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-x | infra/base-images/base-builder/compile_go_fuzzer | 6 |
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 - |