Skip to content
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

compiletest normalization: preserve non-JSON lines such as ICEs #59769

Merged
merged 9 commits into from
Apr 16, 2019

Conversation

RalfJung
Copy link
Member

@RalfJung RalfJung commented Apr 7, 2019

Currently, every non-JSON line from stderr gets normalized away when compiletest normalizes the output. In particular, ICEs get normalized to the empty output. That does not seem desirable, so this changes normalization to preserve non-JSON lines instead.

Also see Manishearth/compiletest-rs#169: because of that bug, Miri currently looks green in the toolstate, but some tests ICE. That same bug is likely no longer present in latest compiletest because the error code gets checked separately, but it still seems like a good idea to also make sure that ICEs are considered stderr output:
This change found an accidental user-visible error! in CTFE validation (fixed), and a non-deterministic panic when there are two main symbols (not fixed, no idea where this comes from). Both got missed before because non-JSON output got ignored.

@rust-highfive
Copy link
Collaborator

r? @alexcrichton

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Apr 7, 2019
@RalfJung
Copy link
Member Author

RalfJung commented Apr 7, 2019

One run-pass test fails: run-pass/backtrace-debuginfo.rs prints a lot of output like

BISECT: NOT running pass (1) Simplify the CFG on function (_ZN100_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h391085693251d4a6E)
BISECT: NOT running pass (2) SROA on function (_ZN100_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h391085693251d4a6E)
BISECT: NOT running pass (3) Early CSE on function (_ZN100_$LT$core..slice..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..double_ended..DoubleEndedIterator$GT$9next_back17h391085693251d4a6E)
BISECT: NOT running pass (4) Simplify the CFG on function (_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$17get_unchecked_mut17h0fdaaf050f966ff1E)
BISECT: NOT running pass (5) SROA on function (_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$17get_unchecked_mut17h0fdaaf050f966ff1E)
BISECT: NOT running pass (6) Early CSE on function (_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$17get_unchecked_mut17h0fdaaf050f966ff1E)
BISECT: NOT running pass (7) Simplify the CFG on function (_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h1ca1d8630ca2e8baE)

This does not seem very stable. I can normalize away these lines, but even then the normalized output is still a given number of empty lines, and that will likely change as well. Is there a way to disable output comparison entirely, or to also normalize away the redundant empty lines that get created here? I tried

// normalize-stderr-test "BISECT: .*\n" -> ""

