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

Allow cross-compiling doctests #60387

Merged
merged 5 commits into from
Sep 10, 2019
Merged

Allow cross-compiling doctests #60387

merged 5 commits into from
Sep 10, 2019

Conversation

Goirad
Copy link
Contributor

@Goirad Goirad commented Apr 29, 2019

This PR allows doctest to receive a --runtool argument, as well as possibly many --runtool-arg arguments, which are then used to run cross compiled doctests.
Also, functionality has been added to rustdoc to allow it to skip testing doctests on a per-target basis, in the same way that compiletest does it. For example, tagging the doctest with "ignore-sgx" disables testing on any targets that contain "sgx". A plain "ignore" still skips testing on all targets.

See here for the companion PR in the cargo project that extends functionality in Cargo so that it passes the appropriate parameters to rustdoc when cross compiling and testing doctests.

Part of #6460

@Goirad Goirad changed the title Test expansion Improvements for cross-compiling and cross-running tests Apr 29, 2019
@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:051df8ca:start=1556580223883284172,finish=1556580309914148978,duration=86030864806
$ 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
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:03:22] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:03:23] tidy error: /checkout/src/librustdoc/lib.rs:363: line longer than 100 chars
[00:03:24] some tidy checks failed
[00:03:24] 
[00:03:24] 
[00:03:24] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:03:24] 
[00:03:24] 
[00:03:24] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:03:24] Build completed unsuccessfully in 0:00:46
[00:03:24] Build completed unsuccessfully in 0:00:46
[00:03:24] make: *** [tidy] Error 1
[00:03:24] Makefile:67: recipe for target 'tidy' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0332c1d2
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Mon Apr 29 23:28:44 UTC 2019
---
travis_time:end:1742d564:start=1556580525064195317,finish=1556580525068786623,duration=4591306
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:220d36c7
$ 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:01fd3a34
travis_time:start:01fd3a34
$ 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:055ccee8
$ 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)

src/bootstrap/bootstrap.py Outdated Show resolved Hide resolved
src/librustdoc/html/markdown.rs Outdated Show resolved Hide resolved
@Centril
Copy link
Contributor

Centril commented Apr 30, 2019

r? @kennytm

@rust-highfive rust-highfive assigned kennytm and unassigned ollie27 Apr 30, 2019
@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:1486f39e:start=1556581849530958173,finish=1556581935702154831,duration=86171196658
$ 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
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
travis_time:start:test_assembly
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:22:50] 
[01:22:50] running 9 tests
[01:22:50] iiiiiiiii
[01:22:50] 
[01:22:50]  finished in 0.155
[01:22:50] travis_fold:end:test_assembly

---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:23:07] 
[01:23:07] running 121 tests
[01:23:32] .iiiii...i.....i..i...i..i.i.i..i.ii...i.....i..i....i..........iiii..........i...ii...i.......ii.i. 100/121
[01:23:37] i.i......iii.i.....ii
[01:23:37] 
[01:23:37]  finished in 30.550
[01:23:37] travis_fold:end:test_debuginfo

