Commit Graph

152 Commits

Author SHA1 Message Date
Ralf Jung
9a448744a2 different strategy for normalizing Rust stdlib path 2022-05-31 18:37:32 -04:00
Oli Scherer
f1756c3ddd Add a custom ui test runner and move all tests to it 2022-05-25 13:31:26 +00:00
Ralf Jung
a57c30118a port cargo-miri to edition 2021 2022-04-09 11:17:16 -04:00
Alex Touchet
79a1001b39 Use SPDX license format 2022-04-04 15:52:09 -07:00
Ben Kimock
65125df1cd Consider the cargo workspace when checking if a frame is local 2022-03-18 16:28:13 -04:00
klensy
45442c80b8 update crate rustc_version 0.3 -> 0.4 to remove some deps 2022-01-03 02:47:42 +03:00
Ralf Jung
e51810df2c add and document MIRI_LIB_SRC env var to set the source from which Miri builds the standard library 2021-12-23 16:04:09 +01:00
Ralf Jung
b44f7ea079 require xargo 0.3.23 2021-12-16 15:20:58 +01:00
Ralf Jung
6dcb5389cd update lockfile 2021-12-14 18:20:03 +01:00
Ralf Jung
5d71528e4d hack to work around RA quirk 2021-11-25 17:37:36 -05:00
Ralf Jung
a15539e911 run rustdoc with the miri cfg flag 2021-11-14 12:19:58 -05:00
Smitty
5aecd2811e One character aliases for cargo-miri run/test
The main `cargo` command supports `cargo r` as an alias for
`cargo run`, and `cargo t` as an alias for `cargo test`. This adds
support to them in cargo-miri for consistency.
2021-09-11 12:00:59 -04:00
Ralf Jung
cffa1d325c fmt cargo-miri 2021-07-11 14:27:07 +02:00
hyd-dev
e3fca9b3f1
Import std::process::self 2021-07-02 16:39:43 +08:00
hyd-dev
08236912a7
Improve doc comment 2021-06-27 23:10:09 +08:00
hyd-dev
7d310aa836
Fix .expect() message 2021-06-27 23:08:38 +08:00
hyd-dev
e751eeb197
drop(cmd.arg(arg)) -> cmd.arg(arg); 2021-06-27 23:07:15 +08:00
hyd-dev
1692932966
Show error if --target-dir is provided more than once 2021-06-26 22:36:05 +08:00
hyd-dev
8f87903ec9
Fix typo 2021-06-26 22:22:40 +08:00
hyd-dev
2ced7ecb9f
ArgFlagValueWithOtherArgsIter -> ArgSplitFlagValue 2021-06-26 22:21:07 +08:00
hyd-dev
c3ad18256d
long closure -> function 2021-06-26 22:21:07 +08:00
hyd-dev
2d17b5a550
Use miri inside the target directory used by rustc as Miri's target directory 2021-06-25 01:09:10 +08:00
hyd-dev
d1de0843ed
Change preexisting "doc-test" to "doctest" 2021-05-27 19:48:07 +08:00
hyd-dev
43db2aa5a9
Change "Doc-tests" in the comment to "Doctests" 2021-05-27 19:45:10 +08:00
hyd-dev
773eb1e970
"doc-tests" -> "doctests" 2021-05-27 18:45:21 +08:00
hyd-dev
f42a6d1026
Skip doctests of proc-macro crates 2021-05-27 07:03:05 +08:00
Ralf Jung
7b3566096c configure rustfmt; fmt cargo-miri 2021-05-16 11:11:35 +02:00
Ralf Jung
64f128c456 support building Miri outside a git repo 2021-05-15 14:36:53 +02:00
bors
58436e942a Auto merge of #1769 - RalfJung:remove-compat, r=oli-obk
remove compatibility code for passing miri flags via cargo arguments

With https://github.com/rust-lang/miri/pull/1540, we deprecated `cargo miri test -- -Zmiri-disable-stacked-borrows` as a style of passing flags to Miri, introducing `MIRIFLAGS="-Zmiri-disable-stacked-borrows" cargo miri test` instead. This made `cargo miri` more compatible with `cargo`; both now behave the same in terms of argument parsing.

