Commit Graph

6154 Commits

Author SHA1 Message Date
Ralf Jung
84edb76e26 make output bitwidth-independent 2022-06-06 12:35:48 -04:00
Ralf Jung
b39e4c729a rustup 2022-06-06 12:10:40 -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
b1b3836172 fix rustup-toolchain without arguments 2022-06-06 11:44:27 -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
fc8631a737 Auto merge of #2198 - InfRandomness:UNIX-refactor, r=RalfJung
Refactor POSIX to UNIX

This renames the directories containing posix to unix; where applicable,
it also rename functions with the word "posix" to "unix"

Fixes https://github.com/rust-lang/miri/issues/2012
2022-06-06 12:45:32 +00:00
infrandomness
d0a0369a24 Refactor POSIX to UNIX
This renames the directory containing posix to unix; where applicable,
it also rename functions with the word "posix" to "unix"
2022-06-05 22:46:34 +02: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
bors
d312b34feb Auto merge of #2193 - RalfJung:strict, r=RalfJung
do not use int2ptr casts in strict provenance tests
2022-06-05 15:49:55 +00:00
Ralf Jung
4a852126b9 do not use int2ptr casts in strict provenance tests 2022-06-05 11:47:39 -04:00
bors
5f988ab553 Auto merge of #2189 - RalfJung:clippy, r=RalfJung
run Clippy on CI

and fix some things it complains about. Also use `rustup-toolchain` script on CI (reduces code duplication, and good thing to make sure it keeps working, since we recommend it in the docs).

I left `ui_test` out for now; I'll leave those nits to `@oli-obk.` ;)
2022-06-05 15:18:39 +00:00
bors
5a1b09eb9f Auto merge of #2190 - RalfJung:rustup, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/97745
2022-06-04 23:44:29 +00:00
Ralf Jung
32c03080f1 rustup 2022-06-04 19:43:46 -04:00
Ralf Jung
3d30aece83 clippy: cargo-miri 2022-06-04 13:37:37 -04:00
Ralf Jung
151b6b13e0 clippy: main crate 2022-06-04 13:29:00 -04:00
Ralf Jung
bd7f83dc37 run clippy on CI 2022-06-04 13:25:54 -04:00
bors
92c2e3c0bc Auto merge of #2186 - matthiaskrgr:clippy, r=RalfJung
clippy fixes

clippy::redundant_closure
clippy::unnecessary_mut_passed
clippy::single_char_pattern
clippy::clone_on_copy
clippy::into_iter_on_ref
clippy::extra_unused_lifetimes
2022-06-04 15:17:17 +00:00
Matthias Krüger
bcc491a6ba clippy fixes
clippy::redundant_closure
clippy::unnecessary_mut_passed
clippy::single_char_pattern
clippy::clone_on_copy
clippy::into_iter_on_ref
clippy::extra_unused_lifetimes
2022-06-04 17:10:32 +02:00
bors
f8840e683e Auto merge of #2184 - RalfJung:readme, r=RalfJung
fix dangling reference in the README
2022-06-03 18:49:13 +00:00
Ralf Jung
625b4ed341 fix dangling reference in the README 2022-06-03 14:48:45 -04:00
bors
53a2b2f1c3 Auto merge of #2180 - RalfJung:stale, r=RalfJung
delete stale stderr files

`@oli-obk` can we do anything to detect them? Not sure if compiletest does anything smart here.
2022-06-03 12:10:32 +00:00
Ralf Jung
2b9c45f96f delete stale stderr files 2022-06-03 08:10:09 -04:00
bors
8bcb8064dd Auto merge of #2178 - RalfJung:double-ref, r=RalfJung
do not pass TyCtxt by reference
2022-06-02 19:11:46 +00:00
Ralf Jung
e79a331fea do not pass TyCtxt by reference 2022-06-02 15:11:22 -04:00
bors
7f4f6072aa Auto merge of #2177 - DrMeepster:global_allocator_backtrace_test, r=RalfJung
add test for backtrace with global allocator

closes #1996
2022-06-02 11:37:11 +00:00
DrMeepster
0b7a148ad9 add test for backtrace with global allocator 2022-06-01 17:32:01 -07:00
bors
232260bbdc Auto merge of #2176 - RalfJung:test-dirs, r=oli-obk
rename test suite directories

Fixes https://github.com/rust-lang/miri/issues/2154
2022-06-01 15:41:11 +00:00
Ralf Jung
3d634c975c rename test suite directories 2022-06-01 10:53:38 -04:00
bors
749efd2956 Auto merge of #2174 - RalfJung:summary, r=oli-obk
print list of failed tests in summary

