gateway: fix broken coverage build#13333
Conversation
ca3ac16 to
7974615
Compare
Signed-off-by: Adam Korczynski <[email protected]>
7974615 to
47fb296
Compare
|
Hey, thank you so much for working on the fix 🚀 I am trying to test the branch locally, but I am still getting errors due to a mismatch in corpus formats. I am following the steps described in this documentation: A part of the logs I see: "testdata/fuzz/FuzzGatewayAPIToXDS/ff5b138b12cbc3ee6a224eb117a57b22a92c9fd3": unmarshal: unknown encoding version:
"testdata/fuzz/FuzzGatewayAPIToXDS/ff5e59e669228b330291f1888bca5bff3936a262": unmarshal: must include version and at least one value
"testdata/fuzz/FuzzGatewayAPIToXDS/ff6828318f40822b41f6da263fe1a8c8f72fbfd4": unmarshal: must include version and at least one value
"testdata/fuzz/FuzzGatewayAPIToXDS/ff7cf23d965420f15cc519e07ecbfdeab533b4d0": unmarshal: unknown encoding version: ���99999999999000000000000000000000:yaml.org,2002:str@�����������������������������
"testdata/fuzz/FuzzGatewayAPIToXDS/ffb473437706b854e2947ebd64856a4bb20fd585": unmarshal: unknown encoding version:
"testdata/fuzz/FuzzGatewayAPIToXDS/ffbb6ee3f221dcd968f0d608f6ad82b121d4ae32": unmarshal: unknown encoding version: /
"testdata/fuzz/FuzzGatewayAPIToXDS/ffcfdbde5cf831310aa245348d2687c29baeb4c9": unmarshal: must include version and at least one value
"testdata/fuzz/FuzzGatewayAPIToXDS/ffd8aada07e074e55ab8d21298367ef755b62fce": unmarshal: must include version and at least one value
"testdata/fuzz/FuzzGatewayAPIToXDS/fffb9a578f3afaec07acc17d4a606cefeed702ed": unmarshal: must include version and at least one value
FAIL
coverage: [no statements]
/out/dumps
2025/05/19 16:17:27 Cannot open profile file at "/out/dumps/*.perf.cpu.prof": open /out/dumps/*.perf.cpu.prof: no such file or directory
mv: cannot stat 'merged.data': No such file or directory
2025/05/19 16:17:27 Cannot open profile file at "/out/dumps/*.perf.heap.prof": open /out/dumps/*.perf.heap.prof: no such file or directory
mv: cannot stat 'merged.data': No such file or directory
Finished generating code coverage report for Go fuzz targets.
Serving the report on http://127.0.0.1:8008/linux/index.html
Serving HTTP on 0.0.0.0 port 8008 (http://0.0.0.0:8008/) ...
10.0.0.122 - - [19/May/2025 16:17:49] "GET //linux/index.html HTTP/1.1" 200 -
10.0.0.122 - - [19/May/2025 16:17:50] "GET //linux/index.html HTTP/1.1" 200 -
10.0.0.122 - - [19/May/2025 16:17:50] "GET //linux/index.html HTTP/1.1" 200 -
|
|
@sudiptob2 You need to run this file locally after checking out this branch: https://github.com/google/oss-fuzz/blob/master/infra/base-images/all.sh. This will rebuild the images with the infrastructure changes. You can modify it to the following to save time: #docker build --pull -t gcr.io/oss-fuzz-base/base-image "$@" infra/base-images/base-image
#docker build -t gcr.io/oss-fuzz-base/base-clang "$@" infra/base-images/base-clang
docker build -t gcr.io/oss-fuzz-base/base-builder "$@" infra/base-images/base-builder
docker build -t gcr.io/oss-fuzz-base/base-builder-go "$@" infra/base-images/base-builder-go
#docker build -t gcr.io/oss-fuzz-base/base-builder-jvm "$@" infra/base-images/base-builder-jvm
#docker build -t gcr.io/oss-fuzz-base/base-builder-python "$@" infra/base-images/base-builder-python
#docker build -t gcr.io/oss-fuzz-base/base-builder-rust "$@" infra/base-images/base-builder-rust
#docker build -t gcr.io/oss-fuzz-base/base-builder-ruby "$@" infra/base-images/base-builder-ruby
#docker build -t gcr.io/oss-fuzz-base/base-builder-swift "$@" infra/base-images/base-builder-swift
docker build -t gcr.io/oss-fuzz-base/base-runner "$@" infra/base-images/base-runner
#docker build -t gcr.io/oss-fuzz-base/base-runner-debug "$@" infra/base-images/base-runner-debug |
sudiptob2
left a comment
There was a problem hiding this comment.
Great work! Tested locally and I can now see the coverage report.
Signed-off-by: Adam Korczynski <[email protected]>
Signed-off-by: Adam Korczynski <[email protected]>
|
/gcbrun trial_build.py go --fuzzing-engines libfuzzer --sanitizers coverage address |
Signed-off-by: Adam Korczynski <[email protected]>
b94eb4e to
916b078
Compare
|
@AdamKorcz, we recently conducted a comparison between the coverage report generated locally and the coverage report generated using OSS-Fuzz, and found some mismatches in coverage percentage. Reported in issue #13393 |
|
Hi @AdamKorcz, |
Changes OSS-Fuzz infra such that it no longer builds native go test binaries. Instead, it follows a similar practice as non-native-go fuzzers and builds a test template that calls the fuzzer. This fixes the missing build of gateway.
@sudiptob2 this overwrites gateways upstream build script. I suggest we test here that it works and then move the changes upstream.
Fixes #13285