but that does not seem to work.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:04a29704:start=1554633994007961660,finish=1554633994987705499,duration=979743839
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
Setting environment variables from .travis.yml
---
[01:03:29] .................................................................................................... 1400/5527
[01:03:33] .................................................................................................... 1500/5527
[01:03:36] .................................................................................................... 1600/5527
[01:03:39] .......................................................i............................................ 1700/5527
[01:03:43] .......................................F............................................................ 1800/5527
[01:03:51] .................................................................................................... 2000/5527
[01:03:54] ...........................................................................................i........ 2100/5527
[01:03:54] ...........................................................................................i........ 2100/5527
[01:03:58] .......................................F............................................................ 2200/5527
[01:04:07] .................................................................................................... 2400/5527
[01:04:12] .................................................................................................... 2500/5527
[01:04:15] .................................................................................................... 2600/5527
[01:04:19] .................................................................................................... 2700/5527
---
[01:06:17] ---- [ui] ui/duplicate/dupe-symbols-7.rs stdout ----
[01:06:17] diff of stderr:
[01:06:17] 
[01:06:17] 6    |
[01:06:17] 7    = help: did you use #[no_mangle] on `fn main`? Use #[start] instead
[01:06:17] 8 
[01:06:17] - thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:06:17] - note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:06:17] 12 
[01:06:17] 13 
[01:06:17] 
[01:06:17] 
[01:06:17] 
[01:06:17] The actual stderr differed from the expected stderr.
[01:06:17] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/duplicate/dupe-symbols-7/dupe-symbols-7.stderr
[01:06:17] To update references, rerun the tests and pass the `--bless` flag
[01:06:17] To only update this specific test, also pass `--test-args duplicate/dupe-symbols-7.rs`
[01:06:17] error: 1 errors occurred comparing output.
[01:06:17] status: exit code: 1
[01:06:17] status: exit code: 1
[01:06:17] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/duplicate/dupe-symbols-7.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/duplicate/dupe-symbols-7/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/duplicate/dupe-symbols-7/auxiliary" "-A" "unused"
[01:06:17] ------------------------------------------
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] stderr:
[01:06:17] stderr:
[01:06:17] ------------------------------------------
[01:06:17] {"message":"entry symbol `main` defined multiple times","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/duplicate/dupe-symbols-7.rs","byte_start":98,"byte_end":109,"line_start":6,"line_end":6,"column_start":1,"column_end":12,"is_primary":true,"text":[{"text":"fn main(){}","highlight_start":1,"highlight_end":12}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"did you use #[no_mangle] on `fn main`? Use #[start] instead","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error: entry symbol `main` defined multiple times\n  --> /checkout/src/test/ui/duplicate/dupe-symbols-7.rs:6:1\n   |\nLL | fn main(){}\n   | ^^^^^^^^^^^\n   |\n   = help: did you use #[no_mangle] on `fn main`? Use #[start] instead\n\n"}
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] 
[01:06:17] thread '[ui] ui/duplicate/dupe-symbols-7.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3425:9
[01:06:17] thread '[ui] ui/duplicate/dupe-symbols-7.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3425:9
[01:06:17] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:06:17] 
[01:06:17] ---- [ui] ui/huge-array.rs stdout ----
[01:06:17] diff of stderr:
[01:06:17] 
[01:06:17] 1 error: the type `[[u8; 1518599999]; 1518600000]` is too big for the current architecture
[01:06:17] 2 
[01:06:17] + thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:06:17] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:06:17] 4 
[01:06:17] 5 
[01:06:17] 
[01:06:17] 
[01:06:17] 
[01:06:17] The actual stderr differed from the expected stderr.
[01:06:17] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/huge-array/huge-array.stderr
[01:06:17] To update references, rerun the tests and pass the `--bless` flag
[01:06:17] To only update this specific test, also pass `--test-args huge-array.rs`
[01:06:17] error: 1 errors occurred comparing output.
[01:06:17] status: exit code: 1
[01:06:17] status: exit code: 1
[01:06:17] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/huge-array.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/huge-array/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/huge-array/auxiliary" "-A" "unused"
[01:06:17] ------------------------------------------
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] stderr:
[01:06:17] stderr:
[01:06:17] ------------------------------------------
[01:06:17] {"message":"the type `[[u8; 1518599999]; 1518600000]` is too big for the current architecture","code":null,"level":"error","spans":[],"children":[],"rendered":"error: the type `[[u8; 1518599999]; 1518600000]` is too big for the current architecture\n\n"}
[01:06:17] thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:06:17] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] 
[01:06:17] 
[01:06:17] thread '[ui] ui/huge-array.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3425:9
[01:06:17] 
[01:06:17] ---- [ui] ui/issues/issue-17913.rs stdout ----
[01:06:17] diff of stderr:
[01:06:17] 
[01:06:17] 1 error: the type `[&usize; N]` is too big for the current architecture
[01:06:17] 2 
[01:06:17] + thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:06:17] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:06:17] 4 
[01:06:17] 5 
[01:06:17] 
[01:06:17] 
[01:06:17] 
[01:06:17] The actual stderr differed from the expected stderr.
[01:06:17] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-17913/issue-17913.stderr
[01:06:17] To update references, rerun the tests and pass the `--bless` flag
[01:06:17] To only update this specific test, also pass `--test-args issues/issue-17913.rs`
[01:06:17] error: 1 errors occurred comparing output.
[01:06:17] status: exit code: 1
[01:06:17] status: exit code: 1
[01:06:17] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/issues/issue-17913.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-17913/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-17913/auxiliary" "-A" "unused"
[01:06:17] ------------------------------------------
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] stderr:
[01:06:17] stderr:
[01:06:17] ------------------------------------------
[01:06:17] {"message":"the type `[&usize; 17293822569102704640]` is too big for the current architecture","code":null,"level":"error","spans":[],"children":[],"rendered":"error: the type `[&usize; 17293822569102704640]` is too big for the current architecture\n\n"}
[01:06:17] thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:06:17] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[01:06:17] 
[01:06:17] ------------------------------------------
[01:06:17] 
---
[01:06:17] 
[01:06:17] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:516:22
[01:06:17] 
[01:06:17] 
[01:06:17] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:06:17] 
[01:06:17] 
[01:06:17] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:06:17] Build completed unsuccessfully in 0:04:38
[01:06:17] Build completed unsuccessfully in 0:04:38
[01:06:17] make: *** [check] Error 1
[01:06:17] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0ff76ea4
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sun Apr  7 11:53:03 UTC 2019
---
travis_time:end:01e55fbd:start=1554637985504485760,finish=1554637985509690247,duration=5204487
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2777cc1c
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0cb80176
travis_time:start:0cb80176
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:29924e68
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@RalfJung
Copy link
Member Author

