Commit Graph

778 Commits

Author SHA1 Message Date
Ralf Jung
b29cb7d551 avoid catching errors 2019-07-03 10:56:25 +02:00
Ralf Jung
8ec25066e7 make a test noseed for now that does not work with intptrcast yet 2019-07-03 10:47:28 +02:00
Ralf Jung
eb4128fb42 don't call Stacked Borrows hooks at all when validation is disabled 2019-07-03 10:47:28 +02:00
Ralf Jung
44298d86f0 dont add the -Zmiri-seed flag twice 2019-07-03 10:47:25 +02:00
Ralf Jung
ccbc035f6a run all run-pass tests with intrptrcast. makes many of them fail! 2019-07-02 22:20:37 +02:00
Ralf Jung
8d8481fed5 fix outdated test name: overalign -> align 2019-07-02 13:02:48 +02:00
bors
2a4c4ade30 Auto merge of #809 - RalfJung:intptrcast, r=RalfJung
use intptrcast for heap_allocator test; then it should work on Windows
2019-06-30 21:19:56 +00:00
Ralf Jung
cb6d4f0c9a test even more size-alignment combinations. found a bug in libstd! 2019-06-30 21:23:48 +02:00
Ralf Jung
709b474859 fix minimal alignment for system allocation functions 2019-06-30 21:10:47 +02:00
Ralf Jung
78261b788d fix setting rustc flags 2019-06-30 19:10:09 +02:00
bors
72b2e1045d Auto merge of #806 - varkor:patch-1, r=RalfJung
Fix `unused_must_use` inside `Box`

