Commit Graph

426 Commits

Author SHA1 Message Date
Vytautas Astrauskas
421be273cc Add concurrency tests. 2020-04-27 14:26:36 -07:00
Vytautas Astrauskas
325c31e578 Address some of the reviewers comments. 2020-04-27 14:26:36 -07:00
Vytautas Astrauskas
82f17ab917 Implement basic support for concurrency (Linux only). 2020-04-27 14:23:32 -07:00
bors
e06df3a881 Auto merge of #1373 - RalfJung:test-rename, r=RalfJung
rename tests: undefined -> uninit
2020-04-27 10:54:57 +00:00
bors
4556daadc2 Auto merge of #1370 - samrat:add-scalar-size-test, r=RalfJung
Add test to verify that argument size mismatch throws UB

Also, bump up `rust-version`

Closes #1355
2020-04-27 10:33:29 +00:00
Ralf Jung
a5ddaa07eb rename tests: undefined -> uninit 2020-04-27 12:32:03 +02:00
Samrat Man Singh
73f258c451 Replace error-pattern with annotation; remove unreachable line 2020-04-27 15:34:42 +05:30
bors
da940eb91f Auto merge of #1354 - divergentdave:dump-alloc-on-undef-read, r=RalfJung
Print hex dump of alloc on reading undef bytes

Here's a small addition I made locally to the UB diagnostics, in case you're interested in it. This PR calls `dump_alloc()` on the relevant allocation if Miri fails on UB due to reading undefined bytes. This came in handy when diagnosing such an issue in a large program using unsafe Rust, in part because it wasn't deterministic enough to use `-Zmiri-track-alloc-id=`. If you'd like to put this behind another -Z flag, let me know.
2020-04-27 09:33:30 +00:00
Samrat Man Singh
ae9796b9d8 Fix shim_arg_size test for 32-bit machines 2020-04-27 10:00:35 +05:30
Samrat Man Singh
da86c81e39 Add test to verify arg size mismatch throws UB
Also: bump up `rust-version`
2020-04-27 09:37:31 +05:30
Ralf Jung
c46668c556 fix exit code on rustc errors 2020-04-25 11:12:50 +02:00
David Cook
7f92eab3c4 Add test to exercise InvalidUndefBytes 2020-04-23 20:00:25 -05:00
Ralf Jung
73772fede6 adjust for Weak::as_raw -> as_ptr rename 2020-04-20 10:04:17 +02:00
Ralf Jung
70c828b761 test some more extreme cast cases 2020-04-19 09:34:54 +02:00
bors
45113eb6a4 Auto merge of #1325 - RalfJung:float_to_int_unchecked, r=RalfJung
implement float_to_int_unchecked

@hanna-kruppe would be great if you could have a look at this.

`float.rs` tests legal casts. `test_cast` checks that both `as` casts and unchecked casts work (i.e., these are not saturating). The `compile-fail` tests should ensure that illegal casts via the intrinsic are detected as such.

Fixes https://github.com/rust-lang/miri/issues/1264
2020-04-18 08:13:24 +00:00
Ralf Jung
bb38ab4340 use u128::MAX symbolic name 2020-04-18 10:11:45 +02:00
Ralf Jung
0345ee42da some UB gets masked by optimizations 2020-04-18 09:15:59 +02:00
Ralf Jung
c6ab27577b test that we check dynamic actual size of object 2020-04-18 02:06:36 +02:00
Ralf Jung
521e77d712 test that we properly check dynamic alignment 2020-04-17 20:43:54 +02:00
Ralf Jung
e6822d60b3 make sure we find some things without validation or stacked borrows, respectively 2020-04-14 10:23:47 +02:00
Ralf Jung
179e78d0ad make sure our disable flags do not miss all bugs; move type-assert intrinsic tests to their folder 2020-04-14 10:23:47 +02:00
Ralf Jung
f4a15444cf fix comment in alignment test 2020-04-14 09:50:20 +02:00
Ralf Jung
fd8beaf5c4 add option to disable alignment checks 2020-04-13 17:58:03 +02:00
Ralf Jung
17c52d47e7 add tests for invalid float-to-int casts 2020-04-12 12:01:20 +02:00
Ralf Jung
30d07c8616 move error-pattern to inline annotation where possible 2020-04-12 12:01:20 +02:00
Ralf Jung
b2bf4ec2f5 organize compile-fail tests in folders 2020-04-11 11:36:55 +02:00
Ralf Jung
d276d952ff fix unused warnings in tests 2020-04-10 10:27:59 +02:00
bors
325682ad56 Auto merge of #1301 - RalfJung:global-leaks, r=RalfJung
memory reachable through globals is not a leak

