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

panic=abort support in libtest #64158

Merged
merged 4 commits into from Sep 29, 2019
Merged

Conversation

tmandry
Copy link
Member

@tmandry tmandry commented Sep 4, 2019

Add experimental support for tests compiled with panic=abort. Enabled with -Z panic_abort_tests.

r? @alexcrichton
cc @cramertj

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Sep 4, 2019
src/libtest/lib.rs Outdated Show resolved Hide resolved
Copy link
Member

@alexcrichton alexcrichton left a comment

Choose a reason for hiding this comment

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

Looking good!

src/libtest/Cargo.toml Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (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.
2019-09-12T00:54:56.9694562Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-12T00:54:56.9892971Z ##[command]git config gc.auto 0
2019-09-12T00:54:56.9965017Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-12T00:54:57.0034219Z ##[command]git config --get-all http.proxy
2019-09-12T00:54:57.0187519Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-12T01:02:12.4164953Z    Compiling serde_json v1.0.40
2019-09-12T01:02:14.3210747Z    Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
2019-09-12T01:02:25.5507947Z     Finished release [optimized] target(s) in 1m 33s
2019-09-12T01:02:25.5597838Z tidy check
2019-09-12T01:02:26.0007768Z tidy error: /checkout/src/libtest/lib.rs:1150: TODO is deprecated; use FIXME
2019-09-12T01:02:26.0010691Z tidy error: /checkout/src/libtest/lib.rs:1493: TODO is deprecated; use FIXME
2019-09-12T01:02:27.7023641Z some tidy checks failed
2019-09-12T01:02:27.7029497Z 
2019-09-12T01:02:27.7029497Z 
2019-09-12T01:02:27.7030820Z 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"
2019-09-12T01:02:27.7030971Z 
2019-09-12T01:02:27.7031022Z 
2019-09-12T01:02:27.7044514Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
2019-09-12T01:02:27.7044596Z Build completed unsuccessfully in 0:01:36
2019-09-12T01:02:27.7044596Z Build completed unsuccessfully in 0:01:36
2019-09-12T01:02:27.7095787Z == clock drift check ==
2019-09-12T01:02:27.7112631Z   local time: Thu Sep 12 01:02:27 UTC 2019
2019-09-12T01:02:27.7975365Z   network time: Thu, 12 Sep 2019 01:02:27 GMT
2019-09-12T01:02:27.7975562Z == end clock drift check ==
2019-09-12T01:02:29.1052657Z ##[error]Bash exited with code '1'.
2019-09-12T01:02:29.1085600Z ##[section]Starting: Checkout
2019-09-12T01:02:29.1087186Z ==============================================================================
2019-09-12T01:02:29.1087231Z Task         : Get sources
2019-09-12T01:02:29.1087270Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
}
}