RalfJung commented Apr 7, 2019

but that does not seem to work.

Actually it does work, but there is the following line in the output:

<<<<<< SKIPPED 31870198 BYTES >>>>>>

That seems to come from compiletest itself, which does not want to capture output this big.


However, the UI tests seem to be annoyingly non-deterministic. I had run them with --bless before, which is how this "Metadata module not compiled?" appeared, but now when I re-run the tests I sometimes get it for more tests and sometimes it disappears entirely.

@RalfJung RalfJung force-pushed the compiletest-normalization branch from d6bb5e2 to be83bd5 Compare April 7, 2019 14:45
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:12e4f71a:start=1554648403791901503,finish=1554648406142912939,duration=2351011436
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
Setting environment variables from .travis.yml
---
[01:09:29] .................................................................................................... 2800/5527
[01:09:33] .................................................................................................... 2900/5527
[01:09:38] .................................................................................................... 3000/5527
[01:09:42] .................................................................................................... 3100/5527
[01:09:46] ............................................................F....................................... 3200/5527
[01:09:55] ...........................i........................................................................ 3400/5527
[01:09:59] .................................................................................................... 3500/5527
[01:10:03] .ii...i..ii......................................................................................... 3600/5527
[01:10:08] .................................................................................................... 3700/5527
---
[01:11:28] 
[01:11:28] ---- [ui] ui/linkage3.rs stdout ----
[01:11:28] diff of stderr:
[01:11:28] 
[01:11:28] 4 LL |     #[linkage = "foo"] static foo: *const i32;
[01:11:28] 6 
[01:11:28] 6 
[01:11:28] + thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:11:28] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:11:28] 8 
[01:11:28] 9 
[01:11:28] 
[01:11:28] 
[01:11:28] 
[01:11:28] The actual stderr differed from the expected stderr.
[01:11:28] Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/linkage3/linkage3.stderr
[01:11:28] To update references, rerun the tests and pass the `--bless` flag
[01:11:28] To only update this specific test, also pass `--test-args linkage3.rs`
[01:11:28] error: 1 errors occurred comparing output.
[01:11:28] status: exit code: 1
[01:11:28] status: exit code: 1
[01:11:28] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/linkage3.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/linkage3/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/linkage3/auxiliary" "-A" "unused"
[01:11:28] ------------------------------------------
[01:11:28] 
[01:11:28] ------------------------------------------
[01:11:28] stderr:
[01:11:28] stderr:
[01:11:28] ------------------------------------------
[01:11:28] {"message":"invalid linkage specified","code":null,"level":"error","spans":[{"file_name":"/checkout/src/test/ui/linkage3.rs","byte_start":54,"byte_end":77,"line_start":4,"line_end":4,"column_start":24,"column_end":47,"is_primary":true,"text":[{"text":"    #[linkage = \"foo\"] static foo: *const i32;","highlight_start":24,"highlight_end":47}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"error: invalid linkage specified\n  --> /checkout/src/test/ui/linkage3.rs:4:24\n   |\nLL |     #[linkage = \"foo\"] static foo: *const i32;\n   |                        ^^^^^^^^^^^^^^^^^^^^^^^\n\n"}
[01:11:28] thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1034:5
[01:11:28] {"message":"aborting due to previous error","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to previous error\n\n"}
[01:11:28] 
[01:11:28] ------------------------------------------
[01:11:28] 
---
[01:11:28] 
[01:11:28] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:516:22
[01:11:28] 
[01:11:28] 
[01:11:28] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:11:28] 
[01:11:28] 
[01:11:28] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:11:28] Build completed unsuccessfully in 0:04:56
[01:11:28] Build completed unsuccessfully in 0:04:56
[01:11:28] make: *** [check] Error 1
[01:11:28] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:09114b9a
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sun Apr  7 15:58:26 UTC 2019
---
travis_time:end:16531dc9:start=1554652708151519886,finish=1554652708157313802,duration=5793916
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:04ecdf90
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:05e861da
travis_time:start:05e861da
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:0130713c
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@alexcrichton
Copy link
Member

r=me with passing tests

@RalfJung
Copy link
Member Author

RalfJung commented Apr 8, 2019

I think I need help with the tests. This is basically blocked on #59774: rustc currently non-deterministically sometimes prints

thread '<unnamed>' panicked at 'Metadata module not compiled?', src/libcore/option.rs:1038:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

and with this change, that now becomes a reason for test failures.

@alexcrichton
Copy link
Member

Could that test perhaps be ignored with a FIXME pointing to the issue?

@RalfJung
Copy link
Member Author

RalfJung commented Apr 9, 2019

It's a small handful of tests, not just one -- and there might be more, because this is so highly non-deterministic.

Did you mean ignored as in ignore-test? That seems like an unfortunate regression. I guess I could try to normalize away the bad part of the output.

@alexcrichton
Copy link
Member

This isn't a regression, right? It's just exposing already-existing behavior?

And yeah I'd imagine using // ignore-test would be fine.

If you would prefer to not use // ignore-test then I think this PR should be closed until the referenced issue is fixed. I do not personally know how to fix it.

@alexcrichton alexcrichton reopened this Apr 9, 2019
@RalfJung
Copy link
Member Author

RalfJung commented Apr 9, 2019

Well it's a regression in terms of test coverage.

I think normalizing is preferrable over ignoring the test entirely. I added normalization for all tests that I saw fail this way locally or on CI. But it seems very random, so I fear that this might affect future PRs.

@RalfJung RalfJung force-pushed the compiletest-normalization branch from 9f9dc76 to 8861232 Compare April 9, 2019 21:27
@alexcrichton
Copy link
Member

@bors: r+

@bors
Copy link
Contributor

bors commented Apr 9, 2019

📌 Commit 8861232 has been approved by alexcrichton

@bors
Copy link
Contributor

bors commented Apr 9, 2019

🌲 The tree is currently closed for pull requests below priority 15, this pull request will be tested once the tree is reopened

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 9, 2019
Centril added a commit to Centril/rust that referenced this pull request Apr 13, 2019
… r=alexcrichton

compiletest normalization: preserve non-JSON lines such as ICEs

Currently, every non-JSON line from stderr gets normalized away when compiletest normalizes the output. In particular, ICEs get normalized to the empty output. That does not seem desirable, so this changes normalization to preserve non-JSON lines instead.

Also see Manishearth/compiletest-rs#169: because of that bug, Miri currently *looks* green in the toolstate, but some tests ICE. That same bug is likely no longer present in latest compiletest because the error code gets checked separately, but it still seems like a good idea to also make sure that ICEs are considered stderr output:
This change found an accidental user-visible `error!` in CTFE validation (fixed), and a non-deterministic panic when there are two `main` symbols (not fixed, no idea where this comes from). Both got missed before because non-JSON output got ignored.
Centril added a commit to Centril/rust that referenced this pull request Apr 13, 2019
Rollup of 9 pull requests

Successful merges:

 - rust-lang#59655 (Use a proc macro to declare preallocated symbols)
 - rust-lang#59769 (compiletest normalization: preserve non-JSON lines such as ICEs)
 - rust-lang#59776 (Apply resource-suffix to search-index and source-files scripts as well)
 - rust-lang#59784 (Suggest importing macros from the crate root)
 - rust-lang#59812 (Exclude profiler-generated symbols from MSVC __imp_-symbol workaround.)
 - rust-lang#59856 (update polonius-engine)
 - rust-lang#59874 (Clean up handling of `-Z pgo-gen` commandline option.)
 - rust-lang#59890 (Don't generate empty json variables)
 - rust-lang#59911 (Revert "compile crates under test w/ -Zemit-stack-sizes")

Failed merges:

r? @ghost
@bors bors added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Apr 14, 2019
@RalfJung
Copy link
Member Author

open an issue and normalize this away for now?

Done: #59998

@bors r=alexcrichton

@bors
Copy link
Contributor

bors commented Apr 15, 2019

📌 Commit 581c1ab has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 15, 2019
@Centril
Copy link
Contributor

Centril commented Apr 15, 2019

@bors p=2

r0llup planning.

@bors
Copy link
Contributor

bors commented Apr 15, 2019

⌛ Testing commit 581c1ab with merge 3b20e3419976e09c1429a2b73e3f8792d76c6072...

@bors
Copy link
Contributor

bors commented Apr 16, 2019

💔 Test failed - checks-travis

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Apr 16, 2019
@rust-highfive
Copy link
Collaborator

The job x86_64-apple of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
[00:02:53]       Memory: 8 GB
[00:02:53]       Boot ROM Version: VMW71.00V.7581552.B64.1801142334
[00:02:53]       Apple ROM Info: [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]Welcome to the Virtual Machine
[00:02:53]       SMC Version (system): 2.8f0
[00:02:53]       Serial Number (system): VM/zoBwLTgvG
[00:02:53] 
[00:02:53] hw.ncpu: 4
[00:02:53] hw.byteorder: 1234
[00:02:53] hw.memsize: 8589934592
---
[01:21:36] 
[01:21:36] ---- [ui] ui/proc-macro/invalid-punct-ident-1.rs stdout ----
[01:21:36] diff of stderr:
[01:21:36] 
[01:21:36] + thread 'rustc' panicked at 'unsupported character `'`'`', src/libsyntax_ext/proc_macro_server.rs:315:13
[01:21:36] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] 1 error: proc macro panicked
[01:21:36] 3    |
[01:21:36] 
[01:21:36] 
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] Actual stderr saved to /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-1/invalid-punct-ident-1.stderr
[01:21:36] To update references, rerun the tests and pass the `--bless` flag
[01:21:36] To only update this specific test, also pass `--test-args proc-macro/invalid-punct-ident-1.rs`
[01:21:36] error: 1 errors occurred comparing output.
[01:21:36] status: exit code: 1
[01:21:36] status: exit code: 1
[01:21:36] command: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-1.rs" "-Zthreads=1" "--target=x86_64-apple-darwin" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-1/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "-L" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-1/auxiliary" "-A" "unused"
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] stderr:
[01:21:36] stderr:
[01:21:36] ------------------------------------------
[01:21:36] thread 'rustc' panicked at 'unsupported character `'`'`', src/libsyntax_ext/proc_macro_server.rs:315:13
[01:21:36] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] {"message":"proc macro panicked","code":null,"level":"error","spans":[{"file_name":"/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-1.rs","byte_start":285,"byte_end":302,"line_start":10,"line_end":10,"column_start":1,"column_end":18,"is_primary":true,"text":[{"text":"invalid_punct!(); //~ ERROR proc macro panicked","highlight_start":1,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"message: unsupported character `'`'`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error: proc macro panicked\n  --> /Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-1.rs:10:1\n   |\nLL | invalid_punct!(); //~ ERROR proc macro panicked\n   | ^^^^^^^^^^^^^^^^^\n   |\n   = help: message: unsupported character `'`'`\n\n"}
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] thread '[ui] ui/proc-macro/invalid-punct-ident-1.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3469:9
[01:21:36] thread '[ui] ui/proc-macro/invalid-punct-ident-1.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3469:9
[01:21:36] 
[01:21:36] ---- [ui] ui/proc-macro/invalid-punct-ident-2.rs stdout ----
[01:21:36] diff of stderr:
[01:21:36] 
[01:21:36] + thread 'rustc' panicked at '`"*"` is not a valid identifier', src/libsyntax_ext/proc_macro_server.rs:341:13
[01:21:36] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] 1 error: proc macro panicked
[01:21:36] 3    |
[01:21:36] 
[01:21:36] 
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] Actual stderr saved to /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-2/invalid-punct-ident-2.stderr
[01:21:36] To update references, rerun the tests and pass the `--bless` flag
[01:21:36] To only update this specific test, also pass `--test-args proc-macro/invalid-punct-ident-2.rs`
[01:21:36] error: 1 errors occurred comparing output.
[01:21:36] status: exit code: 1
[01:21:36] status: exit code: 1
[01:21:36] command: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-2.rs" "-Zthreads=1" "--target=x86_64-apple-darwin" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-2/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "-L" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-2/auxiliary" "-A" "unused"
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] stderr:
[01:21:36] stderr:
[01:21:36] ------------------------------------------
[01:21:36] thread 'rustc' panicked at '`"*"` is not a valid identifier', src/libsyntax_ext/proc_macro_server.rs:341:13
[01:21:36] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] {"message":"proc macro panicked","code":null,"level":"error","spans":[{"file_name":"/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-2.rs","byte_start":285,"byte_end":302,"line_start":10,"line_end":10,"column_start":1,"column_end":18,"is_primary":true,"text":[{"text":"invalid_ident!(); //~ ERROR proc macro panicked","highlight_start":1,"highlight_end":18}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"message: `\"*\"` is not a valid identifier","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error: proc macro panicked\n  --> /Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-2.rs:10:1\n   |\nLL | invalid_ident!(); //~ ERROR proc macro panicked\n   | ^^^^^^^^^^^^^^^^^\n   |\n   = help: message: `\"*\"` is not a valid identifier\n\n"}
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] thread '[ui] ui/proc-macro/invalid-punct-ident-2.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3469:9
[01:21:36] thread '[ui] ui/proc-macro/invalid-punct-ident-2.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3469:9
[01:21:36] 
[01:21:36] ---- [ui] ui/proc-macro/invalid-punct-ident-3.rs stdout ----
[01:21:36] diff of stderr:
[01:21:36] 
[01:21:36] + thread 'rustc' panicked at '`self` cannot be a raw identifier', src/libsyntax_ext/proc_macro_server.rs:344:13
[01:21:36] + note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] 1 error: proc macro panicked
[01:21:36] 3    |
[01:21:36] 
[01:21:36] 
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] The actual stderr differed from the expected stderr.
[01:21:36] Actual stderr saved to /Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-3/invalid-punct-ident-3.stderr
[01:21:36] To update references, rerun the tests and pass the `--bless` flag
[01:21:36] To only update this specific test, also pass `--test-args proc-macro/invalid-punct-ident-3.rs`
[01:21:36] error: 1 errors occurred comparing output.
[01:21:36] status: exit code: 1
[01:21:36] status: exit code: 1
[01:21:36] command: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-3.rs" "-Zthreads=1" "--target=x86_64-apple-darwin" "--error-format" "json" "-Zui-testing" "-C" "prefer-dynamic" "-o" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-3/a" "-Crpath" "-O" "-Zunstable-options" "-Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "-L" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui/proc-macro/invalid-punct-ident-3/auxiliary" "-A" "unused"
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] stderr:
[01:21:36] stderr:
[01:21:36] ------------------------------------------
[01:21:36] thread 'rustc' panicked at '`self` cannot be a raw identifier', src/libsyntax_ext/proc_macro_server.rs:344:13
[01:21:36] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:21:36] {"message":"proc macro panicked","code":null,"level":"error","spans":[{"file_name":"/Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-3.rs","byte_start":285,"byte_end":306,"line_start":10,"line_end":10,"column_start":1,"column_end":22,"is_primary":true,"text":[{"text":"invalid_raw_ident!(); //~ ERROR proc macro panicked","highlight_start":1,"highlight_end":22}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"message: `self` cannot be a raw identifier","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error: proc macro panicked\n  --> /Users/travis/build/rust-lang/rust/src/test/ui/proc-macro/invalid-punct-ident-3.rs:10:1\n   |\nLL | invalid_raw_ident!(); //~ ERROR proc macro panicked\n   | ^^^^^^^^^^^^^^^^^^^^^\n   |\n   = help: message: `self` cannot be a raw identifier\n\n"}
[01:21:36] 
[01:21:36] ------------------------------------------
[01:21:36] 
[01:21:36] thread '[ui] ui/proc-macro/invalid-punct-ident-3.rs' panicked at 'explicit panic', src/tools/compiletest/src/runtest.rs:3469:9
---
[01:21:36] 
[01:21:36] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:517:22
[01:21:36] 
[01:21:36] 
[01:21:36] command did not execute successfully: "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage0-tools-bin/compiletest" "--compile-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib" "--run-lib-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/lib/rustlib/x86_64-apple-darwin/lib" "--rustc-path" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/stage2/bin/rustc" "--src-base" "/Users/travis/build/rust-lang/rust/src/test/ui" "--build-base" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/test/ui" "--stage-id" "stage2-x86_64-apple-darwin" "--mode" "ui" "--target" "x86_64-apple-darwin" "--host" "x86_64-apple-darwin" "--llvm-filecheck" "/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/llvm/build/bin/FileCheck" "--nodejs" "/Users/travis/.nvm/versions/node/v6.12.3/bin/node" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/Users/travis/build/rust-lang/rust/build/x86_64-apple-darwin/native/rust-test-helpers" "--docck-python" "/usr/local/bin/python2.7" "--lldb-python" "/usr/bin/python" "--lldb-version" "lldb-902.0.73.1\n  Swift-4.1\n" "--lldb-python-dir" "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python" "--llvm-version" "8.0.0-rust-1.35.0-dev\n" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:21:36] 
[01:21:36] 
[01:21:36] failed to run: /Users/travis/build/rust-lang/rust/build/bootstrap/debug/bootstrap test
[01:21:36] Build completed unsuccessfully in 0:09:07
[01:21:36] Build completed unsuccessfully in 0:09:07
[01:21:36] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:04193877
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Apr 16 01:05:17 GMT 2019
---
travis_fold:start:after_failure.2
travis_time:start:21c0a302
$ ls -lat $HOME/Library/Logs/DiagnosticReports/
total 0
drwx------+ 15 travis  staff  510 Jan 25  2018 ..
drwx------   2 travis  staff   68 Dec  6  2017 .
travis_fold:end:after_failure.2
travis_fold:start:after_failure.3
travis_time:start:2bd5402d
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
$ find $HOME/Library/Logs/DiagnosticReports -type f -name '*.crash' -not -name '*.stage2-*.crash' -not -name 'com.apple.CoreSimulator.CoreSimulatorService-*.crash' -exec printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" {} \; -exec head -750 {} \; -exec echo travis_fold":"end:crashlog \; || true
travis_time:end:2bd5402d:start=1555376724779730000,finish=1555376724812205000,duration=32475000
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:05f36c5b
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:145d6760
travis_time:start:145d6760
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:1c6ef64c
$ dmesg | grep -i kill
$ dmesg | grep -i kill
Unable to obtain kernel buffer: Operation not permitted
usage: sudo dmesg
travis_fold:end:after_failure.6

Done. Your build exited with 1.

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@RalfJung
Copy link
Member Author

Interesting, seems like it's not Windows-only after all but also affects macOS. I'll just make it normalize on all platforms then I guess.

@RalfJung
Copy link
Member Author

@bors r=alexcrichton

@bors
Copy link
Contributor

bors commented Apr 16, 2019

📌 Commit 28c4397 has been approved by alexcrichton

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 16, 2019
@bors
Copy link
Contributor

bors commented Apr 16, 2019

⌛ Testing commit 28c4397 with merge 3b27b4f...

bors added a commit that referenced this pull request Apr 16, 2019
…hton

compiletest normalization: preserve non-JSON lines such as ICEs

Currently, every non-JSON line from stderr gets normalized away when compiletest normalizes the output. In particular, ICEs get normalized to the empty output. That does not seem desirable, so this changes normalization to preserve non-JSON lines instead.

Also see Manishearth/compiletest-rs#169: because of that bug, Miri currently *looks* green in the toolstate, but some tests ICE. That same bug is likely no longer present in latest compiletest because the error code gets checked separately, but it still seems like a good idea to also make sure that ICEs are considered stderr output:
This change found an accidental user-visible `error!` in CTFE validation (fixed), and a non-deterministic panic when there are two `main` symbols (not fixed, no idea where this comes from). Both got missed before because non-JSON output got ignored.
@bors
Copy link
Contributor

bors commented Apr 16, 2019

☀️ Test successful - checks-travis, status-appveyor
Approved by: alexcrichton
Pushing 3b27b4f to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Apr 16, 2019
@bors bors merged commit 28c4397 into rust-lang:master Apr 16, 2019
@rust-highfive
Copy link
Collaborator

📣 Toolstate changed by #59769!

Tested on commit 3b27b4f.
Direct link to PR: #59769

💔 rls on windows: test-pass → test-fail (cc @nrc @Xanewok, @rust-lang/infra).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Apr 16, 2019
Tested on commit rust-lang/rust@3b27b4f.
Direct link to PR: <rust-lang/rust#59769>

💔 rls on windows: test-pass → test-fail (cc @nrc @Xanewok, @rust-lang/infra).
@RalfJung RalfJung deleted the compiletest-normalization branch June 10, 2019 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants