Testing: Make tests work (again) on 32-bit architectures
Currently, we run GOARCH=386 go test ./cmd/prometheus (code), but no other tests on any 32-bit architecture. This ensures that the binary compiles and that the few tests in ./cmd/prometheus pass.
Thas has naturally lead to more and more of the usual tests to not pass (or not even compile) anymore on 32-bit architectures. This could mask bugs that are only relevant for 32-bit, but it also means that distributors of pre-compiled 32-bit binaries have to exclude those tests.
Therefore, it would be preferable to make as many tests as reasonably possible pass on 32-bit and exclude those that don't in an informed way. Then, we can add general 32-bit testing again to CI.
This issue is filed in prometheus/prometheus because this is the most relevant repo and the best starting point. Once it is solved here, other repositories should get the same vetting.
Obviously, we also would like to document which repositories have which support tier on various platforms, see https://github.com/prometheus/docs/issues/2668 .
Hi, I'm working on testing Prometheus on 32-bit using Docker with the i386/golang image. I'm identifying and fixing or skipping tests that fail under GOARCH=386. I'll open a PR soon. Let me know if any areas need priority attention.