impl TryFrom<i32> for TestResult {
Copy link
Member

Choose a reason for hiding this comment

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

Would it be possible to aovid having these TryFrom impls and instead just use 0 as success, 101 for panic, and everything else as "unconditional failure"?

Copy link
Member Author

@tmandry tmandry Sep 14, 2019

Choose a reason for hiding this comment

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

We do need to translate panic into success for #[should_panic] tests in the secondary process, so we can compare the expected failure message if there is one. But yes, I can simplify it down to two codes and remove the impls. It means shuffling around some of the logic in calc_result which is why I didn't do it originally.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-09-12T23:22:37.5426510Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-12T23:22:37.5667876Z ##[command]git config gc.auto 0
2019-09-12T23:22:38.1760408Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-12T23:22:38.1766873Z ##[command]git config --get-all http.proxy
2019-09-12T23:22:38.1771161Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-12T23:29:34.8745065Z    Compiling serde_json v1.0.40
2019-09-12T23:29:36.4584743Z    Compiling tidy v0.1.0 (/checkout/src/tools/tidy)
2019-09-12T23:29:46.1863717Z     Finished release [optimized] target(s) in 1m 20s
2019-09-12T23:29:46.1940663Z tidy check
2019-09-12T23:29:46.4781621Z tidy error: /checkout/src/libtest/lib.rs:1507: TODO is deprecated; use FIXME
2019-09-12T23:29:47.8970038Z some tidy checks failed
2019-09-12T23:29:47.8970203Z 
2019-09-12T23:29:47.8970203Z 
2019-09-12T23:29:47.8972115Z 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"
2019-09-12T23:29:47.8972245Z 
2019-09-12T23:29:47.8972292Z 
2019-09-12T23:29:47.8979805Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
2019-09-12T23:29:47.8980064Z Build completed unsuccessfully in 0:01:23
2019-09-12T23:29:47.8980064Z Build completed unsuccessfully in 0:01:23
2019-09-12T23:29:47.9027934Z == clock drift check ==
2019-09-12T23:29:47.9045956Z   local time: Thu Sep 12 23:29:47 UTC 2019
2019-09-12T23:29:47.9886575Z   network time: Thu, 12 Sep 2019 23:29:47 GMT
2019-09-12T23:29:47.9886669Z == end clock drift check ==
2019-09-12T23:29:49.3256280Z ##[error]Bash exited with code '1'.
2019-09-12T23:29:49.3298921Z ##[section]Starting: Checkout
2019-09-12T23:29:49.3300462Z ==============================================================================
2019-09-12T23:29:49.3300508Z Task         : Get sources
2019-09-12T23:29:49.3300543Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 (pretty log, 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.
2019-09-13T02:07:11.6624965Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-13T02:07:11.6826074Z ##[command]git config gc.auto 0
2019-09-13T02:07:11.6904780Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-13T02:07:11.6968519Z ##[command]git config --get-all http.proxy
2019-09-13T02:07:11.7127070Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-13T03:10:54.3787042Z .................................................................................................... 1500/9012
2019-09-13T03:11:00.5225599Z .................................................................................................... 1600/9012
2019-09-13T03:11:13.7949396Z ..........................................................i...............i......................... 1700/9012
2019-09-13T03:11:21.9005711Z .................................................................................................... 1800/9012
2019-09-13T03:11:37.1725739Z .................................................iiiii.............................................. 1900/9012
2019-09-13T03:11:48.8350496Z .................................................................................................... 2100/9012
2019-09-13T03:11:51.6011440Z .................................................................................................... 2200/9012
2019-09-13T03:11:55.3425673Z .................................................................................................... 2300/9012
2019-09-13T03:12:03.7753654Z .................................................................................................... 2400/9012
---
2019-09-13T03:15:10.0247694Z ....................................i...............i............................................... 4700/9012
2019-09-13T03:15:21.9810798Z .................................................................................................... 4800/9012
2019-09-13T03:15:28.9652514Z .................................................................................................... 4900/9012
2019-09-13T03:15:40.0231337Z .................................................................................................... 5000/9012
2019-09-13T03:15:46.4348546Z ...................ii.ii............................................................................ 5100/9012
2019-09-13T03:15:57.4005670Z .................................................................................................... 5300/9012
2019-09-13T03:16:07.9041393Z ...................................................................................i................ 5400/9012
2019-09-13T03:16:16.4901211Z .................................................................................................... 5500/9012
2019-09-13T03:16:22.3414359Z .................................................................................................... 5600/9012
2019-09-13T03:16:22.3414359Z .................................................................................................... 5600/9012
2019-09-13T03:16:33.0971823Z ..............................................................................ii...i..ii...........i 5700/9012
2019-09-13T03:16:59.3570903Z .................................................................................................... 5900/9012
2019-09-13T03:17:10.0146868Z .................................................................................................... 6000/9012
2019-09-13T03:17:10.0146868Z .................................................................................................... 6000/9012
2019-09-13T03:17:19.4023368Z ................................................................................i..ii............... 6100/9012
2019-09-13T03:17:50.5691866Z .................................................................................................... 6300/9012
2019-09-13T03:17:53.1066347Z .......................................i............................................................ 6400/9012
2019-09-13T03:17:55.2802882Z .................................................................................................... 6500/9012
2019-09-13T03:17:57.9807469Z ...........i........................................................................................ 6600/9012
---
2019-09-13T03:22:41.0512909Z  finished in 5.235
2019-09-13T03:22:41.0707334Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:22:41.6972257Z 
2019-09-13T03:22:41.6978444Z running 150 tests
2019-09-13T03:22:44.6088146Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-09-13T03:22:46.7009550Z ..iiii..............i.........iii.i.......ii......
2019-09-13T03:22:46.7010414Z 
2019-09-13T03:22:46.7017023Z  finished in 5.631
2019-09-13T03:22:46.7218555Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:22:46.8809686Z 
---
2019-09-13T03:22:49.0203107Z  finished in 2.298
2019-09-13T03:22:49.0400341Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:22:49.7007937Z 
2019-09-13T03:22:49.7008140Z running 9 tests
2019-09-13T03:22:49.7009397Z iiiiiiiii
2019-09-13T03:22:49.7009811Z 
2019-09-13T03:22:49.7009855Z  finished in 0.161
2019-09-13T03:22:49.7010445Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:22:49.7010501Z 
---
2019-09-13T03:23:08.3285176Z  finished in 19.108
2019-09-13T03:23:08.3511802Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:23:08.5143790Z 
2019-09-13T03:23:08.5144098Z running 123 tests
2019-09-13T03:23:33.9648147Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-09-13T03:23:38.8991482Z i.i.i......iii.i.....ii
2019-09-13T03:23:38.8993105Z 
2019-09-13T03:23:38.8999183Z  finished in 30.549
2019-09-13T03:23:38.9008309Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:23:38.9009266Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-09-13T03:38:14.6556387Z 
2019-09-13T03:38:14.6557231Z    Doc-tests core
2019-09-13T03:38:20.0714759Z 
2019-09-13T03:38:20.0715563Z running 2400 tests
2019-09-13T03:38:31.9961505Z ......iiiii......................................................................................... 100/2400
2019-09-13T03:38:43.4631197Z ...........................................................................ii....................... 200/2400
2019-09-13T03:38:56.2955140Z .................................................................................................i.. 300/2400
2019-09-13T03:39:11.4375802Z .................................................................................................... 400/2400
2019-09-13T03:39:22.5669074Z ............................................i..i.................iiii............................... 500/2400
2019-09-13T03:39:44.2271062Z .................................................................................................... 700/2400
2019-09-13T03:39:55.4196371Z .................................................................................................... 800/2400
2019-09-13T03:40:06.4828398Z .................................................................................................... 900/2400
2019-09-13T03:40:17.9390757Z .................................................................................................... 1000/2400
---
2019-09-13T03:45:17.0560394Z .................................................................................................... 100/763
2019-09-13T03:45:17.5142333Z .................................................................................................... 200/763
2019-09-13T03:45:17.6010700Z .....................................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/buffered.rs:1403:17
2019-09-13T03:45:17.6144359Z ............................................... 300/763
2019-09-13T03:45:17.6158508Z .thread '..<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:854:13
2019-09-13T03:45:19.7214716Z .................................................................................................... 500/763
2019-09-13T03:45:19.7567393Z ....................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T03:45:19.7602526Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T03:45:19.7617029Z thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1165:5
2019-09-13T03:45:19.7617029Z thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1165:5
2019-09-13T03:45:19.7642966Z .......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T03:45:20.0463734Z ..........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T03:45:20.0502504Z .....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError.', src/libcore/result.rs:1165.:5
2019-09-13T03:45:20.0519082Z ....thread '<unnamed>' panicked at '.called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T03:45:22.1010460Z ......................thread '<unnamed>' panicked at 'explicit panic', .....src/libstd/sync/mutex.rs:629:13
2019-09-13T03:45:22.1014901Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:584:13
2019-09-13T03:45:22.1015346Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:561:13
2019-09-13T03:45:22.1017859Z thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:689:13
---
2019-09-13T03:45:31.5641741Z 
2019-09-13T03:45:31.5649674Z running 991 tests
2019-09-13T03:45:54.2344153Z i................................................................................................... 100/991
2019-09-13T03:46:06.5900360Z .................................................................................................... 200/991
2019-09-13T03:46:15.4259772Z .................iii......i......i...i......i....................................................... 300/991
2019-09-13T03:46:21.8948804Z .................................................................................................... 400/991
2019-09-13T03:46:30.3715374Z ..................................i..i.................................ii........................... 500/991
2019-09-13T03:46:46.3996123Z .................................................................................................... 700/991
2019-09-13T03:46:46.3996123Z .................................................................................................... 700/991
2019-09-13T03:46:55.0386653Z .................iiii............................................................................... 800/991
2019-09-13T03:47:11.0877454Z .................................................................................................... 900/991
2019-09-13T03:47:19.2120375Z .......................................iiii................................................
2019-09-13T03:47:19.2121508Z 
2019-09-13T03:47:19.2176398Z  finished in 252.882
2019-09-13T03:47:19.2193975Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T03:47:19.5431144Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-09-13T03:47:22.9074224Z    Compiling test v0.0.0 (/checkout/src/libtest)
2019-09-13T03:47:22.9984290Z error[E0432]: unresolved import `crate::test::RunStrategy`
2019-09-13T03:47:22.9997591Z  --> src/libtest/tests.rs:4:88
2019-09-13T03:47:23.0006008Z   |
2019-09-13T03:47:23.0016312Z 4 |     filter_tests, parse_opts, run_test, DynTestFn, DynTestName, MetricMap, RunIgnored, RunStrategy,
2019-09-13T03:47:23.0034369Z   |                                                                                        ^^^^^^^^^^^ no `RunStrategy` in `test`
2019-09-13T03:47:23.0034496Z 
2019-09-13T03:47:23.3502837Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.3503265Z     --> src/libtest/tests.rs:69:45
2019-09-13T03:47:23.3504138Z      |
2019-09-13T03:47:23.3506659Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.3508300Z      |                                             |
2019-09-13T03:47:23.3509379Z      |                                             call expression requires function
2019-09-13T03:47:23.3510135Z      | 
2019-09-13T03:47:23.3510785Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.3510785Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.3511417Z      |
2019-09-13T03:47:23.3512090Z 1099 |     InProcess,
2019-09-13T03:47:23.3512805Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.3513525Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.3514120Z      |
2019-09-13T03:47:23.3514883Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.3516202Z 
2019-09-13T03:47:23.3909453Z error[E0308]: mismatched types
2019-09-13T03:47:23.3909882Z   --> src/libtest/tests.rs:69:73
2019-09-13T03:47:23.3910200Z    |
2019-09-13T03:47:23.3910200Z    |
2019-09-13T03:47:23.3910606Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.3911105Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.3911412Z    |
2019-09-13T03:47:23.3911812Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.3912139Z               found type `Concurrent`
2019-09-13T03:47:23.4058405Z error[E0308]: mismatched types
2019-09-13T03:47:23.4059168Z   --> src/libtest/tests.rs:69:89
2019-09-13T03:47:23.4059458Z    |
2019-09-13T03:47:23.4059458Z    |
2019-09-13T03:47:23.4059847Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4064704Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.4065402Z    = note: expected type `Concurrent`
2019-09-13T03:47:23.4065707Z               found type `bool`
2019-09-13T03:47:23.4065752Z 
2019-09-13T03:47:23.4065752Z 
2019-09-13T03:47:23.4081763Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.4082395Z     --> src/libtest/tests.rs:87:45
2019-09-13T03:47:23.4082668Z      |
2019-09-13T03:47:23.4083081Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4083872Z      |                                             |
2019-09-13T03:47:23.4084255Z      |                                             call expression requires function
2019-09-13T03:47:23.4084522Z      | 
2019-09-13T03:47:23.4084846Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.4084846Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.4085107Z      |
2019-09-13T03:47:23.4085411Z 1099 |     InProcess,
2019-09-13T03:47:23.4085805Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.4086169Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.4086431Z      |
2019-09-13T03:47:23.4086950Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.4087430Z 
2019-09-13T03:47:23.4263888Z error[E0308]: mismatched types
2019-09-13T03:47:23.4264253Z   --> src/libtest/tests.rs:87:73
2019-09-13T03:47:23.4264522Z    |
2019-09-13T03:47:23.4264522Z    |
2019-09-13T03:47:23.4264927Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4265422Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.4265737Z    |
2019-09-13T03:47:23.4266136Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.4266447Z               found type `Concurrent`
2019-09-13T03:47:23.4440715Z error[E0308]: mismatched types
2019-09-13T03:47:23.4441094Z   --> src/libtest/tests.rs:87:89
2019-09-13T03:47:23.4441391Z    |
2019-09-13T03:47:23.4441391Z    |
2019-09-13T03:47:23.4441784Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4442273Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.4442907Z    = note: expected type `Concurrent`
2019-09-13T03:47:23.4443501Z               found type `bool`
2019-09-13T03:47:23.4443545Z 
2019-09-13T03:47:23.4443545Z 
2019-09-13T03:47:23.4452179Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T03:47:23.4452555Z     --> src/libtest/tests.rs:105:45
2019-09-13T03:47:23.4452816Z      |
2019-09-13T03:47:23.4453208Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T03:47:23.4454007Z      |                                             |
2019-09-13T03:47:23.4454400Z      |                                             call expression requires function
2019-09-13T03:47:23.4454679Z      | 
2019-09-13T03:47:23.4454973Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.4454973Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.4455246Z      |
2019-09-13T03:47:23.4455557Z 1104 |     SpawnPrimary,
2019-09-13T03:47:23.4455944Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T03:47:23.4456511Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.4456831Z      |
2019-09-13T03:47:23.4457213Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, false);
2019-09-13T03:47:23.4457663Z 
2019-09-13T03:47:23.4600430Z error[E0308]: mismatched types
2019-09-13T03:47:23.4600809Z    --> src/libtest/tests.rs:105:76
2019-09-13T03:47:23.4601069Z     |
2019-09-13T03:47:23.4601069Z     |
2019-09-13T03:47:23.4601458Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T03:47:23.4601987Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.4602267Z     |
2019-09-13T03:47:23.4602686Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.4602988Z                found type `Concurrent`
2019-09-13T03:47:23.4753051Z error[E0308]: mismatched types
2019-09-13T03:47:23.4753405Z    --> src/libtest/tests.rs:105:92
2019-09-13T03:47:23.4753672Z     |
2019-09-13T03:47:23.4753672Z     |
2019-09-13T03:47:23.4754108Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T03:47:23.4754586Z     |                                                                                            ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.4755489Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.4755778Z                found type `bool`
2019-09-13T03:47:23.4755839Z 
2019-09-13T03:47:23.4755839Z 
2019-09-13T03:47:23.4767254Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.4767597Z     --> src/libtest/tests.rs:125:45
2019-09-13T03:47:23.4767895Z      |
2019-09-13T03:47:23.4768302Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4769729Z      |                                             |
2019-09-13T03:47:23.4770111Z      |                                             call expression requires function
2019-09-13T03:47:23.4770394Z      | 
2019-09-13T03:47:23.4770691Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.4770691Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.4770947Z      |
2019-09-13T03:47:23.4771266Z 1099 |     InProcess,
2019-09-13T03:47:23.4771835Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.4772253Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.4772549Z      |
2019-09-13T03:47:23.4772929Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.4773356Z 
2019-09-13T03:47:23.4930387Z error[E0308]: mismatched types
2019-09-13T03:47:23.4930752Z    --> src/libtest/tests.rs:125:73
2019-09-13T03:47:23.4931053Z     |
2019-09-13T03:47:23.4931053Z     |
2019-09-13T03:47:23.4931459Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.4931953Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.4932263Z     |
2019-09-13T03:47:23.4932656Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.4932977Z                found type `Concurrent`
2019-09-13T03:47:23.5073154Z error[E0308]: mismatched types
2019-09-13T03:47:23.5073529Z    --> src/libtest/tests.rs:125:89
2019-09-13T03:47:23.5073792Z     |
2019-09-13T03:47:23.5073792Z     |
2019-09-13T03:47:23.5074195Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5074689Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.5075590Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.5075884Z                found type `bool`
2019-09-13T03:47:23.5075926Z 
2019-09-13T03:47:23.5075926Z 
2019-09-13T03:47:23.5090450Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T03:47:23.5090798Z     --> src/libtest/tests.rs:145:45
2019-09-13T03:47:23.5091073Z      |
2019-09-13T03:47:23.5091483Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.5092266Z      |                                             |
2019-09-13T03:47:23.5092641Z      |                                             call expression requires function
2019-09-13T03:47:23.5092903Z      | 
2019-09-13T03:47:23.5093212Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.5093212Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.5093468Z      |
2019-09-13T03:47:23.5093968Z 1104 |     SpawnPrimary,
2019-09-13T03:47:23.5094436Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T03:47:23.5094811Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.5095071Z      |
2019-09-13T03:47:23.5095467Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-13T03:47:23.5095882Z 
2019-09-13T03:47:23.5239527Z error[E0308]: mismatched types
2019-09-13T03:47:23.5239890Z    --> src/libtest/tests.rs:145:76
2019-09-13T03:47:23.5240156Z     |
2019-09-13T03:47:23.5240156Z     |
2019-09-13T03:47:23.5240566Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.5241072Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.5241367Z     |
2019-09-13T03:47:23.5241759Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.5242062Z                found type `Concurrent`
2019-09-13T03:47:23.5384351Z error[E0308]: mismatched types
2019-09-13T03:47:23.5384703Z    --> src/libtest/tests.rs:145:92
2019-09-13T03:47:23.5384993Z     |
2019-09-13T03:47:23.5384993Z     |
2019-09-13T03:47:23.5385386Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.5386109Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.5386751Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.5387060Z                found type `bool`
2019-09-13T03:47:23.5387103Z 
2019-09-13T03:47:23.5387103Z 
2019-09-13T03:47:23.5407025Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.5407398Z     --> src/libtest/tests.rs:165:45
2019-09-13T03:47:23.5407664Z      |
2019-09-13T03:47:23.5408067Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5409406Z      |                                             |
2019-09-13T03:47:23.5409832Z      |                                             call expression requires function
2019-09-13T03:47:23.5410102Z      | 
2019-09-13T03:47:23.5410604Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.5410604Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.5410952Z      |
2019-09-13T03:47:23.5411260Z 1099 |     InProcess,
2019-09-13T03:47:23.5411651Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.5412019Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.5412282Z      |
2019-09-13T03:47:23.5412661Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.5413100Z 
2019-09-13T03:47:23.5555403Z error[E0308]: mismatched types
2019-09-13T03:47:23.5555784Z    --> src/libtest/tests.rs:165:73
2019-09-13T03:47:23.5556070Z     |
2019-09-13T03:47:23.5556070Z     |
2019-09-13T03:47:23.5556454Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5556956Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.5557231Z     |
2019-09-13T03:47:23.5557635Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.5557946Z                found type `Concurrent`
2019-09-13T03:47:23.5702087Z error[E0308]: mismatched types
2019-09-13T03:47:23.5702446Z    --> src/libtest/tests.rs:165:89
2019-09-13T03:47:23.5702997Z     |
2019-09-13T03:47:23.5702997Z     |
2019-09-13T03:47:23.5703411Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5703882Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.5704530Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.5704824Z                found type `bool`
2019-09-13T03:47:23.5704868Z 
2019-09-13T03:47:23.5704868Z 
2019-09-13T03:47:23.5714010Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.5714374Z     --> src/libtest/tests.rs:187:45
2019-09-13T03:47:23.5714663Z      |
2019-09-13T03:47:23.5715057Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5715832Z      |                                             |
2019-09-13T03:47:23.5716384Z      |                                             call expression requires function
2019-09-13T03:47:23.5716729Z      | 
2019-09-13T03:47:23.5717027Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.5717027Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.5717295Z      |
2019-09-13T03:47:23.5717596Z 1099 |     InProcess,
2019-09-13T03:47:23.5717991Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.5718342Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.5718616Z      |
2019-09-13T03:47:23.5719348Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.5719801Z 
2019-09-13T03:47:23.5863219Z error[E0308]: mismatched types
2019-09-13T03:47:23.5863587Z    --> src/libtest/tests.rs:187:73
2019-09-13T03:47:23.5863875Z     |
2019-09-13T03:47:23.5863875Z     |
2019-09-13T03:47:23.5864266Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.5864754Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.5865050Z     |
2019-09-13T03:47:23.5865449Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.5865770Z                found type `Concurrent`
2019-09-13T03:47:23.6042614Z error[E0308]: mismatched types
2019-09-13T03:47:23.6042998Z    --> src/libtest/tests.rs:187:89
2019-09-13T03:47:23.6043265Z     |
2019-09-13T03:47:23.6043265Z     |
2019-09-13T03:47:23.6043654Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.6044140Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.6044771Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.6046432Z                found type `bool`
2019-09-13T03:47:23.6046517Z 
2019-09-13T03:47:23.6046517Z 
2019-09-13T03:47:23.6069453Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T03:47:23.6069820Z     --> src/libtest/tests.rs:205:45
2019-09-13T03:47:23.6070085Z      |
2019-09-13T03:47:23.6070493Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.6071462Z      |                                             |
2019-09-13T03:47:23.6071991Z      |                                             call expression requires function
2019-09-13T03:47:23.6072274Z      | 
2019-09-13T03:47:23.6072568Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.6072568Z     ::: src/libtest/lib.rs:1099:5
2019-09-13T03:47:23.6072849Z      |
2019-09-13T03:47:23.6073154Z 1099 |     InProcess,
2019-09-13T03:47:23.6073534Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T03:47:23.6073990Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.6074252Z      |
2019-09-13T03:47:23.6074662Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T03:47:23.6075092Z 
2019-09-13T03:47:23.6222302Z error[E0308]: mismatched types
2019-09-13T03:47:23.6222765Z    --> src/libtest/tests.rs:205:73
2019-09-13T03:47:23.6223028Z     |
2019-09-13T03:47:23.6223028Z     |
2019-09-13T03:47:23.6223439Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.6223948Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.6224228Z     |
2019-09-13T03:47:23.6224640Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.6225190Z                found type `Concurrent`
2019-09-13T03:47:23.6364966Z error[E0308]: mismatched types
2019-09-13T03:47:23.6365313Z    --> src/libtest/tests.rs:205:89
2019-09-13T03:47:23.6365604Z     |
2019-09-13T03:47:23.6365604Z     |
2019-09-13T03:47:23.6365997Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T03:47:23.6366481Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.6367119Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.6367439Z                found type `bool`
2019-09-13T03:47:23.6367483Z 
2019-09-13T03:47:23.6367483Z 
2019-09-13T03:47:23.6379013Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T03:47:23.6379388Z     --> src/libtest/tests.rs:223:45
2019-09-13T03:47:23.6379650Z      |
2019-09-13T03:47:23.6380041Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.6381061Z      |                                             |
2019-09-13T03:47:23.6381448Z      |                                             call expression requires function
2019-09-13T03:47:23.6381737Z      | 
2019-09-13T03:47:23.6382029Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.6382029Z     ::: src/libtest/lib.rs:1104:5
2019-09-13T03:47:23.6382284Z      |
2019-09-13T03:47:23.6382612Z 1104 |     SpawnPrimary,
2019-09-13T03:47:23.6382995Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T03:47:23.6383376Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T03:47:23.6383642Z      |
2019-09-13T03:47:23.6384023Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-13T03:47:23.6384462Z 
2019-09-13T03:47:23.6535121Z error[E0308]: mismatched types
2019-09-13T03:47:23.6535493Z    --> src/libtest/tests.rs:223:76
2019-09-13T03:47:23.6535759Z     |
2019-09-13T03:47:23.6535759Z     |
2019-09-13T03:47:23.6536166Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.6536681Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T03:47:23.6537196Z     |
2019-09-13T03:47:23.6537610Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.6537913Z                found type `Concurrent`
2019-09-13T03:47:23.6680899Z error[E0308]: mismatched types
2019-09-13T03:47:23.6681242Z    --> src/libtest/tests.rs:223:92
2019-09-13T03:47:23.6681502Z     |
2019-09-13T03:47:23.6681502Z     |
2019-09-13T03:47:23.6681925Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T03:47:23.6682402Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-13T03:47:23.6683051Z     = note: expected type `Concurrent`
2019-09-13T03:47:23.6683340Z                found type `bool`
2019-09-13T03:47:23.6683382Z 
2019-09-13T03:47:23.7252951Z error[E0308]: mismatched types
2019-09-13T03:47:23.7252951Z error[E0308]: mismatched types
2019-09-13T03:47:23.7253354Z    --> src/libtest/tests.rs:519:29
2019-09-13T03:47:23.7253626Z     |
2019-09-13T03:47:23.7254190Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.7254695Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-13T03:47:23.7255334Z     = note: expected type `&TestOpts`
2019-09-13T03:47:23.7255621Z                found type `TestDesc`
2019-09-13T03:47:23.7255661Z 
2019-09-13T03:47:23.7438147Z error[E0308]: mismatched types
2019-09-13T03:47:23.7438147Z error[E0308]: mismatched types
2019-09-13T03:47:23.7438497Z    --> src/libtest/tests.rs:519:35
2019-09-13T03:47:23.7438739Z     |
2019-09-13T03:47:23.7439399Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.7439830Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-13T03:47:23.7440411Z     = note: expected type `TestDesc`
2019-09-13T03:47:23.7440683Z                found type `std::sync::mpsc::Sender<_>`
2019-09-13T03:47:23.7440722Z 
2019-09-13T03:47:23.7585081Z error[E0308]: mismatched types
2019-09-13T03:47:23.7585081Z error[E0308]: mismatched types
2019-09-13T03:47:23.7585396Z    --> src/libtest/tests.rs:519:39
2019-09-13T03:47:23.7585658Z     |
2019-09-13T03:47:23.7585963Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.7586367Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-13T03:47:23.7586643Z     |
2019-09-13T03:47:23.7586992Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.7587543Z 
2019-09-13T03:47:23.7750618Z error[E0308]: mismatched types
2019-09-13T03:47:23.7750925Z    --> src/libtest/tests.rs:538:29
2019-09-13T03:47:23.7751191Z     |
2019-09-13T03:47:23.7751191Z     |
2019-09-13T03:47:23.7751494Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.7751886Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-13T03:47:23.7752422Z     = note: expected type `&TestOpts`
2019-09-13T03:47:23.7752707Z                found type `TestDesc`
2019-09-13T03:47:23.7752743Z 
2019-09-13T03:47:23.7917737Z error[E0308]: mismatched types
2019-09-13T03:47:23.7917737Z error[E0308]: mismatched types
2019-09-13T03:47:23.7918044Z    --> src/libtest/tests.rs:538:35
2019-09-13T03:47:23.7918307Z     |
2019-09-13T03:47:23.7918610Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.7919512Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-13T03:47:23.7920122Z     = note: expected type `TestDesc`
2019-09-13T03:47:23.7920430Z                found type `std::sync::mpsc::Sender<_>`
2019-09-13T03:47:23.7920469Z 
2019-09-13T03:47:23.8067661Z error[E0308]: mismatched types
2019-09-13T03:47:23.8067661Z error[E0308]: mismatched types
2019-09-13T03:47:23.8067974Z    --> src/libtest/tests.rs:538:39
2019-09-13T03:47:23.8068241Z     |
2019-09-13T03:47:23.8068547Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T03:47:23.8069219Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-13T03:47:23.8069537Z     |
2019-09-13T03:47:23.8069889Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T03:47:23.8070214Z 
2019-09-13T03:47:23.9521613Z error: aborting due to 34 previous errors
2019-09-13T03:47:23.9521730Z 
2019-09-13T03:47:23.9522118Z Some errors have detailed explanations: E0308, E0432, E0618.
---
2019-09-13T03:47:23.9787856Z == clock drift check ==
2019-09-13T03:47:23.9806965Z   local time: Fri Sep 13 03:47:23 UTC 2019
2019-09-13T03:47:24.0684064Z   network time: Fri, 13 Sep 2019 03:47:24 GMT
2019-09-13T03:47:24.0684445Z == end clock drift check ==
2019-09-13T03:47:24.6504976Z ##[error]Bash exited with code '1'.
2019-09-13T03:47:24.6543054Z ##[section]Starting: Checkout
2019-09-13T03:47:24.6545077Z ==============================================================================
2019-09-13T03:47:24.6545153Z Task         : Get sources
2019-09-13T03:47:24.6545199Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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/libtest/lib.rs Outdated Show resolved Hide resolved
src/libtest/lib.rs Outdated Show resolved Hide resolved
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 of your PR failed (pretty log, 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.
2019-09-13T19:31:53.7285538Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-13T19:31:54.5200068Z ##[command]git config gc.auto 0
2019-09-13T19:31:54.5202880Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-13T19:31:54.5204990Z ##[command]git config --get-all http.proxy
2019-09-13T19:31:54.5208539Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-13T20:35:36.5494982Z .................................................................................................... 1500/9012
2019-09-13T20:35:43.0563928Z .................................................................................................... 1600/9012
2019-09-13T20:35:56.7051080Z ..........................................................i...............i......................... 1700/9012
2019-09-13T20:36:04.9942204Z .................................................................................................... 1800/9012
2019-09-13T20:36:21.1875510Z .................................................iiiii.............................................. 1900/9012
2019-09-13T20:36:33.3876654Z .................................................................................................... 2100/9012
2019-09-13T20:36:36.1657574Z .................................................................................................... 2200/9012
2019-09-13T20:36:40.0513578Z .................................................................................................... 2300/9012
2019-09-13T20:36:48.6159609Z .................................................................................................... 2400/9012
---
2019-09-13T20:39:58.7151265Z ....................................i...............i............................................... 4700/9012
2019-09-13T20:40:10.3495821Z .................................................................................................... 4800/9012
2019-09-13T20:40:17.3044301Z .................................................................................................... 4900/9012
2019-09-13T20:40:28.3720416Z .................................................................................................... 5000/9012
2019-09-13T20:40:34.8250578Z ...................ii.ii............................................................................ 5100/9012
2019-09-13T20:40:45.7391101Z .................................................................................................... 5300/9012
2019-09-13T20:40:56.2551056Z ...................................................................................i................ 5400/9012
2019-09-13T20:41:04.6057911Z .................................................................................................... 5500/9012
2019-09-13T20:41:10.4343288Z .................................................................................................... 5600/9012
2019-09-13T20:41:10.4343288Z .................................................................................................... 5600/9012
2019-09-13T20:41:21.3189810Z ..............................................................................ii...i..ii...........i 5700/9012
2019-09-13T20:41:47.8484876Z .................................................................................................... 5900/9012
2019-09-13T20:41:58.3505316Z .................................................................................................... 6000/9012
2019-09-13T20:41:58.3505316Z .................................................................................................... 6000/9012
2019-09-13T20:42:03.4901757Z ................................................................................i..ii............... 6100/9012
2019-09-13T20:42:34.9220505Z .................................................................................................... 6300/9012
2019-09-13T20:42:37.3539955Z .......................................i............................................................ 6400/9012
2019-09-13T20:42:39.6824830Z .................................................................................................... 6500/9012
2019-09-13T20:42:42.4119947Z ...........i........................................................................................ 6600/9012
---
2019-09-13T20:47:22.1702599Z  finished in 5.370
2019-09-13T20:47:22.1914492Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:47:22.3788913Z 
2019-09-13T20:47:22.3790267Z running 150 tests
2019-09-13T20:47:25.7925047Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-09-13T20:47:27.8720020Z ..iiii..............i.........iii.i.......ii......
2019-09-13T20:47:27.8726865Z 
2019-09-13T20:47:27.8733370Z  finished in 5.682
2019-09-13T20:47:27.8928149Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:47:28.0700490Z 
---
2019-09-13T20:47:30.1611713Z  finished in 2.267
2019-09-13T20:47:30.1808981Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:47:30.3393470Z 
2019-09-13T20:47:30.3394157Z running 9 tests
2019-09-13T20:47:30.3395138Z iiiiiiiii
2019-09-13T20:47:30.3398082Z 
2019-09-13T20:47:30.3398186Z  finished in 0.158
2019-09-13T20:47:30.3579618Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:47:30.5412165Z 
---
2019-09-13T20:47:49.1568325Z  finished in 18.798
2019-09-13T20:47:49.1829264Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:47:49.3721265Z 
2019-09-13T20:47:49.3721747Z running 123 tests
2019-09-13T20:48:14.3703460Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-09-13T20:48:19.2740655Z i.i.i......iii.i.....ii
2019-09-13T20:48:19.2742847Z 
2019-09-13T20:48:19.2748384Z  finished in 30.092
2019-09-13T20:48:19.2757714Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T20:48:19.2758779Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-09-13T21:02:40.3348593Z 
2019-09-13T21:02:40.3349760Z    Doc-tests core
2019-09-13T21:02:45.7060738Z 
2019-09-13T21:02:45.7061907Z running 2400 tests
2019-09-13T21:02:57.3292322Z ......iiiii......................................................................................... 100/2400
2019-09-13T21:03:08.5630079Z ...........................................................................ii....................... 200/2400
2019-09-13T21:03:21.3728187Z .................................................................................................i.. 300/2400
2019-09-13T21:03:35.1330280Z .................................................................................................... 400/2400
2019-09-13T21:03:45.9541694Z ............................................i..i.................iiii............................... 500/2400
2019-09-13T21:04:07.4149924Z .................................................................................................... 700/2400
2019-09-13T21:04:18.2322656Z .................................................................................................... 800/2400
2019-09-13T21:04:29.0114026Z .................................................................................................... 900/2400
2019-09-13T21:04:39.8945920Z .................................................................................................... 1000/2400
---
2019-09-13T21:09:40.0950962Z ............................................... 300/763
2019-09-13T21:09:40.0969124Z thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:854:13
2019-09-13T21:09:40.1429738Z .................................................................................................... 400/763
2019-09-13T21:09:42.2255395Z .................................................................................................... 500/763
2019-09-13T21:09:42.2587992Z ....................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T21:09:42.2628682Z ....thread '<unnamed>thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1165:5
2019-09-13T21:09:42.2646487Z .' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs.:1165:5
2019-09-13T21:09:42.2669921Z ......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T21:09:42.4872091Z ............................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T21:09:42.4898169Z ........thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T21:09:42.4905642Z .thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1165:5
2019-09-13T21:09:44.5426794Z .....................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:629:13
2019-09-13T21:09:44.5443011Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:584:13
2019-09-13T21:09:44.5446801Z ......thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:561:13
2019-09-13T21:09:44.5463725Z thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:689:13
---
2019-09-13T21:09:53.9399417Z 
2019-09-13T21:09:53.9402704Z running 991 tests
2019-09-13T21:10:16.3043973Z i................................................................................................... 100/991
2019-09-13T21:10:28.5421921Z .................................................................................................... 200/991
2019-09-13T21:10:37.3218849Z .................iii......i......i...i......i....................................................... 300/991
2019-09-13T21:10:43.3835630Z .................................................................................................... 400/991
2019-09-13T21:10:51.8206865Z ..................................i..i.................................ii........................... 500/991
2019-09-13T21:11:07.7362332Z .................................................................................................... 700/991
2019-09-13T21:11:07.7362332Z .................................................................................................... 700/991
2019-09-13T21:11:16.2159697Z .................iiii............................................................................... 800/991
2019-09-13T21:11:31.8473022Z .................................................................................................... 900/991
2019-09-13T21:11:39.9017721Z .......................................iiii................................................
2019-09-13T21:11:39.9019927Z 
2019-09-13T21:11:39.9125921Z  finished in 251.094
2019-09-13T21:11:39.9144248Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-13T21:11:40.2481496Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-09-13T21:11:43.2312704Z    Compiling test v0.0.0 (/checkout/src/libtest)
2019-09-13T21:11:43.3229516Z error[E0432]: unresolved import `crate::test::RunStrategy`
2019-09-13T21:11:43.3230017Z  --> src/libtest/tests.rs:4:88
2019-09-13T21:11:43.3230281Z   |
2019-09-13T21:11:43.3232202Z 4 |     filter_tests, parse_opts, run_test, DynTestFn, DynTestName, MetricMap, RunIgnored, RunStrategy,
2019-09-13T21:11:43.3233096Z   |                                                                                        ^^^^^^^^^^^ no `RunStrategy` in `test`
2019-09-13T21:11:43.3233427Z 
2019-09-13T21:11:43.6583570Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.6584099Z     --> src/libtest/tests.rs:69:45
2019-09-13T21:11:43.6584411Z      |
2019-09-13T21:11:43.6584750Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.6585741Z      |                                             |
2019-09-13T21:11:43.6586068Z      |                                             call expression requires function
2019-09-13T21:11:43.6586312Z      | 
2019-09-13T21:11:43.6586563Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.6586563Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.6586780Z      |
2019-09-13T21:11:43.6587238Z 1098 |     InProcess,
2019-09-13T21:11:43.6587569Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.6587887Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.6588130Z      |
2019-09-13T21:11:43.6588457Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.6588830Z 
2019-09-13T21:11:43.6973307Z error[E0308]: mismatched types
2019-09-13T21:11:43.6973663Z   --> src/libtest/tests.rs:69:73
2019-09-13T21:11:43.6973980Z    |
2019-09-13T21:11:43.6973980Z    |
2019-09-13T21:11:43.6974358Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.6974851Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.6975147Z    |
2019-09-13T21:11:43.6975523Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.6975830Z               found type `Concurrent`
2019-09-13T21:11:43.7121264Z error[E0308]: mismatched types
2019-09-13T21:11:43.7121651Z   --> src/libtest/tests.rs:69:89
2019-09-13T21:11:43.7121906Z    |
2019-09-13T21:11:43.7121906Z    |
2019-09-13T21:11:43.7122288Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7122769Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.7123368Z    = note: expected type `Concurrent`
2019-09-13T21:11:43.7123647Z               found type `bool`
2019-09-13T21:11:43.7123688Z 
2019-09-13T21:11:43.7123688Z 
2019-09-13T21:11:43.7134562Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.7134922Z     --> src/libtest/tests.rs:87:45
2019-09-13T21:11:43.7135171Z      |
2019-09-13T21:11:43.7135744Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7136534Z      |                                             |
2019-09-13T21:11:43.7136916Z      |                                             call expression requires function
2019-09-13T21:11:43.7137166Z      | 
2019-09-13T21:11:43.7137611Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.7137611Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.7137856Z      |
2019-09-13T21:11:43.7138142Z 1098 |     InProcess,
2019-09-13T21:11:43.7138530Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.7139471Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.7139978Z      |
2019-09-13T21:11:43.7140408Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.7140843Z 
2019-09-13T21:11:43.7287893Z error[E0308]: mismatched types
2019-09-13T21:11:43.7288238Z   --> src/libtest/tests.rs:87:73
2019-09-13T21:11:43.7288492Z    |
2019-09-13T21:11:43.7288492Z    |
2019-09-13T21:11:43.7288904Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7289732Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.7290057Z    |
2019-09-13T21:11:43.7290478Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.7290770Z               found type `Concurrent`
2019-09-13T21:11:43.7429924Z error[E0308]: mismatched types
2019-09-13T21:11:43.7430296Z   --> src/libtest/tests.rs:87:89
2019-09-13T21:11:43.7430608Z    |
2019-09-13T21:11:43.7430608Z    |
2019-09-13T21:11:43.7430998Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7431455Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.7432060Z    = note: expected type `Concurrent`
2019-09-13T21:11:43.7432355Z               found type `bool`
2019-09-13T21:11:43.7432406Z 
2019-09-13T21:11:43.7432406Z 
2019-09-13T21:11:43.7443533Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T21:11:43.7443903Z     --> src/libtest/tests.rs:105:45
2019-09-13T21:11:43.7444351Z      |
2019-09-13T21:11:43.7444800Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T21:11:43.7445562Z      |                                             |
2019-09-13T21:11:43.7445943Z      |                                             call expression requires function
2019-09-13T21:11:43.7446348Z      | 
2019-09-13T21:11:43.7446628Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.7446628Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.7446890Z      |
2019-09-13T21:11:43.7447195Z 1103 |     SpawnPrimary,
2019-09-13T21:11:43.7447569Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T21:11:43.7447933Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.7448179Z      |
2019-09-13T21:11:43.7448549Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, false);
2019-09-13T21:11:43.7448983Z 
2019-09-13T21:11:43.7587942Z error[E0308]: mismatched types
2019-09-13T21:11:43.7588337Z    --> src/libtest/tests.rs:105:76
2019-09-13T21:11:43.7588593Z     |
2019-09-13T21:11:43.7588593Z     |
2019-09-13T21:11:43.7588969Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T21:11:43.7589854Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.7590163Z     |
2019-09-13T21:11:43.7590568Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.7590881Z                found type `Concurrent`
2019-09-13T21:11:43.7733691Z error[E0308]: mismatched types
2019-09-13T21:11:43.7734037Z    --> src/libtest/tests.rs:105:92
2019-09-13T21:11:43.7734287Z     |
2019-09-13T21:11:43.7734287Z     |
2019-09-13T21:11:43.7734696Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-13T21:11:43.7735152Z     |                                                                                            ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.7735772Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.7736051Z                found type `bool`
2019-09-13T21:11:43.7736110Z 
2019-09-13T21:11:43.7736110Z 
2019-09-13T21:11:43.7746016Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.7746423Z     --> src/libtest/tests.rs:125:45
2019-09-13T21:11:43.7746706Z      |
2019-09-13T21:11:43.7747078Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7747825Z      |                                             |
2019-09-13T21:11:43.7748346Z      |                                             call expression requires function
2019-09-13T21:11:43.7748630Z      | 
2019-09-13T21:11:43.7748914Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.7748914Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.7749154Z      |
2019-09-13T21:11:43.7749459Z 1098 |     InProcess,
2019-09-13T21:11:43.7750167Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.7750581Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.7750854Z      |
2019-09-13T21:11:43.7751236Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.7751662Z 
2019-09-13T21:11:43.7890686Z error[E0308]: mismatched types
2019-09-13T21:11:43.7891029Z    --> src/libtest/tests.rs:125:73
2019-09-13T21:11:43.7891312Z     |
2019-09-13T21:11:43.7891312Z     |
2019-09-13T21:11:43.7891688Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.7892166Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.7892479Z     |
2019-09-13T21:11:43.7892860Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.7893182Z                found type `Concurrent`
2019-09-13T21:11:43.8028483Z error[E0308]: mismatched types
2019-09-13T21:11:43.8028851Z    --> src/libtest/tests.rs:125:89
2019-09-13T21:11:43.8029107Z     |
2019-09-13T21:11:43.8029107Z     |
2019-09-13T21:11:43.8029866Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8030368Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.8031207Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.8031561Z                found type `bool`
2019-09-13T21:11:43.8031603Z 
2019-09-13T21:11:43.8031603Z 
2019-09-13T21:11:43.8042548Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T21:11:43.8042892Z     --> src/libtest/tests.rs:145:45
2019-09-13T21:11:43.8043142Z      |
2019-09-13T21:11:43.8043541Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.8044553Z      |                                             |
2019-09-13T21:11:43.8044934Z      |                                             call expression requires function
2019-09-13T21:11:43.8045187Z      | 
2019-09-13T21:11:43.8045488Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.8045488Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.8045732Z      |
2019-09-13T21:11:43.8046024Z 1103 |     SpawnPrimary,
2019-09-13T21:11:43.8046414Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T21:11:43.8046763Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.8047020Z      |
2019-09-13T21:11:43.8047420Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-13T21:11:43.8047825Z 
2019-09-13T21:11:43.8200069Z error[E0308]: mismatched types
2019-09-13T21:11:43.8200433Z    --> src/libtest/tests.rs:145:76
2019-09-13T21:11:43.8200741Z     |
2019-09-13T21:11:43.8200741Z     |
2019-09-13T21:11:43.8201130Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.8201660Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.8201938Z     |
2019-09-13T21:11:43.8202335Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.8202625Z                found type `Concurrent`
2019-09-13T21:11:43.8337447Z error[E0308]: mismatched types
2019-09-13T21:11:43.8337832Z    --> src/libtest/tests.rs:145:92
2019-09-13T21:11:43.8338101Z     |
2019-09-13T21:11:43.8338101Z     |
2019-09-13T21:11:43.8338487Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.8339225Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.8340902Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.8341181Z                found type `bool`
2019-09-13T21:11:43.8341224Z 
2019-09-13T21:11:43.8341224Z 
2019-09-13T21:11:43.8351714Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.8352059Z     --> src/libtest/tests.rs:165:45
2019-09-13T21:11:43.8352312Z      |
2019-09-13T21:11:43.8352728Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8353767Z      |                                             |
2019-09-13T21:11:43.8354132Z      |                                             call expression requires function
2019-09-13T21:11:43.8354383Z      | 
2019-09-13T21:11:43.8354687Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.8354687Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.8354932Z      |
2019-09-13T21:11:43.8355223Z 1098 |     InProcess,
2019-09-13T21:11:43.8355623Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.8355968Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.8356224Z      |
2019-09-13T21:11:43.8356617Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.8357019Z 
2019-09-13T21:11:43.8517415Z error[E0308]: mismatched types
2019-09-13T21:11:43.8517757Z    --> src/libtest/tests.rs:165:73
2019-09-13T21:11:43.8518039Z     |
2019-09-13T21:11:43.8518039Z     |
2019-09-13T21:11:43.8518660Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8519206Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.8519911Z     |
2019-09-13T21:11:43.8520309Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.8520630Z                found type `Concurrent`
2019-09-13T21:11:43.8684692Z error[E0308]: mismatched types
2019-09-13T21:11:43.8685070Z    --> src/libtest/tests.rs:165:89
2019-09-13T21:11:43.8685345Z     |
2019-09-13T21:11:43.8685345Z     |
2019-09-13T21:11:43.8685725Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8686402Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.8687081Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.8687366Z                found type `bool`
2019-09-13T21:11:43.8687408Z 
2019-09-13T21:11:43.8687408Z 
2019-09-13T21:11:43.8700665Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.8701267Z     --> src/libtest/tests.rs:187:45
2019-09-13T21:11:43.8701531Z      |
2019-09-13T21:11:43.8701942Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8702794Z      |                                             |
2019-09-13T21:11:43.8703162Z      |                                             call expression requires function
2019-09-13T21:11:43.8703415Z      | 
2019-09-13T21:11:43.8703713Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.8703713Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.8703972Z      |
2019-09-13T21:11:43.8704264Z 1098 |     InProcess,
2019-09-13T21:11:43.8704646Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.8705002Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.8705253Z      |
2019-09-13T21:11:43.8705644Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.8706044Z 
2019-09-13T21:11:43.8850208Z error[E0308]: mismatched types
2019-09-13T21:11:43.8850568Z    --> src/libtest/tests.rs:187:73
2019-09-13T21:11:43.8850821Z     |
2019-09-13T21:11:43.8850821Z     |
2019-09-13T21:11:43.8851230Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.8851718Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.8852005Z     |
2019-09-13T21:11:43.8852385Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.8852673Z                found type `Concurrent`
2019-09-13T21:11:43.9002303Z error[E0308]: mismatched types
2019-09-13T21:11:43.9002650Z    --> src/libtest/tests.rs:187:89
2019-09-13T21:11:43.9002938Z     |
2019-09-13T21:11:43.9002938Z     |
2019-09-13T21:11:43.9003510Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.9004040Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.9004656Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.9004958Z                found type `bool`
2019-09-13T21:11:43.9005118Z 
2019-09-13T21:11:43.9005118Z 
2019-09-13T21:11:43.9024701Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-13T21:11:43.9025073Z     --> src/libtest/tests.rs:205:45
2019-09-13T21:11:43.9025328Z      |
2019-09-13T21:11:43.9025727Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.9026486Z      |                                             |
2019-09-13T21:11:43.9026866Z      |                                             call expression requires function
2019-09-13T21:11:43.9027136Z      | 
2019-09-13T21:11:43.9027419Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.9027419Z     ::: src/libtest/lib.rs:1098:5
2019-09-13T21:11:43.9027680Z      |
2019-09-13T21:11:43.9027975Z 1098 |     InProcess,
2019-09-13T21:11:43.9028351Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-13T21:11:43.9028715Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.9028968Z      |
2019-09-13T21:11:43.9029705Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-13T21:11:43.9030259Z 
2019-09-13T21:11:43.9182941Z error[E0308]: mismatched types
2019-09-13T21:11:43.9183339Z    --> src/libtest/tests.rs:205:73
2019-09-13T21:11:43.9183616Z     |
2019-09-13T21:11:43.9183616Z     |
2019-09-13T21:11:43.9184001Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.9184502Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.9184769Z     |
2019-09-13T21:11:43.9185164Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.9185471Z                found type `Concurrent`
2019-09-13T21:11:43.9324425Z error[E0308]: mismatched types
2019-09-13T21:11:43.9324961Z    --> src/libtest/tests.rs:205:89
2019-09-13T21:11:43.9325281Z     |
2019-09-13T21:11:43.9325281Z     |
2019-09-13T21:11:43.9325688Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-13T21:11:43.9326151Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.9326758Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.9327217Z                found type `bool`
2019-09-13T21:11:43.9327279Z 
2019-09-13T21:11:43.9327279Z 
2019-09-13T21:11:43.9337159Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-13T21:11:43.9337510Z     --> src/libtest/tests.rs:223:45
2019-09-13T21:11:43.9337796Z      |
2019-09-13T21:11:43.9338179Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.9338934Z      |                                             |
2019-09-13T21:11:43.9339307Z      |                                             call expression requires function
2019-09-13T21:11:43.9339951Z      | 
2019-09-13T21:11:43.9340247Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.9340247Z     ::: src/libtest/lib.rs:1103:5
2019-09-13T21:11:43.9340505Z      |
2019-09-13T21:11:43.9340820Z 1103 |     SpawnPrimary,
2019-09-13T21:11:43.9341191Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-13T21:11:43.9341535Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-13T21:11:43.9341801Z      |
2019-09-13T21:11:43.9342169Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-13T21:11:43.9342600Z 
2019-09-13T21:11:43.9486070Z error[E0308]: mismatched types
2019-09-13T21:11:43.9486414Z    --> src/libtest/tests.rs:223:76
2019-09-13T21:11:43.9486697Z     |
2019-09-13T21:11:43.9486697Z     |
2019-09-13T21:11:43.9487079Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.9487565Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-13T21:11:43.9487864Z     |
2019-09-13T21:11:43.9488242Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:43.9488739Z                found type `Concurrent`
2019-09-13T21:11:43.9631337Z error[E0308]: mismatched types
2019-09-13T21:11:43.9631708Z    --> src/libtest/tests.rs:223:92
2019-09-13T21:11:43.9631963Z     |
2019-09-13T21:11:43.9631963Z     |
2019-09-13T21:11:43.9632345Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-13T21:11:43.9632826Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-13T21:11:43.9633686Z     = note: expected type `Concurrent`
2019-09-13T21:11:43.9633981Z                found type `bool`
2019-09-13T21:11:43.9634024Z 
2019-09-13T21:11:44.0143441Z error[E0308]: mismatched types
2019-09-13T21:11:44.0143441Z error[E0308]: mismatched types
2019-09-13T21:11:44.0143792Z    --> src/libtest/tests.rs:519:29
2019-09-13T21:11:44.0144049Z     |
2019-09-13T21:11:44.0144395Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0144792Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-13T21:11:44.0145411Z     = note: expected type `&TestOpts`
2019-09-13T21:11:44.0145687Z                found type `TestDesc`
2019-09-13T21:11:44.0145725Z 
2019-09-13T21:11:44.0325914Z error[E0308]: mismatched types
2019-09-13T21:11:44.0325914Z error[E0308]: mismatched types
2019-09-13T21:11:44.0326258Z    --> src/libtest/tests.rs:519:35
2019-09-13T21:11:44.0326514Z     |
2019-09-13T21:11:44.0326863Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0327295Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-13T21:11:44.0327890Z     = note: expected type `TestDesc`
2019-09-13T21:11:44.0328196Z                found type `std::sync::mpsc::Sender<_>`
2019-09-13T21:11:44.0328237Z 
2019-09-13T21:11:44.0491069Z error[E0308]: mismatched types
2019-09-13T21:11:44.0491069Z error[E0308]: mismatched types
2019-09-13T21:11:44.0491434Z    --> src/libtest/tests.rs:519:39
2019-09-13T21:11:44.0491694Z     |
2019-09-13T21:11:44.0492044Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0492470Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-13T21:11:44.0492728Z     |
2019-09-13T21:11:44.0493123Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:44.0493452Z 
2019-09-13T21:11:44.0670808Z error[E0308]: mismatched types
2019-09-13T21:11:44.0671362Z    --> src/libtest/tests.rs:538:29
2019-09-13T21:11:44.0671682Z     |
2019-09-13T21:11:44.0671682Z     |
2019-09-13T21:11:44.0672035Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0672429Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-13T21:11:44.0673019Z     = note: expected type `&TestOpts`
2019-09-13T21:11:44.0673451Z                found type `TestDesc`
2019-09-13T21:11:44.0673491Z 
2019-09-13T21:11:44.0828917Z error[E0308]: mismatched types
2019-09-13T21:11:44.0828917Z error[E0308]: mismatched types
2019-09-13T21:11:44.0829255Z    --> src/libtest/tests.rs:538:35
2019-09-13T21:11:44.0829887Z     |
2019-09-13T21:11:44.0830268Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0830705Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-13T21:11:44.0831298Z     = note: expected type `TestDesc`
2019-09-13T21:11:44.0831590Z                found type `std::sync::mpsc::Sender<_>`
2019-09-13T21:11:44.0831642Z 
2019-09-13T21:11:44.0976529Z error[E0308]: mismatched types
2019-09-13T21:11:44.0976529Z error[E0308]: mismatched types
2019-09-13T21:11:44.0976875Z    --> src/libtest/tests.rs:538:39
2019-09-13T21:11:44.0977129Z     |
2019-09-13T21:11:44.0977497Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-13T21:11:44.0977921Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-13T21:11:44.0978178Z     |
2019-09-13T21:11:44.0978576Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-13T21:11:44.0978901Z 
2019-09-13T21:11:44.2400556Z error: aborting due to 34 previous errors
2019-09-13T21:11:44.2400695Z 
2019-09-13T21:11:44.2401029Z Some errors have detailed explanations: E0308, E0432, E0618.
---
2019-09-13T21:11:44.2680757Z == clock drift check ==
2019-09-13T21:11:44.2693962Z   local time: Fri Sep 13 21:11:44 UTC 2019
2019-09-13T21:11:44.3583657Z   network time: Fri, 13 Sep 2019 21:11:44 GMT
2019-09-13T21:11:44.3583740Z == end clock drift check ==
2019-09-13T21:11:44.8978583Z ##[error]Bash exited with code '1'.
2019-09-13T21:11:44.9022581Z ##[section]Starting: Checkout
2019-09-13T21:11:44.9024582Z ==============================================================================
2019-09-13T21:11:44.9024644Z Task         : Get sources
2019-09-13T21:11:44.9024698Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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

Could this be sure to check in some tests to src/test/ui which exercise the out-of-process support? It'd be neat if they could capture *.stderr files of the test executable because I'm curious to see the output of libtest in the event of failing tests.

For tests I'm thinking of having a #[test] that segfaults and correctly showing that it was a failed test rather than segfaulting the whole process. Similar for something like std::process::exit(3) called randomly or something like that.

@tmandry
Copy link
Member Author

tmandry commented Sep 14, 2019

Could this be sure to check in some tests to src/test/ui which exercise the out-of-process support? It'd be neat if they could capture *.stderr files of the test executable because I'm curious to see the output of libtest in the event of failing tests.

For tests I'm thinking of having a #[test] that segfaults and correctly showing that it was a failed test rather than segfaulting the whole process. Similar for something like std::process::exit(3) called randomly or something like that.

I'm actually planning on doing exactly that! It's why I requested #63751 :D

Sorry progress has been slow on this, I've been juggling a lot of other things this week.

@bors
Copy link
Contributor

bors commented Sep 15, 2019

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

@alexcrichton
Copy link
Member

Oh no worries! Sorry I don't mean to seem rushing at all, afaik it's definitely ok if this takes its time.

@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (pretty log, 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.
2019-09-19T01:43:36.6296169Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-19T01:43:36.6499443Z ##[command]git config gc.auto 0
2019-09-19T01:43:36.6643861Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-19T01:43:37.5588905Z ##[command]git config --get-all http.proxy
2019-09-19T01:43:37.5595444Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-19T01:53:58.4638243Z configure: build.locked-deps    := True
2019-09-19T01:53:58.4638603Z configure: llvm.ccache          := sccache
2019-09-19T01:53:58.4638955Z configure: build.cargo-native-static := True
2019-09-19T01:53:58.4639215Z configure: dist.missing-tools   := True
2019-09-19T01:53:58.4639557Z configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
2019-09-19T01:53:58.4639735Z configure: writing `config.toml` in current directory
2019-09-19T01:53:58.4639805Z configure: 
2019-09-19T01:53:58.4640080Z configure: run `python /checkout/x.py --help`
2019-09-19T01:53:58.4640133Z configure: 
---
2019-09-19T01:56:20.6221535Z     Checking test v0.0.0 (/checkout/src/libtest)
2019-09-19T01:56:21.0356011Z error[E0308]: mismatched types
2019-09-19T01:56:21.0356446Z     --> src/libtest/lib.rs:1648:25
2019-09-19T01:56:21.0356708Z      |
2019-09-19T01:56:21.0357174Z 1648 |     status.code().ok_or("received no exit code from child process")
2019-09-19T01:56:21.0357788Z      |                         |
2019-09-19T01:56:21.0358127Z      |                         expected struct `std::string::String`, found reference
2019-09-19T01:56:21.0358127Z      |                         expected struct `std::string::String`, found reference
2019-09-19T01:56:21.0358476Z      |                         help: try using a conversion method: `"received no exit code from child process".to_string()`
2019-09-19T01:56:21.0359301Z      = note: expected type `std::string::String`
2019-09-19T01:56:21.0360010Z                 found type `&'static str`
2019-09-19T01:56:21.0360094Z 
2019-09-19T01:56:21.1666526Z error: aborting due to previous error
---
2019-09-19T01:56:21.1942743Z == clock drift check ==
2019-09-19T01:56:21.1963399Z   local time: Thu Sep 19 01:56:21 UTC 2019
2019-09-19T01:56:21.2818350Z   network time: Thu, 19 Sep 2019 01:56:21 GMT
2019-09-19T01:56:21.2822846Z == end clock drift check ==
2019-09-19T01:56:22.7061886Z ##[error]Bash exited with code '1'.
2019-09-19T01:56:22.7106381Z ##[section]Starting: Checkout
2019-09-19T01:56:22.7109247Z ==============================================================================
2019-09-19T01:56:22.7109319Z Task         : Get sources
2019-09-19T01:56:22.7109373Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 (pretty log, 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.
2019-09-19T22:37:28.8578213Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-09-19T22:37:28.8782248Z ##[command]git config gc.auto 0
2019-09-19T22:37:28.8918333Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-09-19T22:37:28.8993461Z ##[command]git config --get-all http.proxy
2019-09-19T22:37:28.9148518Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/64158/merge:refs/remotes/pull/64158/merge
---
2019-09-19T23:41:32.7270222Z .................................................................................................... 1500/9024
2019-09-19T23:41:38.8977260Z .................................................................................................... 1600/9024
2019-09-19T23:41:51.6695277Z .................................................................i...............i.................. 1700/9024
2019-09-19T23:41:59.1456319Z .................................................................................................... 1800/9024
2019-09-19T23:42:14.6796925Z ........................................................iiiii....................................... 1900/9024
2019-09-19T23:42:26.7192622Z .................................................................................................... 2100/9024
2019-09-19T23:42:29.3671358Z .................................................................................................... 2200/9024
2019-09-19T23:42:32.8949102Z .................................................................................................... 2300/9024
2019-09-19T23:42:41.4848383Z .................................................................................................... 2400/9024
---
2019-09-19T23:45:44.6507282Z ............................................i...............i....................................... 4700/9024
2019-09-19T23:45:55.6130831Z .................................................................................................... 4800/9024
2019-09-19T23:46:02.7818067Z .................................................................................................... 4900/9024
2019-09-19T23:46:12.7124473Z .................................................................................................... 5000/9024
2019-09-19T23:46:20.7128128Z ............................ii.ii................................................................... 5100/9024
2019-09-19T23:46:31.1755045Z .................................................................................................... 5300/9024
2019-09-19T23:46:41.8236338Z ............................................................................................i....... 5400/9024
2019-09-19T23:46:50.3826340Z .................................................................................................... 5500/9024
2019-09-19T23:46:55.4426484Z .................................................................................................... 5600/9024
2019-09-19T23:46:55.4426484Z .................................................................................................... 5600/9024
2019-09-19T23:47:06.2501199Z .......................................................................................ii...i..ii... 5700/9024
2019-09-19T23:47:31.9735717Z .................................................................................................... 5900/9024
2019-09-19T23:47:42.2911699Z .................................................................................................... 6000/9024
2019-09-19T23:47:42.2911699Z .................................................................................................... 6000/9024
2019-09-19T23:47:51.5507142Z .........................................................................................i..ii...... 6100/9024
2019-09-19T23:48:20.4985971Z .................................................................................................... 6300/9024
2019-09-19T23:48:24.9186458Z ................................................i................................................... 6400/9024
2019-09-19T23:48:27.2643815Z .................................................................................................... 6500/9024
2019-09-19T23:48:29.9008536Z ....................i............................................................................... 6600/9024
---
2019-09-19T23:53:08.6690339Z  finished in 5.220
2019-09-19T23:53:08.6879254Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:53:08.8614777Z 
2019-09-19T23:53:08.8615056Z running 150 tests
2019-09-19T23:53:12.2001393Z i....iii......iii..iiii....i.............................i..i..................i....i.........ii.i.i 100/150
2019-09-19T23:53:14.2337509Z ..iiii..............i.........iii.i.......ii......
2019-09-19T23:53:14.2338354Z 
2019-09-19T23:53:14.2345425Z  finished in 5.546
2019-09-19T23:53:14.2549177Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:53:14.4238336Z 
---
2019-09-19T23:53:16.5544805Z  finished in 2.300
2019-09-19T23:53:16.5754350Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:53:16.7341746Z 
2019-09-19T23:53:16.7342728Z running 9 tests
2019-09-19T23:53:16.7344236Z iiiiiiiii
2019-09-19T23:53:16.7344750Z 
2019-09-19T23:53:16.7344962Z  finished in 0.158
2019-09-19T23:53:16.7540018Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:53:16.9164680Z 
---
2019-09-19T23:53:35.6744730Z  finished in 18.920
2019-09-19T23:53:35.6951826Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:53:35.8622012Z 
2019-09-19T23:53:35.8622270Z running 123 tests
2019-09-19T23:54:00.2717323Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i...ii...i.......ii. 100/123
2019-09-19T23:54:05.0752451Z i.i.i......iii.i.....ii
2019-09-19T23:54:05.0754481Z 
2019-09-19T23:54:05.0758330Z  finished in 29.380
2019-09-19T23:54:05.0769326Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-19T23:54:05.0770127Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-09-20T00:08:22.1421401Z 
2019-09-20T00:08:22.1422439Z    Doc-tests core
2019-09-20T00:08:27.3156211Z 
2019-09-20T00:08:27.3157405Z running 2401 tests
2019-09-20T00:08:39.0382502Z ......iiiii......................................................................................... 100/2401
2019-09-20T00:08:50.4921380Z ...........................................................................ii....................... 200/2401
2019-09-20T00:09:03.9436445Z .................................................................................................i.. 300/2401
2019-09-20T00:09:17.7848315Z .................................................................................................... 400/2401
2019-09-20T00:09:28.8407248Z ............................................i..i.................iiii............................... 500/2401
2019-09-20T00:09:50.2817400Z .................................................................................................... 700/2401
2019-09-20T00:10:01.5140617Z .................................................................................................... 800/2401
2019-09-20T00:10:12.5195426Z .................................................................................................... 900/2401
2019-09-20T00:10:23.4049257Z .................................................................................................... 1000/2401
---
2019-09-20T00:15:30.7514694Z 
2019-09-20T00:15:30.7516141Z running 991 tests
2019-09-20T00:15:52.6630064Z i................................................................................................... 100/991
2019-09-20T00:16:04.8604006Z .................................................................................................... 200/991
2019-09-20T00:16:13.4847604Z .................iii......i......i...i......i....................................................... 300/991
2019-09-20T00:16:19.5206116Z .................................................................................................... 400/991
2019-09-20T00:16:27.8087803Z ..................................i..i.................................ii........................... 500/991
2019-09-20T00:16:43.4607679Z .................................................................................................... 700/991
2019-09-20T00:16:43.4607679Z .................................................................................................... 700/991
2019-09-20T00:16:51.9984990Z .................iiii............................................................................... 800/991
2019-09-20T00:17:07.5488206Z .................................................................................................... 900/991
2019-09-20T00:17:15.4732389Z .......................................iiii................................................
2019-09-20T00:17:15.4733416Z 
2019-09-20T00:17:15.4847994Z  finished in 246.351
2019-09-20T00:17:15.4867577Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-09-20T00:17:15.6971278Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-09-20T00:17:18.4663294Z    Compiling test v0.0.0 (/checkout/src/libtest)
2019-09-20T00:17:18.5531918Z error[E0432]: unresolved import `crate::test::RunStrategy`
2019-09-20T00:17:18.5533468Z  --> src/libtest/tests.rs:4:88
2019-09-20T00:17:18.5534419Z   |
2019-09-20T00:17:18.5535033Z 4 |     filter_tests, parse_opts, run_test, DynTestFn, DynTestName, MetricMap, RunIgnored, RunStrategy,
2019-09-20T00:17:18.5535662Z   |                                                                                        ^^^^^^^^^^^ no `RunStrategy` in `test`
2019-09-20T00:17:18.5535906Z 
2019-09-20T00:17:18.8890277Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:18.8890680Z     --> src/libtest/tests.rs:69:45
2019-09-20T00:17:18.8890949Z      |
2019-09-20T00:17:18.8891658Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.8892331Z      |                                             |
2019-09-20T00:17:18.8892651Z      |                                             call expression requires function
2019-09-20T00:17:18.8893052Z      | 
2019-09-20T00:17:18.8893368Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:18.8893368Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:18.8893580Z      |
2019-09-20T00:17:18.8894376Z 1068 |     InProcess,
2019-09-20T00:17:18.8894736Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:18.8895036Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:18.8895270Z      |
2019-09-20T00:17:18.8895591Z 69   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:18.8895974Z 
2019-09-20T00:17:18.9289928Z error[E0308]: mismatched types
2019-09-20T00:17:18.9290264Z   --> src/libtest/tests.rs:69:73
2019-09-20T00:17:18.9290554Z    |
2019-09-20T00:17:18.9290554Z    |
2019-09-20T00:17:18.9290884Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.9291301Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:18.9291562Z    |
2019-09-20T00:17:18.9291933Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:18.9292259Z 
2019-09-20T00:17:18.9455628Z error[E0308]: mismatched types
2019-09-20T00:17:18.9455989Z   --> src/libtest/tests.rs:69:89
2019-09-20T00:17:18.9456211Z    |
2019-09-20T00:17:18.9456211Z    |
2019-09-20T00:17:18.9456536Z 69 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.9456954Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:18.9457491Z    = note: expected type `Concurrent`
2019-09-20T00:17:18.9457737Z               found type `bool`
2019-09-20T00:17:18.9457775Z 
2019-09-20T00:17:18.9457775Z 
2019-09-20T00:17:18.9482144Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:18.9482732Z     --> src/libtest/tests.rs:87:45
2019-09-20T00:17:18.9482958Z      |
2019-09-20T00:17:18.9483314Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.9484040Z      |                                             |
2019-09-20T00:17:18.9484513Z      |                                             call expression requires function
2019-09-20T00:17:18.9484794Z      | 
2019-09-20T00:17:18.9485062Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:18.9485062Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:18.9485286Z      |
2019-09-20T00:17:18.9485536Z 1068 |     InProcess,
2019-09-20T00:17:18.9485870Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:18.9486172Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:18.9486384Z      |
2019-09-20T00:17:18.9486726Z 87   |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:18.9487080Z 
2019-09-20T00:17:18.9639604Z error[E0308]: mismatched types
2019-09-20T00:17:18.9639922Z   --> src/libtest/tests.rs:87:73
2019-09-20T00:17:18.9640135Z    |
2019-09-20T00:17:18.9640135Z    |
2019-09-20T00:17:18.9640476Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.9640885Z    |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:18.9641125Z    |
2019-09-20T00:17:18.9641452Z    = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:18.9641760Z 
2019-09-20T00:17:18.9784166Z error[E0308]: mismatched types
2019-09-20T00:17:18.9784859Z   --> src/libtest/tests.rs:87:89
2019-09-20T00:17:18.9785321Z    |
2019-09-20T00:17:18.9785321Z    |
2019-09-20T00:17:18.9785887Z 87 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:18.9786512Z    |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:18.9787592Z    = note: expected type `Concurrent`
2019-09-20T00:17:18.9788038Z               found type `bool`
2019-09-20T00:17:18.9788470Z 
2019-09-20T00:17:18.9788470Z 
2019-09-20T00:17:18.9800731Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-20T00:17:18.9801045Z     --> src/libtest/tests.rs:105:45
2019-09-20T00:17:18.9801266Z      |
2019-09-20T00:17:18.9801621Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-20T00:17:18.9802578Z      |                                             |
2019-09-20T00:17:18.9802972Z      |                                             call expression requires function
2019-09-20T00:17:18.9803210Z      | 
2019-09-20T00:17:18.9803479Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:18.9803479Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:18.9804182Z      |
2019-09-20T00:17:18.9804460Z 1073 |     SpawnPrimary,
2019-09-20T00:17:18.9804811Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-20T00:17:18.9805114Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:18.9805343Z      |
2019-09-20T00:17:18.9805692Z 105  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, false);
2019-09-20T00:17:18.9806059Z 
2019-09-20T00:17:18.9951516Z error[E0308]: mismatched types
2019-09-20T00:17:18.9951815Z    --> src/libtest/tests.rs:105:76
2019-09-20T00:17:18.9952181Z     |
2019-09-20T00:17:18.9952181Z     |
2019-09-20T00:17:18.9952523Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-20T00:17:18.9952970Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:18.9953240Z     |
2019-09-20T00:17:18.9953572Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:18.9954435Z 
2019-09-20T00:17:19.0091363Z error[E0308]: mismatched types
2019-09-20T00:17:19.0091674Z    --> src/libtest/tests.rs:105:92
2019-09-20T00:17:19.0091991Z     |
2019-09-20T00:17:19.0091991Z     |
2019-09-20T00:17:19.0092422Z 105 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, false);
2019-09-20T00:17:19.0092849Z     |                                                                                            ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.0094132Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.0094423Z                found type `bool`
2019-09-20T00:17:19.0094462Z 
2019-09-20T00:17:19.0094462Z 
2019-09-20T00:17:19.0106486Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:19.0106804Z     --> src/libtest/tests.rs:125:45
2019-09-20T00:17:19.0107134Z      |
2019-09-20T00:17:19.0107571Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.0108404Z      |                                             |
2019-09-20T00:17:19.0108704Z      |                                             call expression requires function
2019-09-20T00:17:19.0108899Z      | 
2019-09-20T00:17:19.0109132Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.0109132Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.0109317Z      |
2019-09-20T00:17:19.0109538Z 1068 |     InProcess,
2019-09-20T00:17:19.0109959Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:19.0110251Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.0110454Z      |
2019-09-20T00:17:19.0110770Z 125  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:19.0111229Z 
2019-09-20T00:17:19.0251976Z error[E0308]: mismatched types
2019-09-20T00:17:19.0252385Z    --> src/libtest/tests.rs:125:73
2019-09-20T00:17:19.0252595Z     |
2019-09-20T00:17:19.0252595Z     |
2019-09-20T00:17:19.0252960Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.0253486Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.0254097Z     |
2019-09-20T00:17:19.0254457Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.0254764Z 
2019-09-20T00:17:19.0390377Z error[E0308]: mismatched types
2019-09-20T00:17:19.0390667Z    --> src/libtest/tests.rs:125:89
2019-09-20T00:17:19.0390904Z     |
2019-09-20T00:17:19.0390904Z     |
2019-09-20T00:17:19.0391229Z 125 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.0391608Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.0393889Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.0394352Z                found type `bool`
2019-09-20T00:17:19.0394397Z 
2019-09-20T00:17:19.0394397Z 
2019-09-20T00:17:19.0406382Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-20T00:17:19.0406710Z     --> src/libtest/tests.rs:145:45
2019-09-20T00:17:19.0406930Z      |
2019-09-20T00:17:19.0407453Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.0408222Z      |                                             |
2019-09-20T00:17:19.0408556Z      |                                             call expression requires function
2019-09-20T00:17:19.0408778Z      | 
2019-09-20T00:17:19.0409125Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:19.0409125Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:19.0409463Z      |
2019-09-20T00:17:19.0409729Z 1073 |     SpawnPrimary,
2019-09-20T00:17:19.0410155Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-20T00:17:19.0410590Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.0410817Z      |
2019-09-20T00:17:19.0411239Z 145  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-20T00:17:19.0411720Z 
2019-09-20T00:17:19.0556441Z error[E0308]: mismatched types
2019-09-20T00:17:19.0557250Z    --> src/libtest/tests.rs:145:76
2019-09-20T00:17:19.0557613Z     |
2019-09-20T00:17:19.0557613Z     |
2019-09-20T00:17:19.0558019Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.0558548Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.0558778Z     |
2019-09-20T00:17:19.0559103Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.0559379Z 
2019-09-20T00:17:19.0695259Z error[E0308]: mismatched types
2019-09-20T00:17:19.0695586Z    --> src/libtest/tests.rs:145:92
2019-09-20T00:17:19.0695812Z     |
2019-09-20T00:17:19.0695812Z     |
2019-09-20T00:17:19.0696168Z 145 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.0696849Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.0697718Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.0697931Z                found type `bool`
2019-09-20T00:17:19.0697979Z 
2019-09-20T00:17:19.0697979Z 
2019-09-20T00:17:19.0710974Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:19.0711352Z     --> src/libtest/tests.rs:165:45
2019-09-20T00:17:19.0711607Z      |
2019-09-20T00:17:19.0712053Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.0712732Z      |                                             |
2019-09-20T00:17:19.0713047Z      |                                             call expression requires function
2019-09-20T00:17:19.0713282Z      | 
2019-09-20T00:17:19.0713999Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.0713999Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.0714227Z      |
2019-09-20T00:17:19.0714500Z 1068 |     InProcess,
2019-09-20T00:17:19.0714823Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:19.0715132Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.0715366Z      |
2019-09-20T00:17:19.0715686Z 165  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:19.0716048Z 
2019-09-20T00:17:19.0856627Z error[E0308]: mismatched types
2019-09-20T00:17:19.0856943Z    --> src/libtest/tests.rs:165:73
2019-09-20T00:17:19.0857310Z     |
2019-09-20T00:17:19.0857310Z     |
2019-09-20T00:17:19.0857618Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.0858018Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.0858258Z     |
2019-09-20T00:17:19.0858568Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.0858864Z 
2019-09-20T00:17:19.1008714Z error[E0308]: mismatched types
2019-09-20T00:17:19.1009299Z    --> src/libtest/tests.rs:165:89
2019-09-20T00:17:19.1009973Z     |
2019-09-20T00:17:19.1009973Z     |
2019-09-20T00:17:19.1010315Z 165 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1010741Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.1011278Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.1011677Z                found type `bool`
2019-09-20T00:17:19.1011732Z 
2019-09-20T00:17:19.1011732Z 
2019-09-20T00:17:19.1025352Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:19.1025667Z     --> src/libtest/tests.rs:187:45
2019-09-20T00:17:19.1025910Z      |
2019-09-20T00:17:19.1026260Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1026927Z      |                                             |
2019-09-20T00:17:19.1027259Z      |                                             call expression requires function
2019-09-20T00:17:19.1027591Z      | 
2019-09-20T00:17:19.1027844Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.1027844Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.1028051Z      |
2019-09-20T00:17:19.1028304Z 1068 |     InProcess,
2019-09-20T00:17:19.1028748Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:19.1029156Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.1029491Z      |
2019-09-20T00:17:19.1029829Z 187  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:19.1030192Z 
2019-09-20T00:17:19.1186701Z error[E0308]: mismatched types
2019-09-20T00:17:19.1187132Z    --> src/libtest/tests.rs:187:73
2019-09-20T00:17:19.1187343Z     |
2019-09-20T00:17:19.1187343Z     |
2019-09-20T00:17:19.1187652Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1188023Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.1188243Z     |
2019-09-20T00:17:19.1188546Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.1188820Z 
2019-09-20T00:17:19.1342892Z error[E0308]: mismatched types
2019-09-20T00:17:19.1343878Z    --> src/libtest/tests.rs:187:89
2019-09-20T00:17:19.1344164Z     |
2019-09-20T00:17:19.1344164Z     |
2019-09-20T00:17:19.1344500Z 187 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1344901Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.1345577Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.1345910Z                found type `bool`
2019-09-20T00:17:19.1345952Z 
2019-09-20T00:17:19.1345952Z 
2019-09-20T00:17:19.1367961Z error[E0618]: expected function, found enum variant `RunStrategy::InProcess`
2019-09-20T00:17:19.1368283Z     --> src/libtest/tests.rs:205:45
2019-09-20T00:17:19.1368484Z      |
2019-09-20T00:17:19.1368773Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1369629Z      |                                             |
2019-09-20T00:17:19.1369957Z      |                                             call expression requires function
2019-09-20T00:17:19.1370177Z      | 
2019-09-20T00:17:19.1370423Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.1370423Z     ::: src/libtest/lib.rs:1068:5
2019-09-20T00:17:19.1370642Z      |
2019-09-20T00:17:19.1370892Z 1068 |     InProcess,
2019-09-20T00:17:19.1371200Z      |     --------- `RunStrategy::InProcess` defined here
2019-09-20T00:17:19.1371502Z help: `RunStrategy::InProcess` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.1371716Z      |
2019-09-20T00:17:19.1372660Z 205  |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess, Concurrent::No, false);
2019-09-20T00:17:19.1373131Z 
2019-09-20T00:17:19.1523236Z error[E0308]: mismatched types
2019-09-20T00:17:19.1524151Z    --> src/libtest/tests.rs:205:73
2019-09-20T00:17:19.1524481Z     |
2019-09-20T00:17:19.1524481Z     |
2019-09-20T00:17:19.1524812Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1525267Z     |                                                                         ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.1525510Z     |
2019-09-20T00:17:19.1525859Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.1526446Z 
2019-09-20T00:17:19.1662329Z error[E0308]: mismatched types
2019-09-20T00:17:19.1662607Z    --> src/libtest/tests.rs:205:89
2019-09-20T00:17:19.1662801Z     |
2019-09-20T00:17:19.1662801Z     |
2019-09-20T00:17:19.1663108Z 205 |     run_test(&TestOpts::new(), false, desc, RunStrategy::InProcess(tx), Concurrent::No, false);
2019-09-20T00:17:19.1664206Z     |                                                                                         ^^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.1664944Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.1665206Z                found type `bool`
2019-09-20T00:17:19.1665245Z 
2019-09-20T00:17:19.1665245Z 
2019-09-20T00:17:19.1675890Z error[E0618]: expected function, found enum variant `RunStrategy::SpawnPrimary`
2019-09-20T00:17:19.1676225Z     --> src/libtest/tests.rs:223:45
2019-09-20T00:17:19.1676480Z      |
2019-09-20T00:17:19.1677300Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.1678122Z      |                                             |
2019-09-20T00:17:19.1678511Z      |                                             call expression requires function
2019-09-20T00:17:19.1678736Z      | 
2019-09-20T00:17:19.1678959Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:19.1678959Z     ::: src/libtest/lib.rs:1073:5
2019-09-20T00:17:19.1679148Z      |
2019-09-20T00:17:19.1679389Z 1073 |     SpawnPrimary,
2019-09-20T00:17:19.1679680Z      |     ------------ `RunStrategy::SpawnPrimary` defined here
2019-09-20T00:17:19.1679954Z help: `RunStrategy::SpawnPrimary` is a unit variant, you need to write it without the parenthesis
2019-09-20T00:17:19.1680164Z      |
2019-09-20T00:17:19.1680451Z 223  |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary, Concurrent::No, true);
2019-09-20T00:17:19.1680786Z 
2019-09-20T00:17:19.1837351Z error[E0308]: mismatched types
2019-09-20T00:17:19.1837854Z    --> src/libtest/tests.rs:223:76
2019-09-20T00:17:19.1838148Z     |
2019-09-20T00:17:19.1838148Z     |
2019-09-20T00:17:19.1838493Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.1838934Z     |                                                                            ^^^^^^^^^^^^^^ expected struct `std::sync::mpsc::Sender`, found enum `Concurrent`
2019-09-20T00:17:19.1839209Z     |
2019-09-20T00:17:19.1839817Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.1840150Z 
2019-09-20T00:17:19.1984739Z error[E0308]: mismatched types
2019-09-20T00:17:19.1985090Z    --> src/libtest/tests.rs:223:92
2019-09-20T00:17:19.1985326Z     |
2019-09-20T00:17:19.1985326Z     |
2019-09-20T00:17:19.1985866Z 223 |     run_test(&TestOpts::new(), false, desc, RunStrategy::SpawnPrimary(tx), Concurrent::No, true);
2019-09-20T00:17:19.1986378Z     |                                                                                            ^^^^ expected enum `Concurrent`, found bool
2019-09-20T00:17:19.1986939Z     = note: expected type `Concurrent`
2019-09-20T00:17:19.1987193Z                found type `bool`
2019-09-20T00:17:19.1987232Z 
2019-09-20T00:17:19.2491106Z error[E0308]: mismatched types
2019-09-20T00:17:19.2491106Z error[E0308]: mismatched types
2019-09-20T00:17:19.2491433Z    --> src/libtest/tests.rs:519:29
2019-09-20T00:17:19.2491648Z     |
2019-09-20T00:17:19.2491999Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.2492403Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-20T00:17:19.2492989Z     = note: expected type `&TestOpts`
2019-09-20T00:17:19.2493242Z                found type `TestDesc`
2019-09-20T00:17:19.2493277Z 
2019-09-20T00:17:19.2657039Z error[E0308]: mismatched types
2019-09-20T00:17:19.2657039Z error[E0308]: mismatched types
2019-09-20T00:17:19.2657360Z    --> src/libtest/tests.rs:519:35
2019-09-20T00:17:19.2657590Z     |
2019-09-20T00:17:19.2657900Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.2658299Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-20T00:17:19.2658918Z     = note: expected type `TestDesc`
2019-09-20T00:17:19.2659303Z                found type `std::sync::mpsc::Sender<_>`
2019-09-20T00:17:19.2659337Z 
2019-09-20T00:17:19.2801911Z error[E0308]: mismatched types
2019-09-20T00:17:19.2801911Z error[E0308]: mismatched types
2019-09-20T00:17:19.2802189Z    --> src/libtest/tests.rs:519:39
2019-09-20T00:17:19.2802392Z     |
2019-09-20T00:17:19.2802671Z 519 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.2803048Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-20T00:17:19.2803277Z     |
2019-09-20T00:17:19.2804233Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.2804877Z 
2019-09-20T00:17:19.2965558Z error[E0308]: mismatched types
2019-09-20T00:17:19.2965868Z    --> src/libtest/tests.rs:538:29
2019-09-20T00:17:19.2966100Z     |
2019-09-20T00:17:19.2966100Z     |
2019-09-20T00:17:19.2966425Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.2967138Z     |                             ^^^^ expected &TestOpts, found struct `TestDesc`
2019-09-20T00:17:19.2967736Z     = note: expected type `&TestOpts`
2019-09-20T00:17:19.2968093Z                found type `TestDesc`
2019-09-20T00:17:19.2968137Z 
2019-09-20T00:17:19.3122127Z error[E0308]: mismatched types
2019-09-20T00:17:19.3122127Z error[E0308]: mismatched types
2019-09-20T00:17:19.3122420Z    --> src/libtest/tests.rs:538:35
2019-09-20T00:17:19.3122628Z     |
2019-09-20T00:17:19.3122921Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.3123271Z     |                                   ^^ expected struct `TestDesc`, found struct `std::sync::mpsc::Sender`
2019-09-20T00:17:19.3124468Z     = note: expected type `TestDesc`
2019-09-20T00:17:19.3124726Z                found type `std::sync::mpsc::Sender<_>`
2019-09-20T00:17:19.3124776Z 
2019-09-20T00:17:19.3276307Z error[E0308]: mismatched types
2019-09-20T00:17:19.3276307Z error[E0308]: mismatched types
2019-09-20T00:17:19.3276846Z    --> src/libtest/tests.rs:538:39
2019-09-20T00:17:19.3277096Z     |
2019-09-20T00:17:19.3277410Z 538 |     crate::bench::benchmark(desc, tx, true, f);
2019-09-20T00:17:19.3277817Z     |                                       ^^^^ expected struct `std::sync::mpsc::Sender`, found bool
2019-09-20T00:17:19.3278301Z     |
2019-09-20T00:17:19.3278735Z     = note: expected type `std::sync::mpsc::Sender<(TestDesc, TestResult, std::vec::Vec<u8>)>`
2019-09-20T00:17:19.3278988Z 
2019-09-20T00:17:19.4684072Z error: aborting due to 34 previous errors
2019-09-20T00:17:19.4684182Z 
2019-09-20T00:17:19.4684475Z Some errors have detailed explanations: E0308, E0432, E0618.
---
2019-09-20T00:17:19.4983965Z == clock drift check ==
2019-09-20T00:17:19.5004067Z   local time: Fri Sep 20 00:17:19 UTC 2019
2019-09-20T00:17:19.6515210Z   network time: Fri, 20 Sep 2019 00:17:19 GMT
2019-09-20T00:17:19.6517188Z == end clock drift check ==
2019-09-20T00:17:20.2075181Z ##[error]Bash exited with code '1'.
2019-09-20T00:17:20.2111832Z ##[section]Starting: Checkout
2019-09-20T00:17:20.2114498Z ==============================================================================
2019-09-20T00:17:20.2114579Z Task         : Get sources
2019-09-20T00:17:20.2114628Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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)

