Commit Graph

1660 Commits

Author SHA1 Message Date
Ralf Jung d194e9823c rustup 2022-06-16 11:18:09 -07:00
Ralf Jung 8ebdad0615 organize more files into folders, and run the weak-mem consistency test as the very first since it is so slow 2022-06-13 09:08:14 -07:00
bors 9642534a33 Auto merge of #2179 - RalfJung:rustc, r=oli-obk
test ui output also in rustc test suite

`@oli-obk` when I just tried this locally (`./x.py test src/tools/miri --stage 0`), it worked fine. What differences had you seen before?
2022-06-13 13:13:29 +00:00
bors 2bbb70f584 Auto merge of #2203 - RalfJung:deprecate, r=oli-obk
deprecate -Zmiri-allow-uninit-numbers and -Zmiri-allow-ptr-int-transmute

Cc https://github.com/rust-lang/miri/issues/2187 https://github.com/rust-lang/miri/issues/2188
2022-06-13 10:23:42 +00:00
Ralf Jung 6ed05d976e bless 2022-06-11 22:34:01 -07:00
Ralf Jung 069d8fdb71 test for Stacked Borrows error during vtable validation 2022-06-11 17:42:23 -07:00
InfRandomness 3e03054ef0 Add getpid shim 2022-06-11 11:28:50 +02:00
Ralf Jung 2b35dd514e linux-futex test: ensure we join all threads 2022-06-07 17:03:11 -04:00
Ralf Jung 61f5680da0 add stdlib test for TLS dtor order 2022-06-07 07:58:21 -04:00
Ralf Jung 11a8b3a00b bless tests 2022-06-06 20:17:39 -04:00
Ralf Jung bf372a8fbc remove warning about thread support being experimental 2022-06-06 20:16:02 -04:00
Ralf Jung b64c9a0a83 make scheduler preemptive, with configurable preemption rate 2022-06-06 20:16:02 -04:00
Ralf Jung 89edc355e8 bless Windows 2022-06-06 19:48:21 -04:00
Ralf Jung 14913e993b deprecate -Zmiri-allow-uninit-numbers and -Zmiri-allow-ptr-int-transmute 2022-06-06 16:07:30 -04:00
Andy Wang 1b32d14255 Make racy imperfectly overlapping atomic access unsupported instead of UB
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:16:02 +01:00
Andy Wang 1379036713 Simplify known C++20 inconsistency test 2022-06-06 19:16:01 +01:00
Andy Wang 65f39bd5cf Move tests to new directories 2022-06-06 19:16:01 +01:00
Andy Wang 6d0c76ea1b Specify only perfectly overlapping accesses can race 2022-06-06 19:16:01 +01:00
Andy Wang 8215702d5a Refer to GitHub issue on overwritten init value 2022-06-06 19:16:00 +01:00
Andy Wang 4a07f78dad Forbade all racing mixed size atomic accesses 2022-06-06 19:16:00 +01:00
Andy Wang a7c832b04a Wording improvements
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:15:59 +01:00
Andy Wang 6a73dedb36 Update experimental threading warning 2022-06-06 19:15:59 +01:00
Andy Wang bfa56454e9 Split extra_cpp tests into sound and unsafe 2022-06-06 19:15:58 +01:00
Andy Wang 613d60db0b Allow non-racy mixed size accesses 2022-06-06 19:15:58 +01:00
Andy Wang 7dcb19ead4 Add rust-only operation tests 2022-06-06 19:15:57 +01:00
Andy Wang dafd813c16 Move transmute into a separate function 2022-06-06 19:15:57 +01:00
Andy Wang 5ddd4eff03 Spelling, punctuation and grammar
Co-authored-by: Ralf Jung <post@ralfj.de>
2022-06-06 19:15:56 +01:00
Andy Wang 31c01415cb Replace yield_now() with spin loop hint 2022-06-06 19:15:55 +01:00
Andy Wang e2002b4c65 Amend experimental thread support warnings 2022-06-06 19:15:55 +01:00
Andy Wang 92145373c3 Put the initialisation value into the store buffer 2022-06-06 19:15:55 +01:00
Andy Wang 6b54c92377 Throw UB on imperfectly overlapping access 2022-06-06 19:15:54 +01:00
Andy Wang 13e3465346 Reduce the number of runs in consistency tests 2022-06-06 19:15:25 +01:00
Andy Wang 7d874db213 Add tests showing weak memory behaviours 2022-06-06 19:15:25 +01:00
Andy Wang f729f28925 Move cpp20_rwc_syncs into compile-fail 2022-06-06 19:15:23 +01:00
Andy Wang 32627d5abb Disable weak memory emulation on scheduler-dependent data race tests 2022-06-06 19:15:23 +01:00
Andy Wang a71b10381e Add imperfectly overlapping test 2022-06-06 19:15:22 +01:00
Andy Wang cf266584b7 Comment out and provide context to C++20 test 2022-06-06 19:15:21 +01:00
Andy Wang e7698f4f07 Implement weak memory emulation 2022-06-06 19:15:20 +01:00
Andy Wang 16315b1540 Add test cases 2022-06-06 19:15:20 +01:00
Ralf Jung 84edb76e26 make output bitwidth-independent 2022-06-06 12:35:48 -04:00
Ralf Jung 7f5cfa54d9 port some tests away from flags we want to remove 2022-06-06 11:44:36 -04:00
Ralf Jung 34d4928dce addr no longer exposes :) 2022-06-06 11:43:25 -04:00
Ralf Jung 63625b0397 adjust for better provenance control 2022-06-06 11:43:25 -04:00
bors 2eae474673 Auto merge of #2197 - RalfJung:round-robin, r=RalfJung
make Miri's scheduler proper round-robin

When thread N blocks or yields, we activate thread N+1 next, rather than always activating thread 0. This should guarantee that as long as all threads regularly yield, each thread eventually takes a step again.

Fixes the "multiple loops that yield playing ping-pong" part of https://github.com/rust-lang/miri/issues/1388.
`@cbeuw` I hope this doesn't screw up the scheduler-dependent tests you are adding in your PR.
2022-06-05 18:37:07 +00:00
Ralf Jung 34b359be1e more spin-loop-tests 2022-06-05 14:36:49 -04:00
Ralf Jung 47745380cd make Miri's scheduler proper round-robin 2022-06-05 14:22:00 -04:00
bors 0fbe710012 Auto merge of #2194 - RalfJung:race, r=RalfJung
add interesting data race test

This interesting testcase came up in https://github.com/rust-lang/miri/issues/2192.
2022-06-05 16:38:53 +00:00
Ralf Jung b2832008e2 add interesting data race test 2022-06-05 12:38:34 -04:00
Ralf Jung 4a852126b9 do not use int2ptr casts in strict provenance tests 2022-06-05 11:47:39 -04:00
Ralf Jung 2b9c45f96f delete stale stderr files 2022-06-03 08:10:09 -04:00