Repository navigation
ci: use -test.gocoverdir and add make static - #592
Merged
Merged
Conversation
it can merge the coverage of its separately built HTTP/2 test binary, and added ci/static.sh to build the Pages badge from the result. Move the parts that do not depend on HTTP/2 to master, so #539 only adds its HTTP/2 test runs. 325114f's message lists ci/static.sh, but its diff does not contain it. #539 rewrote ci/test.sh to collect coverage with -test.gocoverdir, so
GitHub's ubuntu-latest runners are now Ubuntu 26.04, where qemu-user-static is a virtual package with no installation candidate, so the test and bench jobs fail before running TestMask and Benchmark_mask under qemu. qemu-user installs /usr/bin/qemu-aarch64 on both 24.04 and 26.04, so the symlink is no longer needed.
mafredri
marked this pull request as ready for review
October 29, 2026 21:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
make staticbuilds the GitHub Pages files (coverage report and badge) with the newci/static.sh, andstatic.ymlruns it instead of inline commands, so CI and a local run build the same output. The inline step ran underbash -ewithoutpipefail, so a failinggo tool coverwould publish a badge without a number;ci/static.shfails instead.ci/test.shcollects coverage with-test.gocoverdir, whichgo tool covdatacan merge across separate test runs, and converts it toci/out/profile.txt.The arm64 steps in
ci/test.shandci/bench.shinstallqemu-userinstead ofqemu-user-static. GitHub'subuntu-latestrunners are now Ubuntu 26.04, whereqemu-user-statichas no installation candidate, so thetestandbenchjobs failed at that step.qemu-userinstalls/usr/bin/qemu-aarch64on Ubuntu 24.04 and 26.04 (checked in containers, and in this PR's CI on 26.04). A separate commit formatsci/bench.shwith shfmt (whitespace only).AUTOBAHN=1 make teston master and on this branch ran and passed the same 853 tests and subtests, including the 299 Autobahn cases andTestWasm. Coverage was 92.3% on master and 92.5% here, over the same 1284 statements; identical runs differ by more than that (see the decision log).make staticwritesci/out/static/coverage.htmlandcoverage.svg.static.ymlruns only on pushes to master and on manual dispatch, so the checks on this PR do not run it.Refs #539
Decision log
stringer.gois still deleted from the profile,internal/test/...is left out of-coverpkg, and master'sexamplesfilter matched nothing becauseinternal/examplesis a separate module.ci/static.shusescurl -fsSLinstead ofwget, from the review on ci: remove dev branch jobs from daily workflow #549.ci/test.shusespipefailtoo, becausego listfeeds-coverpkgthrough a pipe.qemu-user, notqemu-user-binfmt(which apt lists as providingqemu-user-staticon 26.04): the scripts runqemu-aarch64directly, so they do not need binfmt registration.conn.go:176-179(a write ctx cancelled during the write) andframe.go:68-70(a read error after one header byte). Without Autobahn, 8 runs of each command covered 1129 to 1149 statements, andconn.go:176-179was covered in 2 of 8 runs of each. Most of the spread is in compression code; the tests pick compression modes at random.frame.go:68-70was covered only in this branch's Autobahn run.