---
travis_time:start:test_rustdoc
Check compiletest suite=rustdoc mode=rustdoc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:27:45] 
[01:27:45] running 305 tests
[01:28:56] ............F...............i...F....FF............................................................. 100/305
[01:29:57] ................F................F..F..F...i........F.....................F.....F................F.. 200/305
[01:31:00] ...F.................................F.........................................FF................... 300/305
[01:31:03] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:31:03] .....
[01:31:03] failures:
[01:31:03] 
---
[01:31:03] ---- [rustdoc] rustdoc/doctest-manual-crate-name.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/doctest-manual-crate-name/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/doctest-manual-crate-name" "/checkout/src/test/rustdoc/doctest-manual-crate-name.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/edition-flag.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/edition-flag/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/edition-flag" "/checkout/src/test/rustdoc/edition-flag.rs" "--test" "-Z" "unstable-options" "--edition=2018"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-18199.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-18199/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-18199" "/checkout/src/test/rustdoc/issue-18199.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-23106.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23106/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23106" "/checkout/src/test/rustdoc/issue-23106.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-23744.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23744/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23744" "/checkout/src/test/rustdoc/issue-23744.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-25944.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-25944/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-25944" "/checkout/src/test/rustdoc/issue-25944.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-30252.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-30252/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-30252" "/checkout/src/test/rustdoc/issue-30252.rs" "--test" "--cfg" "feature=\"bar\""
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-38129.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-38129/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-38129" "/checkout/src/test/rustdoc/issue-38129.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-43153.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-43153/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-43153" "/checkout/src/test/rustdoc/issue-43153.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/issue-48377.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-48377/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-48377" "/checkout/src/test/rustdoc/issue-48377.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/process-termination.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/process-termination/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/process-termination" "/checkout/src/test/rustdoc/process-termination.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] ---- [rustdoc] rustdoc/test_option_check/bar.rs stdout ----
[01:31:03] 
[01:31:03] error: rustdoc failed!
[01:31:03] status: exit code: 1
[01:31:03] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/test_option_check/bar/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/test_option_check/bar" "/checkout/src/test/rustdoc/test_option_check/bar.rs" "--test"
[01:31:03] ------------------------------------------
[01:31:03] 
[01:31:03] ------------------------------------------
[01:31:03] stderr:
---
[01:31:03] test result: FAILED. 287 passed; 16 failed; 2 ignored; 0 measured; 0 filtered out
[01:31:03] 
[01:31:03] 
[01:31:03] 
[01:31:03] 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" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/rustdoc" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "rustdoc" "--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:31:03] 
[01:31:03] 
[01:31:03] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:31:03] Build completed unsuccessfully in 0:20:22
[01:31:03] Build completed unsuccessfully in 0:20:22
[01:31:03] make: *** [check] Error 1
[01:31:03] Makefile:48: recipe for target 'check' failed
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:2e5380e8
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Apr 30 01:23:28 UTC 2019
---
travis_time:end:02952ba6:start=1556587410721652229,finish=1556587410788724794,duration=67072565
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:060b781c
$ 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:0755277b
$ 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)

@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:15839499:start=1556595333876738337,finish=1556595419273925913,duration=85397187576
$ 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
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
travis_time:start:test_assembly
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:20:11] 
[01:20:11] running 9 tests
[01:20:11] iiiiiiiii
[01:20:11] 
[01:20:11]  finished in 0.154
[01:20:11] travis_fold:end:test_assembly

---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:20:27] 
[01:20:27] running 121 tests
[01:20:52] .iiiii...i.....i..i...i..i.i.i..i.ii...i.....i..i....i..........iiii..........i...ii...i.......ii.i. 100/121
[01:20:56] i.i......iii.i.....ii
[01:20:56] 
[01:20:56]  finished in 29.948
[01:20:56] travis_fold:end:test_debuginfo