However, to avoid breaking things, I introduced some backwards compatibility hack such that the old way would still work. Six months later, I think it is time to remove that hack.
2021-04-22 07:47:56 +00:00
Ralf Jung
6834944fd3 fix MIRI_BE_RUSTC value during sysroot build 2021-04-18 12:29:31 +02:00
Ralf Jung
eaba4b2d2a remove compatibility code for passing miri flags via cargo arguments 2021-04-10 14:07:46 +02:00
hyd-dev
3dff1d4fcd
Don't use MIRI_DEFAULT_ARGS to compile host crates 2021-04-09 00:57:59 +08:00
Ralf Jung
2f6dff6da8 nits and fix non-deterministic test output 2021-04-05 13:18:59 +02:00
Ralf Jung
f9bd6b0756 nits; test running no doctests 2021-04-05 12:46:36 +02:00
Ralf Jung
e66a89c8af avoid some dead code and test no_run tests 2021-04-05 12:37:22 +02:00
Ralf Jung
29bc8a57b0 add test for compile_fail; de-duplicate sysroot forwarding 2021-04-05 12:16:31 +02:00
hyd-dev
65597951b7 Fix sysroot for rustdoc 2021-04-05 11:56:13 +02:00
Ralf Jung
9083e00b2c resolve semantic conflicts 2021-04-05 11:55:53 +02:00
Ralf Jung
dd393f21c7 make attempt to cross-interpret a hard error 2021-04-05 11:48:37 +02:00
Tristan Dannenberg
4fccde54ac make cargo-miri run doc-tests 2021-04-05 11:48:17 +02:00
Ralf Jung
8e661cc47e bump cargo-miri dependencies 2021-04-04 12:01:32 +02:00
Ralf Jung
0f7c01527a 'cargo update' all the things 2021-04-04 11:11:19 +02:00
hyd-dev
9c1342b152
Clarify that the "dep-info" is fake and add a newline 2021-02-28 15:57:49 +08:00
hyd-dev
49cd383537
Create stub .d files 2021-02-28 04:56:20 +08:00
Ralf Jung
3e987e127c create more fake files for cdylibs and staticlibs 2021-02-27 13:07:40 +01:00
hyd-dev
eec5423aa7
Stop skipping cdylib 2021-02-15 20:43:27 +08:00
hyd-dev
c0eb13ba2a
Patch --extern arguments in phase_cargo_rustc as well 2021-02-15 20:43:27 +08:00
hyd-dev
56250ccbf2
Extract --extern filenames patching code to forward_patched_extern_arg()
Co-authored-by: Tristan Dannenberg <dtristan@hotmail.de>
2021-02-15 20:43:27 +08:00
hyd-dev
80112820fd
[cargo-miri] Don't skip rlib crates 2021-02-14 16:27:20 +08:00
bors
853254f467 Auto merge of #1675 - hyd-dev:proc-macro-unit-test, r=RalfJung
[cargo-miri] Skip unit tests of `proc-macro` crates

Fixes #1660.
2021-01-24 15:50:51 +00:00
hyd-dev
ecab8a4fae
Skip unit tests of proc-macro crates 2021-01-24 23:48:06 +08:00
Ralf Jung
225e255cfe prefer build-time env vars over run-time values 2021-01-23 16:51:29 +01:00
hyd-dev
eae95693d8
Add ArgFlagValueIter 2021-01-19 01:18:45 +08:00
Ralf Jung
ba0d229752 rustup + cargo-miri 'cargo update' 2020-12-21 10:53:55 +01:00
Ralf Jung
330ec0acdb enable overflow checks in the standard library 2020-11-07 15:56:25 +01:00
Ralf Jung
1044099c19 disable debug assertions in the standard library 2020-10-28 12:43:11 +01:00
Camelid
e9b8693aaa Don't force-install xargo
Previously miri used `cargo install xargo -f` which shouldn't be
necessary anymore since `cargo install` will now upgrade without `-f`.

The only reason I can see to use `-f` is from the cargo docs:

> This is also useful if something has changed on the system that you
> want to rebuild with, such as a newer version of `rustc`.

See the [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/why.20does.20miri.20require.20xargo/near/214351239).
2020-10-23 11:48:34 -07:00
Aaron Hill
05bb560de2
Enable backtrace feature in the generated Xargo.toml
This allows the normal std panic hook to print a backtrace if
`RUST_BACKTRACE=1` and `-Z miri-disable-isolation` are set
2020-10-20 18:27:55 -04:00
Ralf Jung
5058ec18f1 fix for rlib/cdylib crates in dependency tree 2020-10-07 19:42:33 +02:00
Ralf Jung
4dda2ad5b4 support non-rlib extern files 2020-09-21 12:46:18 +02:00
Ralf Jung
88b9c2173e also support old 'cargo miri run -- -- args' style 2020-09-21 09:10:04 +02:00
bors
84a4514254 Auto merge of #1549 - RalfJung:panic-abort, r=oli-obk
support panic=abort

This adds support for abort-on-panic (https://github.com/rust-lang/miri/issues/1058). To achieve this, we insert `cargo-miri` as `RUSTC` when building the standard library, and patch the rustc flags in a way similar to what bootstrap does.

However, this is currently not supported on Windows as the Windows code uses inline assembly to cause an abort (?!?). I'll submit a rustc PR with some `cffg(miri)` to make that work. (EDIT: that would be https://github.com/rust-lang/rust/pull/76871)

Cc `@Aaron1011` r? `@oli-obk`
2020-09-18 11:41:04 +00:00
Ralf Jung
32cdb7131b support panic=abort 2020-09-18 13:10:18 +02:00
Ralf Jung
6be8761e47 update for major version bumps 2020-09-18 12:17:09 +02:00
Ralf Jung
e9e67c97cc cargo update main crates 2020-09-17 20:08:18 +02:00
Ralf Jung
ae859c3f7b add comment mentioning alternative approach 2020-09-17 17:33:47 +02:00
Ralf Jung
18483b4d5e make (not yet actually used) doctest actually use the crate, and fix a comment 2020-09-17 17:33:47 +02:00
Ralf Jung
f7612f71bc more consistent error capitalization 2020-09-17 17:33:47 +02:00
Ralf Jung
b244a2ddaa make sure subcrate tests have the right cwd 2020-09-17 17:33:47 +02:00
Ralf Jung
113a335c3e test propagating env vars from build.rs to binary 2020-09-17 17:33:47 +02:00
Ralf Jung
33c669679e test 'harness=false' tests 2020-09-17 17:33:47 +02:00
Ralf Jung
174a92c39a detect when the user passes Miri's flags the old way, and support this for now 2020-09-17 17:33:47 +02:00
Ralf Jung
2205ed5bbb show proper warning about not running doctests 2020-09-17 17:33:47 +02:00
Ralf Jung
ba3b354af9 update comment
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2020-09-17 17:33:47 +02:00
Ralf Jung
74fdb5cf2c patch away --error-format and --json so that errors are rendered properly 2020-09-17 17:33:47 +02:00
Ralf Jung
119bf4d607 forward build-time env vars to binary, and test that we do 2020-09-17 17:33:46 +02:00
Ralf Jung
c793d6036a handle binary suffices (for Windows); stop deleting fake binary 2020-09-17 17:29:19 +02:00
Ralf Jung
53eab7195a make our filename handling work better across platforms 2020-09-17 17:29:19 +02:00
Ralf Jung
147330cc36 even when not linking, create stub .rlib files to fool cargo 2020-09-17 17:29:19 +02:00
Ralf Jung
0019fe2459 fix typo
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2020-09-17 17:29:19 +02:00
Ralf Jung
c41a039c56 patch --extern and --emit; test suite passes now! 2020-09-17 17:29:19 +02:00
Ralf Jung
7ee2729824 it actually runs tests now! 2020-09-17 17:29:19 +02:00
Ralf Jung
e2119dc94d stub JSON information flow from cargo-build-time to run-time 2020-09-17 17:29:19 +02:00
Ralf Jung
16afe1a234 towards letting cargo do binary selection: wrappers and runners set up 2020-09-17 17:29:19 +02:00
Ralf Jung
ebc3b71881 also detect Azure CI environments 2020-09-13 21:10:29 +02:00
David Cook
64e2d3e2d0 Review comments 2020-08-27 05:00:56 -05:00
David Cook
40847abd5f Review comments 2020-08-26 18:41:01 -05:00
David Cook
3bc8302a54 Support --test/--bin/--lib in cargo-miri 2020-08-25 19:00:46 -05:00
Jubilee Young
2619b4fa18 Bump cargo_metadata to 0.11 2020-08-21 01:37:56 -07:00
Ralf Jung
cda255cfb4 rustup; inner_deref has been stabilized 2020-08-03 14:20:46 +02:00
Ralf Jung
797436cefb only check-build the dummy xargo project 2020-07-29 18:21:32 +02:00
Ralf Jung
ee39ac9840 rustup for new folder layout 2020-07-29 14:27:14 +02:00
Ralf Jung
15466e00b0 go back to using canonicalize() 2020-07-11 11:07:17 +02:00
Ralf Jung
2fbc4aa7ca
Cleanup code
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-07-09 13:02:42 +02:00
Ralf Jung
ee056ccf7b better way to get an absolute path 2020-07-09 12:45:35 +02:00
Ralf Jung
7d9d74e065 on Windows, strip the '\\?\' prefix from the canonical path 2020-07-09 08:59:47 +02:00
Ralf Jung
ab65cb3c67 support relative XARGO_RUST_SRC 2020-07-05 20:01:12 +02:00
Ralf Jung
ac454a2485 cargo-miri: allow overwriting miri command, and make that consistent with compiletest 2020-05-28 08:53:44 +02:00
Ralf Jung
35964b10b0 no workspace as that is incompatible with the rustc submodule 2020-05-28 08:53:44 +02:00
Ralf Jung
7fcf92dfea re-add some fake dependencies to avoid rebuilds 2020-05-28 08:53:44 +02:00