@tmandry
Copy link
Member Author

tmandry commented Sep 28, 2019

@bors r=alexcrichton p=1

@bors
Copy link
Contributor

bors commented Sep 28, 2019

📌 Commit 3f0254e 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 Sep 28, 2019
@bors
Copy link
Contributor

bors commented Sep 29, 2019

⌛ Testing commit 3f0254e with merge 06c6894...

bors added a commit that referenced this pull request Sep 29, 2019
panic=abort support in libtest

Add experimental support for tests compiled with panic=abort. Enabled with `-Z panic_abort_tests`.

r? @alexcrichton
cc @cramertj
@bors
Copy link
Contributor

bors commented Sep 29, 2019

☀️ Test successful - checks-azure
Approved by: alexcrichton
Pushing 06c6894 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Sep 29, 2019
@bors bors merged commit 3f0254e into rust-lang:master Sep 29, 2019
@tmandry tmandry deleted the libtest-panic-abort branch September 29, 2019 20:22
alexcrichton added a commit to alexcrichton/cargo that referenced this pull request Oct 21, 2019
Recently added in rust-lang/rust#64158 the `-Z panic-abort-tests` flag
to the compiler itself will activate a mode in the `test` crate which
enables running tests even if they're compiled with `panic=abort`.  It
effectively runs a test-per-process.