Blocked on https://github.com/rust-lang/rust/pull/70762
Fixes https://github.com/rust-lang/miri/issues/940
2020-04-07 17:33:24 +00:00
Ralf Jung
7841f44593 rustup 2020-04-07 19:33:03 +02:00
David Cook
134d6a2faa Add tests, improve test coverage 2020-04-05 14:55:57 -05:00
David Cook
d5d5a56926 Add tests 2020-04-05 13:25:49 -05:00
Ralf Jung
cd132f563e port compile-fail allocator tests to stable API 2020-04-02 13:33:59 +02:00
Ralf Jung
5130aa55a2 adjust stacktrace printing to rustc changes 2020-04-02 09:14:17 +02:00
bors
f4308a0728 Auto merge of #1267 - RalfJung:macos-dtors, r=RalfJung
implement TLS cleanup for macOS

Now that I can run macOS interpretation locally, this was not that hard to fix. ;)
Fixes https://github.com/rust-lang/miri/issues/443
2020-03-28 07:55:42 +00:00
Ralf Jung
c5ef8a656f enable leak tests on macOS 2020-03-27 19:39:35 +01:00
JOE1994
ea836eeb0d remove or update 'ignore-windows' annotations in some tests 2020-03-27 14:18:19 -04:00
Ralf Jung
47b91e619a test unreachable intrinsic 2020-03-25 09:32:15 +01:00
Ralf Jung
d85f09c4e4 platform -> target 2020-03-22 08:55:39 +01:00
Ralf Jung
238ed49a07 detect UB: overflow in copy/write_bytes 2020-03-21 17:54:33 +01:00
Ralf Jung
8acfafe186 test for zero-sized write_bytes to NULL 2020-03-21 17:54:18 +01:00
Ralf Jung
e890d4d5e1 call error location was fixed by rustup 2020-03-21 12:52:23 +01:00
Ralf Jung
5c09047411 fix tests 2020-03-21 10:54:56 +01:00
Ralf Jung
bde3111c61 test windows panic message 2020-03-21 10:17:57 +01:00
Ralf Jung
49051e05ea rustup, and some final message adjustments 2020-03-19 08:41:01 +01:00
Ralf Jung
e1e158e103 adjust error messages for lower-case start 2020-03-19 08:26:08 +01:00
Ralf Jung
77cc0cddd9 add test for validation finding use-after-free 2020-03-19 08:25:08 +01:00
Ralf Jung
1103a10e2c adjust for error reform 2020-03-19 08:25:08 +01:00
Elichai Turkel
0826899ca0
Remove uninhabit/zeroed tests to a new test file for abort checking 2020-03-18 14:14:23 +02:00
Ralf Jung
8a26a288c2 rustup 2020-03-16 21:32:57 +01:00
Ralf Jung
497fbcbf44 rustup, fix for intrinsic rename and transmute error change 2020-03-14 09:27:35 +01:00
Ralf Jung
5531a79f4c rustup, test Abort terminator 2020-03-12 20:48:04 +01:00
Ralf Jung
5ef48593fb adjust error 2020-03-09 17:03:39 +01:00
Christian Poveda
8392a0c589
only expose environ on linux 2020-03-08 10:16:31 -05:00
Christian Poveda
18a71ef7b3
minor corrections 2020-03-07 11:35:00 -05:00
Christian Poveda
6eccc809f2
test that environ gets deallocated on changes 2020-03-07 09:39:55 -05:00
Ralf Jung
148269dd4b finally stop using min/max_value and the integer modules 2020-03-04 13:01:06 +01:00
Ralf Jung
db0d03229c fix allocator tests 2020-03-04 10:19:35 +01:00
Ralf Jung
88c45f9891 adjust for rustc changes 2020-03-02 13:51:08 +01:00
Ralf Jung
274ae0438f add an option to disable Stacked Borrows 2020-02-24 16:22:02 +01:00
Ralf Jung
8acf52b3ca fix compile-fail tests to avoid libstd debug assertions 2020-02-16 14:01:00 +01:00
Ralf Jung
d208a5fe3b rustup; fix generator test 2020-02-07 14:02:27 +01:00
Ralf Jung
5d2caef3ce also test div-by-minus-1 2020-02-06 11:24:38 +01:00
Ralf Jung
4b6a0d7a8e bump rustc; adjust tests 2020-02-06 11:20:28 +01:00
Ralf Jung
e0adfe4d45 new compile-fail test involving non-reborrowing-cast-to-raw 2020-01-30 12:22:15 +01:00
Tim Diekmann
3d8bf92a11
Rename Alloc to AllocRef
Required to land https://github.com/rust-lang/rust/pull/68529. Please see that PR for details. The CI is expected to fail until the PR is landed.
2020-01-29 04:10:33 +01:00
Ralf Jung
e952e37a39 compile-fail tests work with optimizations now 2019-12-29 12:38:40 +01:00
Oliver Scherer
d9859c83fc Rustup to rustc 1.42.0-nightly (9ff30a781 2019-12-21) 2019-12-21 11:45:09 +01:00
Ralf Jung
74ef63ff0a the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
Ralf Jung
f0d43872ad add test for sketchy vtable 2019-12-13 13:19:48 +01:00
Ralf Jung
cefc592273 bump Rust, fix error messages 2019-12-08 01:45:41 +01:00
Ralf Jung
6d8e87111b bump Rust for exact_div fix 2019-12-03 17:37:42 +01:00
Ralf Jung
ae53b1222a fix and expand panic tests 2019-12-02 16:04:31 +01:00
Ralf Jung
dcdd68b936 also indicate abort via new MachineStop variant 2019-12-02 09:13:58 +01:00
Ralf Jung
6941caf1df typo 2019-11-22 18:12:10 +01:00
Ralf Jung
6888555ca9 rustup for never stabilization 2019-11-22 09:50:22 +01:00
Ralf Jung
5cef4666e6 rename panic=abort tests to panic_abort 2019-11-19 22:44:07 +01:00
Aaron Hill
b06d99b8a0
Ignore '-C panic=abort' tests for now
We are currently building `libpanic_abort` with the wrong panic
strategy, due to Xargo missing a hack used by `bootstrap`.
2019-11-17 08:40:34 -05:00
Aaron Hill
08d3fbc76b
Support unwinding after a panic
Fixes #658

This commit adds support for unwinding after a panic. It requires a
companion rustc PR to be merged, in order for the necessary hooks to
work properly.

Currently implemented:
* Selecting between unwind/abort mode based on the rustc Session
* Properly popping off stack frames, unwinding back the caller
* Running 'unwind' blocks in Mir terminators

Not yet implemented:
* 'Abort' terminators

This PR was getting fairly large, so I decided to open it for review without
implementing 'Abort' terminator support. This could either be added on
to this PR, or merged separately.
2019-11-17 08:34:25 -05:00
Ralf Jung
64244e9a18 do full deref-check before reborrowing 2019-11-14 10:24:02 +01:00
Ralf Jung
428fc531d8 silence a lint that catches the bug statically 2019-11-07 09:44:00 +01:00
Ralf Jung
1f8cb476ea fix test erorr msg 2019-11-06 09:24:26 +01:00
Ralf Jung
c4f1d3f488 test that 0 cannot be offset-inbounds by 0 2019-11-06 09:24:26 +01:00
Ralf Jung
fcf0f886d4 adjust tests 2019-11-03 10:15:55 +01:00
Christian Poveda
61da8b8428 Add OsString from/to bytes helper functions 2019-10-18 09:47:19 -05:00
Ralf Jung
8ecd767791 fix test failure from diagnostics change 2019-09-29 11:30:28 -04:00
Christian Poveda
145a5826d5 Check that chdir fails for non-utf8 paths 2019-09-24 17:28:38 -05:00
Oliver Scherer
b952584186 Rustup to 1.39.0-nightly (1e869133b 2019-09-09) 2019-09-09 13:00:20 +02:00
Ralf Jung
f67af5a1c2 test too big slice 2019-08-31 08:41:55 +02:00
Ralf Jung
cecbe1611b test for invalid wide raw ptr 2019-08-29 17:19:09 +02:00
Ralf Jung
94cd0ce734 fix test failure due to my own lint 2019-08-18 11:16:02 +02:00
Ralf Jung
2f95d4d50c remove dead code 2019-08-15 11:01:03 +02:00
Ralf Jung
60a0688185 adjust tests for eager pointer checks on deref 2019-08-15 11:01:03 +02:00
Ralf Jung
b93629262d test that even &Cell must be dereferencable 2019-08-09 19:22:47 +02:00
bors
b09ae31da0 Auto merge of #871 - RalfJung:miri-rustc-cleanup, r=RalfJung
Cleanup after rustc bootstrap tests Miri with a separate libstd

Should only be merged after https://github.com/rust-lang/rust/pull/63162 got the green light.
2019-08-08 20:43:47 +00:00
Ralf Jung
d26917a9d6 fix for latest rustc 2019-08-05 10:45:48 +02:00
Ralf Jung
f47e58950b check that atomics are sufficiently aligned, and add test 2019-08-04 10:30:42 +02:00
Ralf Jung
a41ec9aacb adjust error messages in tests 2019-08-03 20:54:57 +02:00
Ralf Jung
bff6b05424 more consistent test name 2019-08-03 17:27:50 +02:00
Ralf Jung
773f6aeb4c remove some compile-fail tests that now work 2019-08-03 15:01:04 +02:00
Ralf Jung
2973063fa3 test dangling ZST deref 2019-08-02 14:26:15 +02:00