-
Notifications
You must be signed in to change notification settings - Fork 13.5k
libc++: std/utilities/charconv/charconv.msvc/test.pass.cpp fails after #91651 #113265
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
Comments
Ack, will look into it when I get a chance. |
Do you have any more information on how to replicate this (e.g. cmake arguments?) I'm not very familiar with the libcxx tests. |
https://github.com/llvm/llvm-project/actions/runs/11923013907/job/33283101979?pr=116149 is another CI run with the same error. |
Those are tests timing out. I disabled them under msan since they're seemingly just too slow to run under that sanitizer. |
This test remains flaky in Android. Note that we are seeing a failure, not a test timeout. |
And where would you be able to look that that failure? |
The failure message is in #1. If you want to reproduce the ToT Android LLVM toolchain build, you will need to first install the Android repo tool, then: $ mkdir llvm-toolchain && cd llvm-toolchain
$ repo init -u https://android.googlesource.com/platform/manifest -b llvm-toolchain
$ repo sync -c
$ toolchain/llvm_android/build.py --build-llvm-next --llvm-rev=main --no-build=windows Towards the end of the build, libcxx tests will be ran, and there is an around 50% chance that the test would fail. |
Is there a way to skip the unrelated tests? Running the full suite with the provided command takes ~20 minutes on my workstation and I've yet to get the error. Being able to rebuild faster would greatly help in debugging. |
For the llvm-toolchain repro above, once cmake for stage2 is complete, you can ctrl-c out of the stage2 build and run |
Alright, I have managed to replicate. The randomized test gave me a different failing test case so I'll talk them through separately. Also: The only part that's important is the "round-trip failed for
{
const char* s = "1.247130438231756e+30";
const char* last = s + std::strlen(s) - 1;
double value = 0.25;
std::from_chars_result result = std::from_chars(s, last, value);
assert(result.ec == std::errc{});
assert(result.ptr == last);
assert(value == 1.247130438231756e+30);
} |
Some of the other failing cases we observed: 0x3F92EF16EEE175FB |
Update: I was wrong about that first case being On the more positive side, I can consistently replicate the error by manually setting |
Current Status: Details: I have some other work with more pressing deadlines, so this is going on the backburner for a bit, but if you want to try yourself, here's the diff I used for testing:
The result I get on i386 when running
The correct values are:
(The last bit of the expanded float mantissa is lower) |
After #91651, the above test fails in an internal Android builder when targeting i386-linux-gnu. Tagging @michaelrj-google.
The text was updated successfully, but these errors were encountered: