-
Notifications
You must be signed in to change notification settings - Fork 13k
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
Some num tests fail for {i586, i686, x86_64}-unknown-linux-gnu #46948
Comments
CC #53081 |
I don't see how this is related to #53081. Retested with latest nightly:
Release mode works fine for i686, x86_64 works fine regardless the mode. Separated the only two cases which are failing: use std::f32;
use std::f64;
fn f32_bug() {
let masked_nan2 = f32::NAN.to_bits() ^ 0x0055_5555;
assert_eq!(f32::from_bits(masked_nan2).to_bits(), masked_nan2);
}
fn f64_bug() {
let masked_nan1 = f64::NAN.to_bits() ^ 0x000A_AAAA_AAAA_AAAA;
assert_eq!(f64::from_bits(masked_nan1).to_bits(), masked_nan1);
} |
Misread the context while triaging. Sorry for the noise. |
Teach `compiletest` to ignore platform triples The UI tests are written assuming `--remap-path-prefix` is *not used* (`remap-debuginfo` in `config.toml`). The consequence is that the error messages may include paths and snippets into the standard library. When `remap-debuginfo` is enabled, these messages change in format and structure because `rustc` will not show paths and snippets into the standard library. This normally isn't a problem for the "main" platforms (linux/macos/windows), because the CI infrastructure is set up so that the tests run without `remap-debuginfo`, but the `dist` artifacts are built separately with `remap-debuginfo` enabled. However, some of the lower-tier platforms perform both tests and distribution in a single step with `remap-debuginfo` enabled. This also affects developers and distributors who use `remap-debuginfo`. To sidestep this problem, we add a way to ignore tests in specific platform triples, and update the overly broad `ignore-x86` rule in affected tests. Address rust-lang#46948, rust-lang#54546, rust-lang#53081.
Teach `compiletest` to ignore platform triples The UI tests are written assuming `--remap-path-prefix` is *not used* (`remap-debuginfo` in `config.toml`). The consequence is that the error messages may include paths and snippets into the standard library. When `remap-debuginfo` is enabled, these messages change in format and structure because `rustc` will not show paths and snippets into the standard library. This normally isn't a problem for the "main" platforms (linux/macos/windows), because the CI infrastructure is set up so that the tests run without `remap-debuginfo`, but the `dist` artifacts are built separately with `remap-debuginfo` enabled. However, some of the lower-tier platforms perform both tests and distribution in a single step with `remap-debuginfo` enabled. This also affects developers and distributors who use `remap-debuginfo`. To sidestep this problem, we add a way to ignore tests in specific platform triples, and update the overly broad `ignore-x86` rule in affected tests. Address #46948, #54546, #53081.
The issue title says:
However the text seems to say that this always works on x86_64 (and checking it on the playground, it does work right now). I'm also not aware of floating-point trouble on x86_64. So indeed I assume this is a duplicate of #73288, now tracked as #115567. |
Consider the following tests extract from libstd:
Using
rustc 1.24.0-nightly (250b49205 2017-12-21)
it fails in debug mode for the targets{i586, i686}-unknown-linux-gnu
but works in release mode. It works in both release and debug mode forx86_64-unknown-linux-gnu
.Using
rustc 1.23.0-beta.2 (c9107ee93 2017-12-08)
orrustc 1.22.1 (05e2e1c41 2017-11-22)
onlytests::test_mul_add
works in release mode for{i586, i686, x86_64}-unknown-linux-gnu
. For debug mode all tests fails for{i586, i686}-unknown-linux-gnu
,tests::test_mul_add
worksfor x86_64-unknown-linux-gnu
.The text was updated successfully, but these errors were encountered: