From 71e00ba9c1fb2f39ed37b33dd122fe03b8482378 Mon Sep 17 00:00:00 2001 From: Chris Henzie Date: Thu, 9 Jul 2026 16:13:34 -0700 Subject: [PATCH] ci: bound Go fuzzing by execution count Go can report context deadline exceeded when a duration-based fuzz limit expires (https://go.dev/issue/75804). Use a 50,000-execution limit based on the roughly 47,000 executions FuzzImageStore completed in 30 seconds in CI. This keeps work stable across runners and avoids the duration issue. Assisted-by: Codex (cherry picked from commit c1b9b78f473f2936fb5d3f06b147d0a01f7a12dc) Signed-off-by: Chris Henzie --- script/go-test-fuzz.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/script/go-test-fuzz.sh b/script/go-test-fuzz.sh index ceae5d75ce..14dac0df2b 100755 --- a/script/go-test-fuzz.sh +++ b/script/go-test-fuzz.sh @@ -14,16 +14,18 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Running Go 1.18's fuzzing for 30 seconds each. While this would be too +# Running Go's fuzzing for 50,000 executions. While this would be too # short to acutally find issues, we want to make sure that these fuzzing -# tests are not fundamentally broken. +# tests are not fundamentally broken. Using an execution limit rather than a +# duration also avoids spurious failures when a duration expires +# (https://go.dev/issue/75804). set -euo pipefail -fuzztime=30s +fuzzlimit=50000x pkgs=$(git grep 'func Fuzz.*testing\.F' | grep -o '.*\/' | sort | uniq) for pkg in $pkgs do - go test -fuzz=. ./$pkg -fuzztime=$fuzztime + go test -fuzz=. ./$pkg -fuzztime=$fuzzlimit done