This commit brings the same support to Cargo, adding a `-Z
panic-abort-tests` flag to Cargo which allows building tests in
`panic=abort` mode. While I wanted to be sure to add support for this in
Cargo before we stabilize the flag in `rustc`, I don't actually know how
we're going to stabilize this here. Today Cargo will automatically
switch test targets to `panic=unwind`, and so if we actually were to
stabilize this flag then this configuration would break:

    [profile.dev]
    panic = 'abort'

In that case tests would be compiled with `panic=unwind` (due to how
profiles work today) which would clash with crates also being compiled
with `panic=abort`. I'm hopeful though that we can perhaps either figure
out a solution for this and maybe even integrate it with the ongoing
profiles work.
bors added a commit to rust-lang/cargo that referenced this pull request Oct 21, 2019
Support rustc's `-Z panic-abort-tests` in Cargo

Recently added in rust-lang/rust#64158 the `-Z panic-abort-tests` flag
to the compiler itself will activate a mode in the `test` crate which
enables running tests even if they're compiled with `panic=abort`.  It
effectively runs a test-per-process.

This commit brings the same support to Cargo, adding a `-Z
panic-abort-tests` flag to Cargo which allows building tests in
`panic=abort` mode. While I wanted to be sure to add support for this in
Cargo before we stabilize the flag in `rustc`, I don't actually know how
we're going to stabilize this here. Today Cargo will automatically
switch test targets to `panic=unwind`, and so if we actually were to
stabilize this flag then this configuration would break:

    [profile.dev]
    panic = 'abort'

