-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: Enable 32bit unit test #3529
Conversation
401acce
to
525b159
Compare
Meanwhile, this 32bit unit test is a real pain. Not every compiler's multilib support is created equal, as it turns out. |
Wouldn't it be sufficient to just add one test case for 32 bit using the latest Clang or GCC? |
My original idea was to add the 32bit test to It can't be |
525b159
to
4beb3ed
Compare
The current approach indeed looks rather complicated. |
I was trying a simpler approach and remembered what the problem with that was. We need to build the 32bit test for coverage. That's why I asked if it would be possible to collect coverage data from multiple builds. Let me see if there's a way to get both coverage and a simpler setup without modifying the coverage test itself. |
4beb3ed
to
257efd7
Compare
For the coverage job we use GNU 9.4.0 which should have multilib support. Wouldn't it be sufficient to just set a flag like |
I would have really liked to include the 32bit test with sanitizer builds and MSVC (accomplished via The overall simpler approach would remove the dedicated 32bit unit test, keep the 32bit tests behind Otherwise, we could leave things as-is, and add the remaining failing compilers to the blacklist until CI passes. |
Given that 32 bit builds are quite a niche, I wouldn't want to spend too much runtime on this with every future build. Or am I overlooking anything? |
I agree, and the current setup avoids that by only building a tiny test but for many configurations. This should be a lot faster than building everything once for 32bit. |
95d8ecc
to
b1d2bef
Compare
I think I have found a workable hybrid. Shouldn't take long. |
b1d2bef
to
71be9f5
Compare
In addition to enabling the 32bit unit test where possible (snapshot GCC is built without multilib), I've changed the multi-header default to
ON
and added a single-header build toci_test_amalgamation
.JSON_32bitTest
can be set toAUTO
orSAFE_AUTO
(default) in addition toON
/OFF
for auto-detection of compiler support.SAFE_AUTO
enables the 32bit build based on the size ofsize_t
without changing compiler/linker flags.Closes #3524.