---
travis_time:start:test_rustdoc
Check compiletest suite=rustdoc mode=rustdoc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:24:59] 
[01:24:59] running 305 tests
[01:26:09] ............F...............i...F.....FF............................................................ 100/305
[01:27:08] ................F................F...F.F...i.........F....................F.....F...............F... 200/305
[01:28:09] ...F.................................F.........................................FF................... 300/305
[01:28:12] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:28:12] .....
[01:28:12] failures:
[01:28:12] 
---
[01:28:12] ---- [rustdoc] rustdoc/doctest-manual-crate-name.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/doctest-manual-crate-name/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/doctest-manual-crate-name" "/checkout/src/test/rustdoc/doctest-manual-crate-name.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/edition-flag.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/edition-flag/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/edition-flag" "/checkout/src/test/rustdoc/edition-flag.rs" "--test" "-Z" "unstable-options" "--edition=2018"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-18199.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-18199/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-18199" "/checkout/src/test/rustdoc/issue-18199.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-23106.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23106/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23106" "/checkout/src/test/rustdoc/issue-23106.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-23744.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23744/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-23744" "/checkout/src/test/rustdoc/issue-23744.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-25944.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-25944/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-25944" "/checkout/src/test/rustdoc/issue-25944.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-30252.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-30252/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-30252" "/checkout/src/test/rustdoc/issue-30252.rs" "--test" "--cfg" "feature=\"bar\""
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-38129.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-38129/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-38129" "/checkout/src/test/rustdoc/issue-38129.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-43153.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-43153/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-43153" "/checkout/src/test/rustdoc/issue-43153.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/issue-48377.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-48377/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/issue-48377" "/checkout/src/test/rustdoc/issue-48377.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/process-termination.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/process-termination/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/process-termination" "/checkout/src/test/rustdoc/process-termination.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] ---- [rustdoc] rustdoc/test_option_check/bar.rs stdout ----
[01:28:12] 
[01:28:12] error: rustdoc failed!
[01:28:12] status: exit code: 1
[01:28:12] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/test_option_check/bar/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/test_option_check/bar" "/checkout/src/test/rustdoc/test_option_check/bar.rs" "--test"
[01:28:12] ------------------------------------------
[01:28:12] 
[01:28:12] ------------------------------------------
[01:28:12] stderr:
---
[01:28:12] test result: FAILED. 287 passed; 16 failed; 2 ignored; 0 measured; 0 filtered out
[01:28:12] 
[01:28:12] 
[01:28:12] 
[01:28:12] 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" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/rustdoc" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "rustdoc" "--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:28:12] 
[01:28:12] 
[01:28:12] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:28:12] Build completed unsuccessfully in 0:19:43
[01:28:12] Build completed unsuccessfully in 0:19:43
[01:28:12] Makefile:48: recipe for target 'check' failed
[01:28:12] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0dab7055
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Apr 30 05:05:21 UTC 2019
---
travis_time:end:0d88f700:start=1556600723557060129,finish=1556600723561944083,duration=4883954
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2afe235a
$ 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:2ccfbdad
travis_time:start:2ccfbdad
$ 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:30eeb2b2
$ 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)

@kennytm kennytm added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Apr 30, 2019
@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:1e6997b4:start=1556649926925201123,finish=1556650043983212622,duration=117058011499
$ 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
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
travis_time:start:test_assembly
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:20:56] 
[01:20:56] running 9 tests
[01:20:56] iiiiiiiii
[01:20:56] 
[01:20:56]  finished in 0.152
[01:20:56] travis_fold:end:test_assembly

---
travis_time:start:test_debuginfo
Check compiletest suite=debuginfo mode=debuginfo-both (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[01:21:12] 
[01:21:12] running 121 tests
[01:21:38] .iiiii...i.....i..i...i..i.i.i..i.ii...i.....i..i....i..........iiii..........i...ii...i.......ii.i. 100/121
[01:21:43] i.i......iii.i.....ii
[01:21:43] 
[01:21:43]  finished in 31.227
[01:21:43] travis_fold:end:test_debuginfo

---
[01:45:45] 
[01:45:45] running 25 tests
[01:45:58] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:517:22
[01:45:58] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:45:58] ............F............
[01:45:58] 
[01:45:58] ---- [ui] rustdoc-ui/failed-doctest-output.rs stdout ----
[01:45:58] diff of stdout:
[01:45:58] 
[01:45:58] 
[01:45:58] 15 error: aborting due to previous error
[01:45:58] 16 
[01:45:58] 17 For more information about this error, try `rustc --explain E0425`.
[01:45:58] - thread '$DIR/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:310:13
[01:45:58] + thread '$DIR/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:317:13
[01:45:58] 20 
[01:45:58] 20 
[01:45:58] 21 ---- $DIR/failed-doctest-output.rs - SomeStruct (line 11) stdout ----
[01:45:58] 
[01:45:58] 24 thread 'main' panicked at 'oh no', $DIR/failed-doctest-output.rs:3:1
[01:45:58] 26 
[01:45:58] - ', src/librustdoc/test.rs:332:17
[01:45:58] + ', src/librustdoc/test.rs:346:17
[01:45:58] 28 
[01:45:58] 28 
[01:45:58] 29 
[01:45:58] 30 failures:
[01:45:58] 
[01:45:58] 
[01:45:58] The actual stdout differed from the expected stdout.
[01:45:58] Actual stdout saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output/failed-doctest-output.stdout
[01:45:58] To update references, rerun the tests and pass the `--bless` flag
[01:45:58] To only update this specific test, also pass `--test-args failed-doctest-output.rs`
[01:45:58] error: 1 errors occurred comparing output.
[01:45:58] status: exit code: 101
[01:45:58] status: exit code: 101
[01:45:58] command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "/checkout/src/test/rustdoc-ui/failed-doctest-output.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output/a" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--test" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc-ui/failed-doctest-output/auxiliary"
[01:45:58] ------------------------------------------
[01:45:58] 
[01:45:58] running 2 tests
[01:45:58] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) ... FAILED
[01:45:58] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) ... FAILED
[01:45:58] test /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11) ... FAILED
[01:45:58] failures:
[01:45:58] 
[01:45:58] ---- /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17) stdout ----
[01:45:58] error[E0425]: cannot find value `no` in this scope
---
[01:45:58] For more information about this error, try `rustc --explain E0425`.
[01:45:58] thread '/checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17)' panicked at 'couldn't compile the test', src/librustdoc/test.rs:317:13
[01:45:58] note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
[01:45:58] 
[01:45:58] ---- /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11) stdout ----
[01:45:58] thread '/checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11)' panicked at 'test executable failed:
[01:45:58] 
[01:45:58] thread 'main' panicked at 'oh no', /checkout/src/test/rustdoc-ui/failed-doctest-output.rs:3:1
[01:45:58] 
[01:45:58] ', src/librustdoc/test.rs:346:17
[01:45:58] 
[01:45:58] 
[01:45:58] 
[01:45:58] failures:
[01:45:58]     /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - OtherStruct (line 17)
[01:45:58]     /checkout/src/test/rustdoc-ui/failed-doctest-output.rs - SomeStruct (line 11)
[01:45:58] test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out
[01:45:58] 
[01:45:58] 
[01:45:58] ------------------------------------------
---
[01:45:58] 
[01:45:51:45:58] 
[01:45:58] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:45:58] Build completed unsuccessfully in 0:36:50
[01:45:58] Makefile:48: recipe for target 'check' failed
[01:45:58] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:32677e6f
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Tue Apr 30 20:33:31 UTC 2019

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)

