Commit Graph
3 Commits
Author SHA1 Message Date
Mike Jensen 642099cf89 fuzz: hide external test files from go-118-fuzz-build during fuzzer builds (#21082)
go-118-fuzz-build (fc5dc53b) overlays every sibling _test.go in the fuzzer's directory onto a non-test path (<base>_libFuzzer.go). Sibling test files declaring an external test package (package foo_test) then collide with the fuzzer's package, failing the build with "found packages foo and foo_test".

One possible fix would be to stop using external _test package for our tests, but this change attempts to address this issue without changing our test packaging structure.

This change wraps each compile_native_go_fuzzer_v2 call in build_fuzzer, which hides the files in `go list .XTestGoFiles` for the build. Internal test files stay visible since the fuzz target may use their helpers.

Updates https://github.com/tailscale/corp/issues/46608

Change-Id: Ic6805854f76c597a5edff60674b5ea05b2d18ea9

Signed-off-by: Mike Jensen <mikej@tailscale.com>
2026-09-02 11:21:32 -06:00
Mike Jensen 650bb0546a fuzz: Don't pin go version, allowing go 1.27 support (#21057)
This change expands on #20862 to allow our oss-fuzz.sh script to be flexible for go1.27 (and future go versions without needing oss-fuzz changes).

The [PR on oss-fuzz](https://github.com/google/oss-fuzz/pull/15996) has been updated to no longer pin the go version.

Updates https://github.com/tailscale/corp/issues/46608

Change-Id: If5c7fe9e4171d9f31b4a767e9ec372d5e0edbe0d

Signed-off-by: Mike Jensen <mikej@tailscale.com>
2026-08-31 17:49:18 -06:00
Mike Jensen fae8f241bf fuzz: wire fuzzing to a standalone oss-fuzz script (#20862)
This change adds an entry point for oss-fuzz `fuzz/oss-fuzz.sh`, allowing us to wire in our current and future fuzzing into oss-fuzz without needing to update the google/oss-fuzz repo.

Existing fuzzing was also reviewed with the following changes:
  * disco/disco_fuzzer.go renamed to disco/fuzz_test.go so that it can have a _test.go suffix and match the modern go fuzzing design.
  * net/stun/stun_fuzzer.go renamed to net/stun/fuzz_test.go similar to the above
  * Disco and stun recieved seeds for their fuzzing starts
  * All existing fuzzing was given a local round of testing, which resulted in a round trip fix for disco not handling a full zero node key.
  * Running and building fuzzing was removed from CI (build only). The fuzz seeds are validated in normal go testing, but the fuzzing itself will only happen if run manually or on oss-fuzz.

Updates https://github.com/tailscale/corp/issues/46608

Change-Id: I47cb70169aefb02ac5a56220f26a6ec07fa135ee

Signed-off-by: Mike Jensen <mikej@tailscale.com>
2026-08-31 11:59:06 -06:00