compiletest does this and it is quite useful; see e.g. [here](https://github.com/rust-lang/rust/runs/6473917188?check_suite_focus=true). Example output:

![image](https://user-images.githubusercontent.com/330628/171382085-21674f46-9db4-49ef-9c52-2be06b307e28.png)
2022-06-01 13:01:22 +00:00
Ralf Jung
9b9edc7440 print list of failed tests in summary 2022-06-01 08:59:34 -04:00
bors
40306ba6c3 Auto merge of #2175 - RalfJung:xargo, r=oli-obk
bump Xargo

Also use that as a clue to refresh our CI caches.

Fixes https://github.com/rust-lang/miri/issues/705
2022-06-01 12:39:28 +00:00
bors
f7c1b5bb0c Auto merge of #2167 - rust-lang:gesundheit, r=RalfJung
Check that diagnostics happen in the line that they are annotated for

fixes #2131
2022-06-01 11:48:12 +00:00
Oli Scherer
4b100a1b58 Check that diagnostics happen in the line that they are annotated for 2022-06-01 11:47:54 +00:00
Ralf Jung
4f70093805 advanced GHA 2022-06-01 06:45:09 -04:00
Ralf Jung
61265f5f19 fmt 2022-06-01 06:42:11 -04:00
Ralf Jung
1571571e38 also avoid rebuilding cached RTIM 2022-06-01 06:31:08 -04:00
Ralf Jung
81d661f134 bump xargo version, and tweak xargo caching 2022-06-01 06:28:27 -04:00
bors
47771d6b78 Auto merge of #2173 - RalfJung:rustlib, r=oli-obk
different strategy for normalizing Rust stdlib path

`-Zremap-cwd-prefix` has some [unintended side-effects](https://github.com/rust-lang/miri/issues/2172), so we could use regexp-based normalization instead. Unfortunately, this will fail if the user's home directory contains a space.

Fixes https://github.com/rust-lang/miri/issues/2172
2022-06-01 07:22:31 +00:00
Ralf Jung
8997db2ec9 paper over platform differences 2022-05-31 19:00:14 -04:00
Ralf Jung
9a448744a2 different strategy for normalizing Rust stdlib path 2022-05-31 18:37:32 -04:00
bors
1c11fc64b1 Auto merge of #2171 - RalfJung:less-dup, r=RalfJung
reduce some code duplication

`@saethlin` this is what I meant. I had to fiddle a bit to make the lifetimes work, but now it passes rustc. :)
2022-05-31 14:37:52 +00:00
Ralf Jung
62c48b2998 fix some lifetime names 2022-05-31 08:45:01 -04:00
Ralf Jung
eb6d4cdac0 reduce some code duplication 2022-05-31 08:43:17 -04:00
bors
360186b114 Auto merge of #2166 - RalfJung:tests, r=oli-obk
ui_test tweaks

- support multiple filters
- make `./miri check` also cover ui_test
- Run opt-level=4 tests again, but only the "run" tests

r? `@oli-obk`
2022-05-31 05:11:43 +00:00
bors
aa589d3dc7 Auto merge of #2145 - saethlin:zero-size-creation, r=RalfJung
Save a created event for zero-size reborrows

Currently, we don't save a created event for zero-sized reborrows. Attempting to use something from a zero-sized reborrow is surprisingly common, for example on `minimal-lexical==0.2.1` we previously just emit this:
```
Undefined Behavior: attempting a write access using <187021> at alloc72933[0x0], but that tag does not exist in the borrow stack for this location
    --> /root/rust/library/core/src/ptr/mod.rs:1287:9
     |
1287 |         copy_nonoverlapping(&src as *const T, dst, 1);
     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     |         |
     |         attempting a write access using <187021> at alloc72933[0x0], but that tag does not exist in the borrow stack for this location
     |         this error occurs as part of an access at alloc72933[0x0..0x8]
     |
     = help: this indicates a potential bug in the program: it performed an invalid operation, but the rules it violated are still experimental
     = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information

     = note: inside `std::ptr::write::<u64>` at /root/rust/library/core/src/ptr/mod.rs:1287:9
note: inside `minimal_lexical::stackvec::StackVec::push_unchecked` at /root/build/src/stackvec.rs:82:13
    --> /root/build/src/stackvec.rs:82:13
     |
82   |             ptr::write(self.as_mut_ptr().add(self.len()), value);
     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

... backtrace continues...
```
Which leaves us with the question "where did we make this pointer?" because for every other diagnostic you get a "was created by" note, so I suspect people might be tempted to think there is a Miri bug here. I certainly was.

---
This code duplication is so awful, I'm going to take a look at cleaning it up later. The fact that `ptr_get_alloc_id` can fail in this situation makes things annoying.
2022-05-30 23:43:51 +00:00