@Goirad Goirad force-pushed the test-expansion branch from 3363db6 to df5eb19 Compare May 8, 2019 16:32
@Goirad
Copy link
Contributor Author

Goirad commented May 14, 2019

Awaiting review, all checks pass now.

@jethrogb
Copy link
Contributor

compiletest does space-splitting on runtool, but rustdoc does not, currently. So if your runtool contains a space you'll get different behavior for rustdoc and compiletest.

@bors
Copy link
Contributor

bors commented May 22, 2019

☔ The latest upstream changes (presumably #61027) made this pull request unmergeable. Please resolve the merge conflicts.

@Goirad Goirad closed this Jun 5, 2019
@Goirad Goirad reopened this Jun 5, 2019
@Goirad Goirad changed the title Improvements for cross-compiling and cross-running tests Allow cross-compiling doctests Jun 5, 2019
@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:00ccd10c:start=1559775465663459616,finish=1559775553948126160,duration=88284666544
$ 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
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:04:09] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:04:10] tidy error: /checkout/src/librustdoc/lib.rs:367: line longer than 100 chars
[00:04:15] some tidy checks failed
[00:04:15] 
[00:04:15] 
[00:04:15] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:04:15] 
[00:04:15] 
[00:04:15] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:04:15] Build completed unsuccessfully in 0:01:13
---
travis_time:end:233b8d5c:start=1559775819182289176,finish=1559775819187597253,duration=5308077
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:10f5e280
$ 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:13ae8f84
travis_time:start:13ae8f84
$ 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:0df9d4ba
$ 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)

@Goirad
Copy link
Contributor Author

Goirad commented Jun 5, 2019

@kennytm I have restricted the scope of this PR to only adding runtool functionality to rustdoc, along with Cargo in the other PR.

Copy link
Member

@kennytm kennytm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are those ignore changes still in the scope of this PR? They're still in the diff.

src/librustdoc/lib.rs Outdated Show resolved Hide resolved
src/librustdoc/test.rs Outdated Show resolved Hide resolved
@Goirad
Copy link
Contributor Author

Goirad commented Jun 6, 2019

Yes ignore is still a part of this PR, since being able to ignore on a per-target basis is relevant to using the crosscompilation feature.

@kennytm
Copy link
Member

kennytm commented Jun 6, 2019

🤔 It's better to delegate the review to @rust-lang/rustdoc then, as it is changing the behavior of ```rust,ignore-foo.

@Goirad
Copy link
Contributor Author

Goirad commented Jun 6, 2019

Sorry, how would that behavior change?
Edit: I get it, yea it changes what would have previously done nothing ("ignore-foo") to do something.

@kennytm
Copy link
Member

kennytm commented Jun 6, 2019

@Goirad yeah that's what the "insta-stable" comment in #60387 (comment) is about.

@kennytm kennytm removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jun 6, 2019
@JohnCSimon JohnCSimon added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 17, 2019
@JohnCSimon
Copy link
Member

ping from triage -
@Goirad @ollie27 @QuietMisdreavus @GuillaumeGomez
This PR has a merge conflict, but as soon as it's resolved it's ready for review.
Thank you for your contributions!

@ollie27 @QuietMisdreavus @GuillaumeGomez Can I get some review please?

@JohnTitor
Copy link
Member

Ping from triage: @Goirad there is a conflict to resolve, and @ollie27 could you review this?

@bors
Copy link
Contributor

bors commented Aug 29, 2019

☔ The latest upstream changes (presumably #62855) made this pull request unmergeable. Please resolve the merge conflicts.

@GuillaumeGomez
Copy link
Member

Just to be sure: shouldn't it be done over #63827 considering they'll make doctests run outside of rustdoc?

@jethrogb
Copy link
Contributor

This PR has been open for months, if @ollie27 is not available for review, can the docs team appoint a different reviewer?

@ollie27
Copy link
Member

ollie27 commented Aug 31, 2019

Sorry for the delay.

As far as I'm concerned this feature and code looks good so r=me with a rebase.

This could do with some tests like run-make for these new features but that can be in a follow up PR.

We also need tracking issues for the new features.

@Goirad
Copy link
Contributor Author

Goirad commented Sep 6, 2019

@ollie27 I have opened a tracking issue here.

Thanks for the review!

@ollie27
Copy link
Member

ollie27 commented Sep 10, 2019

Thanks, lets get this in.

@bors r+

@bors
Copy link
Contributor

bors commented Sep 10, 2019

📌 Commit 4a2094c has been approved by ollie27

@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 Sep 10, 2019
@bors
Copy link
Contributor

bors commented Sep 10, 2019

⌛ Testing commit 4a2094c with merge 87b0c90...

bors added a commit that referenced this pull request Sep 10, 2019
Allow cross-compiling doctests

This PR allows doctest to receive a --runtool argument, as well as possibly many --runtool-arg arguments, which are then used to run cross compiled doctests.
Also, functionality has been added to rustdoc to allow it to skip testing doctests on a per-target basis, in the same way that compiletest does it. For example, tagging the doctest with "ignore-sgx" disables testing on any targets that contain "sgx". A plain "ignore" still skips testing on all targets.

See [here](rust-lang/cargo#6892) for the companion PR in the cargo project that extends functionality in Cargo so that it passes the appropriate parameters to rustdoc when cross compiling and testing doctests.

Part of [#6460](rust-lang/cargo#6460)
@bors
Copy link
Contributor

bors commented Sep 10, 2019

☀️ Test successful - checks-azure
Approved by: ollie27
Pushing 87b0c90 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 10, 2019
@bors bors merged commit 4a2094c into rust-lang:master Sep 10, 2019
bors added a commit to rust-lang/cargo that referenced this pull request Sep 18, 2019
Added ability to crosscompile doctests

This commit adds the ability to cross-compile and run doctests.
Like before cargo checks if target == host, the difference is that if there is a runtool defined in config.toml, it passes the information forward to rustdoc so that it can run the doctests with that tool. If no tool is defined and the target != host, cargo instead displays a message that doctests will not be compiled because of the missing runtool.

See [here](rust-lang/rust#60387) for the companion PR in the rust project that modifies rustdoc to accept the relevant options as well as allow ignoring doctests on a per target level.
Partially resolves [#6460](#6460)

See [here](#7040) for the tracking issue.
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.