go tool cover -html=xxx no longer works on Ubuntu 22.04, because it uses a file in /tmp but Firefox is sandboxed and can’t access the system /tmp directory (or the root directory.)
In the last few months, Firefox changed from an apt package to a snap package. Due to the way snap works, Firefox now runs in a sandbox that can’t access the system’s root directory, and /tmp as Firefox sees it is not the same as the system’s /tmp/ directory.
I opened an issue for this: cmd/cover: cover uses /tmp but ubuntu 22.04 Firefox now won't access /tmp · Issue #68343 · golang/go · GitHub . They apparently don’t think it’s a go problem that a go tool doesn’t work as described on Ubuntu.
PLEASE upvote if you think it should be fixed.
Meanwhile, here are workarounds:
- Use the the TMPDIR env var to override:
TMPDIR=/x/y/z go tool cover -html=x.out - Uninstall Firefox and reinstall using a PPA (Personal Package Archive), but note that you have to also configure the priority or it will just reinstall it using
snap. See software installation - How to install Firefox as a traditional deb package (without snap) in Ubuntu 22.04 or later versions? - Ask Ubuntu - Use the
out=option to a file in the user’s directory and open that in Firefox (but that takes manual steps each time you rungo tool cover, or else wrap it in a script and use xdg-open to open the URL.)