After https://github.com/rust-lang/rust/pull/62228, this will be linted against (and causes the test to fail). (This blocks https://github.com/rust-lang/rust/pull/62228.)
2019-06-30 15:07:03 +00:00
Ralf Jung
0ea4b50025 Miri is not deterministic any more 2019-06-30 17:02:20 +02:00
Ralf Jung
b067313552 use intptrcast for heap_allocator test; then it should work on Windows 2019-06-30 16:56:16 +02:00
Ralf Jung
e44d38e051 improve comment 2019-06-30 16:45:41 +02:00
Ralf Jung
db6283b884 better name for a test: threads -> sync 2019-06-30 16:44:25 +02:00
varkor
5d4aae8c05
Fix unused_must_use inside Box
After https://github.com/rust-lang/rust/pull/62228, this will be linted against (and causes the test to fail).
2019-06-30 15:31:14 +01:00
Ralf Jung
11457a4ad9 fix comparing function pointers with intptrcast 2019-06-30 11:21:31 +02:00
Ralf Jung
0bb50ada34 make sure we catch alignment problems even with intrptrcast 2019-06-29 14:31:54 +02:00
Ralf Jung
afe42625e5 test pointer string formatting 2019-06-28 20:42:00 +02:00
Christian Poveda
7fbf8e53a2 Fix alignment of base addresses 2019-06-26 09:08:28 -05:00
Christian Poveda
792d665a1f Fix merge conflicts 2019-06-25 00:57:33 -05:00
Ralf Jung
7e7b5d42ba
Apply suggestions from code review
Co-Authored-By: Oliver Scherer <github35764891676564198441@oli-obk.de>
2019-06-24 14:50:27 +02:00
Ralf Jung
4d65aa8f20 expand and better explain alignment check tests 2019-06-24 08:40:45 +02:00
Ralf Jung
4dc188a60e adjust for refactored memory pointer checks 2019-06-23 20:19:26 +02:00
Christian Poveda
dd732e5862 Force intptrcast for binary operations 2019-06-22 09:25:16 -05:00
Christian Poveda
e57447014d Duplicate compile-fail tests for intptrcast 2019-06-21 16:32:54 -05:00
Ralf Jung
5472755f16 add a failing test where an immovable generator gets moved 2019-06-21 21:48:27 +02:00
Ralf Jung
04fa38dd1b allow some inequality comparisons between pointers and integers 2019-06-20 16:38:55 +02:00
Ralf Jung
7ce36226e6 implement and test unchecked_{add,sub,mul} intrinsics 2019-06-16 11:10:33 +02:00
Ralf Jung
cf748149ce test unchecked_rem 2019-06-16 11:10:33 +02:00
Ralf Jung
fc90124489 test exact_div UB detection 2019-06-16 11:10:33 +02:00
Kenny Goodin
46b6a3fb7f Add more missing math functions
Add missing functions for atan2, cosh, sinh, and tan.
Also add f32 calls and tests for cbrt and hypot.
2019-06-13 22:28:22 -04:00
Kenny Goodin
535914e3dc Implement cbrt and hypot function calls
Test cases are added to `tests/run-pass/intrinsics-math.rs`
2019-06-12 15:44:30 -04:00
Ralf Jung
e2f114a5e0 test FMA a bit more 2019-06-11 19:41:43 +02:00
Ralf Jung
9c9a947bf4 test more enum-int-cast code paths 2019-06-11 19:41:43 +02:00
Ralf Jung
5e07ac335f implement min and max floating point intrinsics 2019-06-11 19:41:43 +02:00
Ralf Jung
b0b082d4d8 do not handle MIRI_SYSROOT in the driver at all, rely fully on the --sysroot flag 2019-06-09 17:10:04 +02:00
Dylan MacKenzie
1ceb81b345 Use in-core implementation of type_name.
We bump `rust-version` to pick up the new impl from
https://github.com/rust-lang/rust/pull/61498 and add a test.
2019-06-05 22:36:53 -07:00
Ralf Jung
27a66a1e42 test for no-validation-only failure 2019-06-04 13:21:04 +02:00
Ralf Jung
9f48b3029c test that we cannot access unescaped static memory with a raw ptr 2019-06-02 22:16:02 +02:00
Ralf Jung
e03255d625 fix existing tests
fix thread-local example to no longer write to pointers derived from a shared ref;
fix compile-fail test
2019-06-02 22:16:02 +02:00
Ralf Jung
dafd2e7202 rustup for ... deprecation 2019-06-01 10:04:49 +02:00
Ralf Jung
c748323eb3 move fn_item/ptr tests to closures file 2019-05-30 11:01:22 +02:00
Ralf Jung
badbd57cee update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
Ralf Jung
0dfc1c97c5 test weak_into_raw 2019-05-29 19:36:16 +02:00
Ralf Jung
381c2897b0 test for pointer wrapping ICE 2019-05-28 22:46:56 +02:00
Ralf Jung
f10ab1991c fix error pattern 2019-05-27 19:37:31 +02:00
Ralf Jung
74f98b3803 test for new read rules 2019-05-21 15:43:18 +02:00
Ralf Jung
0c85dbf3df prepare for MaybeUninit stabilization 2019-05-20 10:53:34 +02:00
Ralf Jung
4b9e1544c2 give up on two-phase borrows 2019-05-17 15:02:31 +02:00
Ralf Jung
b9517ca9f3 this also fixed our 2-phase woes 2019-05-15 18:12:58 +02:00
Ralf Jung
f676f2265b make writes act stack-like 2019-05-15 18:12:58 +02:00
Ralf Jung
7f09e61c31 make HashMap test a bit nicer 2019-05-13 11:45:39 +02:00
Ralf Jung
b08bf47606 fix tests for latest Rust 2019-05-01 20:43:43 +02:00
Ralf Jung
617195eb12 add arielby's example 2019-04-30 20:18:29 +02:00
Ralf Jung
42b70f17d2
Merge branch 'master' into exit 2019-04-22 11:35:36 +02:00
Ralf Jung
7bb461362e Travis: test cargo miri on foreign arch 2019-04-21 22:35:47 +02:00
Ralf Jung
a87a7338e6 test System/Global allocator API: alloc_zeroed, realloc 2019-04-21 13:47:12 +02:00
Ralf Jung
d410b13139 fix compile-fail ref files 2019-04-21 13:18:05 +02:00
Ralf Jung
0694435650 implement exit
implement exit code via new error kind
2019-04-21 12:36:17 +02:00
Ralf Jung
677bd6f656 add LinkedList test and mention the bug Miri found there 2019-04-19 23:08:24 +02:00
Ralf Jung
287ffb8bba test another version of 'creating a shared ref must not leak the Unique' 2019-04-19 08:46:40 +02:00
Ralf Jung
22b57f6435
Merge branch 'master' into stacked-borrows-2 2019-04-18 19:28:25 +02:00
Tim Diekmann
9ecc07c9b2
Add handling for nullptr and size == 0 2019-04-18 15:20:32 +02:00
Ralf Jung
7d9dc6e698 test that creating a 2nd mutable ref from a NonNull invalidates the first 2019-04-18 14:43:25 +02:00
Tim Diekmann
af3c4c0c23
Merge branch 'master' into realloc 2019-04-18 12:22:58 +02:00
Tim Diekmann
0e6deee76e
Add realloc 2019-04-18 01:20:21 +02:00
Ralf Jung
e1ed855a44 more tests -- also one showing why we are not done yet 2019-04-17 16:02:57 +02:00
Ralf Jung
72cec0562c add tests for fixes: sharing no longer leaks, and we can handle entering interior mutability 2019-04-17 16:02:57 +02:00
Ralf Jung
46d5fd8487 barriers are dead, long live protectors -- this enables overlapping two-phase borrows! 2019-04-17 16:02:57 +02:00
Ralf Jung
e7a500b7e1 test creating two raw pointers from the same mutable ref 2019-04-17 16:02:57 +02:00
Ralf Jung
a503259d8b organize stacked borrows run-pass tests 2019-04-17 16:02:57 +02:00
Ralf Jung
97c34c266f try to test the problematic cast-to-raw case... unfortunately with the implicit reborrow that's not currently possible 2019-04-17 16:02:57 +02:00
Ralf Jung
ef52be031c adjust compile-fail error messages
This also passes miri-test-libstd!
2019-04-17 16:02:57 +02:00
Ralf Jung
966d638760 make run-pass tests pass. tweak how we remove barriers. 2019-04-17 16:02:57 +02:00
Ralf Jung
6fdc75024b
Merge branch 'master' into rand 2019-04-16 20:55:58 +02:00
Ralf Jung
af2b42de0a fix compile-fail test 2019-04-16 19:09:41 +02:00
Ralf Jung
ceca7c5020 tweak entropy tests a bit 2019-04-16 19:06:08 +02:00
Ralf Jung
378d9d4172 be pragmatic about ptr-int comparisons, for now 2019-04-16 17:47:37 +02:00
Ralf Jung
a246116bdc rustup 2019-04-14 10:30:00 +02:00
Ralf Jung
aa79244b62 rustup 2019-04-12 22:15:55 +02:00
Ralf Jung
8de4f34a7f Merge remote-tracking branch 'origin/master' 2019-04-11 22:09:09 +02:00
Ralf Jung
83d199eb86 fix async-fn test 2019-04-10 17:20:54 +02:00
Aaron Hill
a8763f3d8d
Don't create HashMap<K, V> when not needed 2019-04-09 23:36:27 -04:00
Oliver Scherer
2eb2c8dd57
Merge branch 'master' into feature/random 2019-04-09 21:58:15 +02:00
Aaron Hill
ae8e7f654a
Fix compile-fail error message 2019-04-09 10:19:29 -04:00
Aaron Hill
9243680588
Use 'ignore-' instead of 'only-'
Apparently 'ignore-' doesn't work with compiletest_rs
2019-04-08 23:52:33 -04:00
Aaron Hill
5e07ff6b1f
Only run 'getrandom' test on Linux 2019-04-08 23:16:13 -04:00
Aaron Hill
174874420b
OS X is "macos", not "darwin" 2019-04-08 22:48:57 -04:00
Aaron Hill
858e82bc6f
Disable normal HashMap test on OS X
Implementing random number generation on OS X will require special-casing the
'openat' system call to special-case reading from /dev/urandom
2019-04-08 22:30:38 -04:00
Aaron Hill
6d3e93c281
Refactor random number generation 2019-04-08 22:22:41 -04:00
Aaron Hill
b120e8bb88
Only run test with default hasher 2019-04-08 21:42:12 -04:00
Aaron Hill
5530d295ad
Simplify cast using as_mut_ptr() 2019-04-08 21:36:35 -04:00
Tim Diekmann
fdefac8599
Fix calloc test
Forgot to free the memory. Miri found the bug :)
2019-04-08 01:26:52 +02:00
Aaron Hill
73239573c9
Implement non-deterministc mode
Part of #653

This allows us to properly implement getrandom(),
which unlocks the default HashMap type (e.g. HashMap<K, V>)
with RandomState)

This commit adds a new '-Zmiri-seed=<seed>' option. When present,
this option takes a 64-bit hex value, which is used as the seed
to an internal PRNG. This PRNG is used to implement the 'getrandom()'
syscall.

When '-Zmiri-seed' is not passed, 'getrandom()' will be disabled.
2019-04-07 19:26:20 -04:00
Tim Diekmann
fa0755c9fd
Add calloc test 2019-04-08 01:12:50 +02:00
Ralf Jung
3f552fea26 test calling Box<dyn FnOnce> 2019-04-07 20:06:22 +02:00
Ralf Jung
336a59d264 rename MIRI_TARGET -> MIRI_COMPILETEST_TARGET to clarify that this affects compiletest only 2019-04-07 10:58:10 +02:00
Ralf Jung
72cd133d1b compiletest can just propagate MIRI_SYSROOT from the outside 2019-04-07 10:58:06 +02:00
Ralf Jung
ddb0496642 temporarily ignore async fn test 2019-04-06 22:11:59 +02:00