In that case tests would be compiled with `panic=unwind` (due to how
profiles work today) which would clash with crates also being compiled
with `panic=abort`. I'm hopeful though that we can perhaps either figure
out a solution for this and maybe even integrate it with the ongoing
profiles work.
dennisschagt added a commit to dennisschagt/newsboat that referenced this pull request May 1, 2020
Needed because rust removed support for "-Zno-landing-pads":
rust-lang/rust@bf45975

This caused our Code Coverage build to fail:
https://travis-ci.com/github/newsboat/newsboat/jobs/326201747#L651-L656

Also adding "-Zpanic_abort_tests" to allow `panic=abort` in libtest:
rust-lang/rust#64158
@davepacheco
Copy link

Hello! This is probably not the best place to ask this, but I wasn't sure where else would be better. I'm trying to figure out how to use this. My goal is to get a core file when my test (either a unit test or an integration test) panics -- e.g., if it blows an assertion. I thought maybe this would happen if I set profile.test.panic = "abort" in Cargo.toml and ran cargo +nightly test -Z panic-abort-tests, but that doesn't seem to happen. I see that it's compiling my integration test with -C panic=abort, but when the test calls panic!, I just get the usual stack trace -- no obvious indication of an abort and no core file. I gather I'm misunderstanding either what this flag does or how to use it? Thanks!

@davepacheco
Copy link

In case it's helpful for anybody else: I tracked down why this behaves the way it does. The implementation in the subprocess installs a panic hook that explicitly exits the process based on the result of the test:
https://github.com/rust-lang/rust/blob/1.45.2/src/libtest/lib.rs#L633

As a result, even though the panic strategy is "abort", we never get to the panic runtime because we've exited already.

Sorry for my ignorance -- I'm still not clear on the intended behavior here.

@tmandry
Copy link
Member Author

tmandry commented Aug 12, 2020

Yes, we have to do something like that to support #[should_panic(expected = "...")], otherwise we don't have a good way of checking the panic message.

I'm not sure about your use case, but if it helps..

  • tests can spawn subprocesses of their own
  • calling std::process::abort() directly should create a core file, assuming your environment is configured for it

@davepacheco
Copy link

@tmandry Thanks. That makes sense. I did find I could do this with the coredump crate. But what's the purpose of the -Z panic-abort-tests flag if the tests can never get to the panic runtime?

@tmandry
Copy link
Member Author

tmandry commented Aug 12, 2020

Without it, you can't have #[should_panic] tests and any tests that fail would exit the test binary immediately, so you would only get partial results.

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.

None yet

7 participants