Commit Graph

928 Commits

Author SHA1 Message Date
Matthew Jasper
3298102a64 Remove unnecessary test directive 2019-04-06 16:17:33 +01:00
Matthew Jasper
7213b91cd4 Use edition flag for 2phase test
The compiler now rejects one of the examples with #![feature(nll)]
2019-04-05 14:35:31 +01:00
Oliver Scherer
56c7656568 Remove dead code and docs 2019-03-11 10:28:03 +01:00
Alexander Regueiro
12d3ecbaff Various cosmetic improvements. 2019-02-26 18:37:46 +00:00
Alexander Regueiro
a478bfebd2 Removed copyright notices. 2019-02-26 18:37:45 +00:00
rchaser53
b1c0cf2ef9 use copy_op directly insteadof write_scalar
- fix volatile_store logic
- rename test to be able to read back from later
- expand test to use assert_eq! and confirm to fix volatile_store
- expand test to use assert_eq! and confirm normal load
2019-02-26 19:49:02 +09:00
Ralf Jung
ac23bcd298 test using the Global allocator trait to alloc/free a Box 2019-02-25 09:47:34 +01:00
Ralf Jung
5a8a15361d
Merge branch 'master' into no-two-phase-matches 2019-02-24 16:26:42 +01:00
Ralf Jung
6edf674f4f Merge remote-tracking branch 'origin/master' into btree 2019-02-24 12:22:42 +01:00
Matthew Jasper
acc304c0bd Remove test of two-phase borrows in match 2019-02-24 08:16:21 +00:00
Taiki Endo
441442e071 Update some links 2019-02-23 19:56:29 +09:00
Ralf Jung
edd9e5b7b1 test BTree a bit more 2019-02-22 17:42:01 +01:00
Ralf Jung
5190b5b1e8 test VecDeque debug printing 2019-02-15 10:41:12 +01:00
Ralf Jung
e630175867 fix async-fn test 2019-02-15 09:35:55 +01:00
Ralf Jung
9397b36ab8 typo and comments 2019-02-15 09:35:55 +01:00
Ralf Jung
1921fa5766 actually they should be equal 2019-02-15 09:35:55 +01:00
Ralf Jung
2c3ee678b1 Fix comparing fat pointers 2019-02-15 09:35:55 +01:00
Ralf Jung
c6e747e14c Merge remote-tracking branch 'origin/master' into str-index-mut 2019-02-14 08:33:37 +01:00
Ralf Jung
8466f78e83 ignore overaligned tests on Windows (because, of course, Windows' API is broken here) 2019-02-13 19:48:26 +01:00
Ralf Jung
2d323857e9 implement and test posix_memalign 2019-02-13 17:47:54 +01:00
Ralf Jung
d91ab9a7a6 fix ptr comparison test 2019-02-13 10:07:31 +01:00
Ralf Jung
604095fff2
Merge branch 'master' into format-padding 2019-02-13 08:12:11 +01:00
Ralf Jung
3c652032c0 be more clear which stack we are talking about 2019-02-12 10:51:03 +01:00
Ralf Jung
0802b3a108 implement passing arguments to the interpreted program 2019-02-09 20:00:40 +01:00
Ralf Jung
7827924bfc test padding in format strings 2019-02-09 15:52:59 +01:00
Ralf Jung
0f6e82db36 fix (un)likely intrinsics 2019-02-09 13:08:23 +01:00
Ralf Jung
e5972c38a3 test mutable string slice indexing 2019-02-06 11:47:32 +01:00
Ralf Jung
48ac35f072 panic_impl is another way to panic 2019-02-06 11:41:45 +01:00
Ralf Jung
6b855573bd fix generator test case 2019-01-30 11:51:06 +01:00
Ralf Jung
f7519f36e6 fix tests to avoid deprecated constants 2019-01-28 09:19:56 +01:00
Ralf Jung
b344f0fd43 test some more 2PB stuff 2019-01-04 10:15:53 +01:00
Ralf Jung
3715245a36 add test for offseting fn ptr 2018-12-26 16:23:04 +01:00
Ralf Jung
5a8f9e58f7 properly compare unequal function pointers 2018-12-25 13:29:38 +01:00
Ralf Jung
4e4569cf4b fix build and tests with latest nightly 2018-12-25 13:26:40 +01:00
Ralf Jung
79bdec8a9c fix test for latest nightly 2018-12-22 16:07:50 +01:00
Ralf Jung
a03d184648
Merge branch 'master' into rustup 2018-12-20 13:34:24 +01:00
Ralf Jung
51ed485ba4 implement stdout/stderr on Windows 2018-12-19 12:16:07 +01:00
Ralf Jung
b3f7991367 btree is fixed 2018-12-18 18:41:52 +01:00
Oliver Scherer
77ef84e1e8 Adjust tests for funciton pointer changes 2018-12-17 10:12:04 +01:00
Ralf Jung
e2505dd945 we have no whitelist any more, go back to opt-level 3 2018-12-13 22:07:57 +01:00
Ralf Jung
b0581caeef VecDeque got fixed 2018-12-13 22:05:46 +01:00
Ralf Jung
8bd1f78563 fix libc feature gate 2018-12-13 20:25:24 +01:00
Ralf Jung
5ff67363cb fix warning 2018-12-12 19:51:52 +01:00
Ralf Jung
7e9098ff69 treat ref-to-raw cast like a reborrow: do a special kind of retag 2018-12-12 11:11:20 +01:00
Ralf Jung
8ec371747a do not auto-detect the targets in the sysroot, instead specify target manually through env var 2018-12-12 11:03:42 +01:00
Ralf Jung
5689366a0d use rustc_version also to parse host in compiletest 2018-12-10 13:20:04 +01:00
Ralf Jung
f044205b5f the test suite assumes a libstd with full MIR; run test suite on xargo-built foreign libstds 2018-12-10 10:04:55 +01:00
Ralf Jung
228663248c Merge remote-tracking branch 'origin/master' into rustup 2018-12-08 10:33:14 +01:00
Ralf Jung
d5d1b1e4f3 add FIXME test for coercing &mut to *const 2018-12-07 18:01:59 +01:00
Ralf Jung
bbdc3380d5 fix tests 2018-12-07 10:15:25 +01:00
Ralf Jung
1a41ce6319 Merge remote-tracking branch 'origin/master' into stacked-borrows-2-phase 2018-12-07 09:03:15 +01:00
Ralf Jung
61f20761d3
Merge branch 'master' into stacked-borrows-2-phase 2018-12-03 11:11:32 +01:00
Ralf Jung
0cb3bf7912
Merge branch 'master' into fixme 2018-12-03 10:52:59 +01:00
Ralf Jung
b6e5822601 add FIXME 2018-12-03 10:28:32 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
e73d0a3bca
Merge branch 'master' into fixme 2018-12-03 09:38:32 +01:00
Ralf Jung
9d0c1dd676 disable VecDeque test until the fix lands in rustc 2018-12-03 09:15:18 +01:00
Ralf Jung
0e44876a2d fix mutability gap: do not allow shared mutation when creating frozen reference 2018-12-03 09:15:18 +01:00
Ralf Jung
479eb3bd2b support for basic (non-overlapping) 2-phase borrows 2018-12-02 13:30:09 +01:00
Wim Looman
91f0b28ecc Skip testing targets that don't ship libstd 2018-12-02 12:47:15 +01:00
Ralf Jung
36a2b89522 remove a whole lot of unnecessary attributes 2018-12-02 11:26:09 +01:00
Ralf Jung
429d84f068 remove/fix outdated FIXMEs in tests 2018-12-02 11:14:24 +01:00
Ralf Jung
42e73b5536 async fn got fixed 2018-11-29 17:29:00 +01:00
Ralf Jung
fb72348e5f disable async-fn, for now 2018-11-28 19:06:12 +01:00
Ralf Jung
97e010f5b9 barriers prevent deallocation 2018-11-27 14:26:23 +01:00
Ralf Jung
194710e112 no barriers for boxes 2018-11-27 14:26:23 +01:00
Ralf Jung
58309956c1 for now, we allow Undef in raw pointers as we do in integers 2018-11-27 14:26:23 +01:00
Ralf Jung
dd94930ee3 implement function barriers 2018-11-27 14:26:23 +01:00
Ralf Jung
7d623f73cc do not use 'let _', it is strange 2018-11-26 15:31:53 +01:00
Ralf Jung
1edba2337b
Merge branch 'master' into self-referential-generator 2018-11-26 09:47:22 +01:00
Ralf Jung
094d07c114 Merge remote-tracking branch 'origin/master' into rustup 2018-11-22 08:21:05 +01:00
Ralf Jung
6eb153aca2
Merge branch 'master' into partially-invalidate-mut 2018-11-21 16:53:19 +01:00
Ralf Jung
04794c4c2a test that we support partial invalidation of mutable references 2018-11-21 16:08:46 +01:00
Ralf Jung
ec8cc029c1 on a deref, check that we are not using a mutable ref with a frozen tag 2018-11-21 15:44:47 +01:00
Ralf Jung
984c3368a9 remove stabilized feature flag 2018-11-21 13:41:57 +01:00
Ralf Jung
0b7625a079 make sure compile-fail tests would compile if we screw up 2018-11-21 10:19:00 +01:00
Ralf Jung
7fe24a2b86 also add an async fn test 2018-11-20 16:09:06 +01:00
Ralf Jung
8d6472a76c test self-referential generator 2018-11-20 15:07:09 +01:00
Ralf Jung
22f11b8eec make tests compatible with 2018 edition 2018-11-20 14:15:14 +01:00
Ralf Jung
1ae536b03e use 2018 edition for tests 2018-11-20 12:41:34 +01:00
Ralf Jung
5b095e1652 stdout not implemented on windows 2018-11-20 09:12:29 +01:00
Ralf Jung
6085865975 adjust for InboundsCheck parameter of memory bounds check 2018-11-20 08:45:25 +01:00
Ralf Jung
a806805f23 add an interesting testcase 2018-11-19 10:26:40 +01:00
Ralf Jung
880229d4c3 escape-on-cast, now ptr-deref does not change the tag at all, ever 2018-11-17 10:05:40 +01:00
Ralf Jung
b7dbb5e2a7 also consider boxes like unique references 2018-11-17 10:05:40 +01:00
Ralf Jung
c54dcf59ae add some tests for retagging inside tuples and options 2018-11-16 11:13:55 +01:00
Ralf Jung
a1f895d6f2 retagging: descent into values, type-driven 2018-11-16 11:09:33 +01:00
Ralf Jung
827e5180f2 stacked borrows is broken without full MIR 2018-11-16 10:01:54 +01:00
Ralf Jung
c93f6d6bb0 Merge remote-tracking branch 'origin/master' into escape-to-raw 2018-11-16 09:41:47 +01:00
Ralf Jung
70738bf8cc where there is 2, there should be 1 2018-11-16 08:53:43 +01:00
Ralf Jung
ca7b088aba remove type system tests 2018-11-16 08:50:44 +01:00
Ralf Jung
ba8eb7608e add an interesting demo for &mut being unique 2018-11-15 09:35:40 +01:00
Ralf Jung
a87e952102 Separate deref and access into different operations; add special exception for creating raw references 2018-11-15 09:35:40 +01:00
Ralf Jung
224d03dbdc organize std tests a bit better 2018-11-15 09:35:40 +01:00
Ralf Jung
a94e197105 better test the special exception for reading through unique when things are shared 2018-11-15 09:35:40 +01:00
Ralf Jung
aa8f523df6 test for special things that are now possible 2018-11-15 09:35:40 +01:00
Ralf Jung
94e751267c add another mean test case 2018-11-15 09:35:40 +01:00
Ralf Jung
09919c2b59 Retag is the only operation that generates new tags 2018-11-15 09:35:40 +01:00
Ralf Jung
f233dc0687 Rc should be fixed 2018-11-11 10:12:44 +01:00
Ralf Jung
54307cd888 bump compiletest so that we can share the tempdir() call 2018-11-09 14:04:22 +01:00
Ralf Jung
97302e86c2 remove unused import 2018-11-09 11:51:39 +01:00
Ralf Jung
45e14f8dc5 use custom test runner so that we can get proper test filtering 2018-11-09 11:50:34 +01:00
Ralf Jung
d694dc43f4 bump Rust version 2018-11-08 08:35:14 +01:00
Ralf Jung
74635a57e2 re-do large parts of stacked borrows, now with proper support for partiall frozen data 2018-11-08 08:29:34 +01:00
Ralf Jung
a05ba90300 disable Rc test for now, it ain't working 2018-11-07 14:24:11 +01:00
Ralf Jung
efd2f0e0e4 move new test to correct dir 2018-11-03 12:33:14 +01:00
Ralf Jung
e68687b840 test that we check the layout constraints as early as we can 2018-11-03 12:25:57 +01:00
Ralf Jung
5f42aa61d5 illegal_write2 does not work with optimizations 2018-11-03 10:23:50 +01:00
Ralf Jung
81534496dc rename RefKind to UsageKind, because it not only used for references now 2018-11-01 08:58:03 +01:00
Ralf Jung
3302656247 More extensive slice and vec tests
Not all of them pass validation...
2018-11-01 08:58:03 +01:00
Ralf Jung
430e047a6f start collecting some things ALLOWED by stacked borrows in a run-pass test 2018-11-01 08:58:03 +01:00
Ralf Jung
85f821d7e9 unify checks on memory access and reborrowing, and update for Machine trait change 2018-11-01 08:58:03 +01:00
Ralf Jung
bba3c49e84 basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref 2018-11-01 08:58:03 +01:00
Ralf Jung
7ac0e79ad5 stub Retag hook; fix tests for removal of -Zmir-emit-validate 2018-11-01 08:58:03 +01:00
Ralf Jung
40b7502613 Reject atomic arithmetic on non-integer types
Fixes #181
2018-10-31 11:04:35 +01:00
Ralf Jung
1fa0ff88c0 fix nits 2018-10-30 10:41:01 +01:00
Ralf Jung
6cbe280094 Merge remote-tracking branch 'origin/master' into rustup 2018-10-30 09:40:18 +01:00
Ralf Jung
a48b2cc4e9 disable validation for some tests that need further investigation 2018-10-30 09:40:01 +01:00
Ralf Jung
cba30e8e8b opt level 3 works again :) 2018-10-29 11:51:22 +01:00
Ralf Jung
356369dd08 test against passing invalid shared refs around 2018-10-23 16:01:22 +02:00
Ralf Jung
5388037f8a remove code duplication by letting reactivatable() compute what reactivate() has to do 2018-10-23 15:59:50 +02:00
Ralf Jung
fe83ef323c also run compile-fail tests with and without optimizations 2018-10-23 13:09:17 +02:00
Ralf Jung
cc328f6374 test passing invalid refs around 2018-10-23 11:20:04 +02:00
Ralf Jung
8cd73e534f use as(_mut)_ptr on slices to entirely escape them to raw 2018-10-22 18:51:06 +02:00
Ralf Jung
44b3c38b44 make sure raw ptrs only have to be valid as far as they are used 2018-10-22 18:34:48 +02:00
Ralf Jung
26bb4f79dc get rid of implicit Raw at bottom of stack; locals get a uniq at their bottom 2018-10-22 18:17:37 +02:00
Ralf Jung
fda03e9d7d some more compile-fail tests 2018-10-22 16:48:10 +02:00
Ralf Jung
dd1558f337 rustc update and be very selective about what we accept on a deref 2018-10-22 16:48:09 +02:00
Ralf Jung
0b22a1c9d9 env vars should work on macOS 2018-10-22 09:04:32 +02:00
Ralf Jung
fdb3022a11 env vars are only available with full MIR 2018-10-22 08:41:48 +02:00
Ralf Jung
957d18c343 Merge remote-tracking branch 'origin/master' into rustup 2018-10-22 08:41:01 +02:00
Ralf Jung
bbb1d80703 disable env var test on macOS, win 2018-10-21 01:31:46 +02:00
Ralf Jung
8134918390 don't use NOTE in tests 2018-10-19 12:29:49 +02:00
Ralf Jung
0b6e349417 automalically use start-fn if we have all the MIR 2018-10-19 10:07:17 +02:00
Ralf Jung
b9fe91e486 fix for ptr-to-raw casts properly erasing the tag 2018-10-18 12:04:41 +02:00
Ralf Jung
1907782b64 reenable some tests that work now, and organize them better with directories 2018-10-17 16:58:54 +02:00
Ralf Jung
d4b78b36ab stacked borrows: enforcement at memory accesses 2018-10-17 15:15:53 +02:00
Ralf Jung
348f782085 add env var emulation test, and fix it complaining about leaks 2018-10-16 18:35:27 +02:00
Ralf Jung
37de74f015 test with opt levels 0 and 1 2018-10-16 17:57:03 +02:00
Ralf Jung
c9cf0344ee enable validation for compile-fail tests, and add some new ones 2018-10-12 10:54:37 +02:00
Ralf Jung
62b819ba18 whitelist std::ptr::read 2018-10-12 10:40:44 +02:00
Ralf Jung
26f9d617c3 do not validate start-fn code 2018-10-11 16:10:04 +02:00
Ralf Jung
e4dfb7013b enable validation per default, but add a flag to disable it and use that for some run-pass tests
compile-fail does not do validation yet
2018-10-11 11:24:22 +02:00
Ralf Jung
a090edbc03 explain a test 2018-10-11 08:59:39 +02:00
Ralf Jung
a439262859
Merge branch 'master' into ptr-offset 2018-10-10 10:03:34 +02:00
Ralf Jung
233516b54d Merge remote-tracking branch 'origin/master' into rustup 2018-10-10 09:07:26 +02:00
Ralf Jung
0641d5b6d3 0-offset is also not always okay 2018-10-09 20:13:46 +02:00
Ralf Jung
edf28fa227 only allow offset-by-0 on integer pointers 2018-10-09 20:13:46 +02:00
Ralf Jung
cc275c63a9 fix for fn allocations now having an alignment (1) and a size (0) 2018-10-08 13:35:54 +02:00
Ralf Jung
59eb3dbdae use Box::into_raw 2018-10-07 10:35:34 +02:00
Ralf Jung
959693f1e5 ensure that we cannot use (wrapping_)offset to go from an int ptr to a real ptr 2018-10-06 18:32:39 +02:00
Ralf Jung
146f5d8d10 rustup; test for return type mismatch 2018-10-02 21:16:55 +02:00
Ralf Jung
e8f6973e2d fix test for latest rustc 2018-09-29 19:39:34 +02:00
Ralf Jung
f18cb40e4c test mutating a non-mut static with interior mutability 2018-09-23 09:14:55 +02:00
Ralf Jung
a85b78d30c test for interestingly aligned field access 2018-09-22 08:45:24 +02:00
Ralf Jung
18d7394071 more compile-fail ptr equality tests, to rule out any non-determinism; and fix ptr equality to fail all of them.
At least these are the cases I can think of right now.
2018-09-17 10:02:31 +02:00
Ralf Jung
cd138bcd0b test more operations on dangling ZST pointers 2018-09-17 10:02:31 +02:00
Ralf Jung
130d803b32 fix test for rustup 2018-09-17 09:18:57 +02:00
Ralf Jung
95d79cc11e Merge remote-tracking branch 'origin/master' into zero-sized-accesses 2018-09-17 08:39:59 +02:00
Ralf Jung
95eb77c18e add some compile-fail tests 2018-09-16 17:29:53 +02:00
Ralf Jung
1697b93ed9
Merge branch 'master' into rustup 2018-09-01 10:35:19 +02:00
Ralf Jung
f56841d974 unignore a bunch of tests that actually work 2018-08-30 15:57:17 +02:00
Ralf Jung
c44267960f ptr equality: only defined for ptrs in the same allocation and live ptrs 2018-08-30 10:46:09 +02:00
Ralf Jung
e239fcffc1 new tests for new fn arg passing code 2018-08-30 10:42:18 +02:00
Ralf Jung
904923fa7a move some more helpers to rustc 2018-08-30 10:42:18 +02:00
Ralf Jung
2a244dcb48 no TLS dtor and no leak checks on macOS 2018-08-30 09:41:57 +02:00
Ralf Jung
d1cd254003 no RwLock on Windows 2018-08-30 09:20:08 +02:00
Ralf Jung
0db1c6a1b0 ignore memory leaks on Windows 2018-08-30 08:57:33 +02:00
Ralf Jung
d7a3e040eb pthreads test needs full MIR on Windows 2018-08-30 08:33:38 +02:00
Ralf Jung
addcbd8868 VecDeque now requries full MIR; update to new nightly 2018-08-30 08:21:05 +02:00
Ralf Jung
755c68fdd8 some unary operator tests 2018-08-26 20:42:02 +02:00
Ralf Jung
5ccdbb8de2 small test for extern_type 2018-08-26 15:15:26 +02:00
Ralf Jung
823837922b update for enum discriminant changes 2018-08-25 11:07:21 +02:00
Ralf Jung
9280d17d98 test VecDeque 2018-08-24 19:50:31 +02:00
Ralf Jung
bb5079b2bf rustup 2018-08-24 19:49:57 +02:00
Ralf Jung
40cc72604a update for bool/char being checked at binops 2018-08-24 19:18:21 +02:00
Ralf Jung
1a4ad2bb9f update for miri engine: new function handling, new static handling, fixed leaks 2018-08-24 16:45:08 +02:00
Ralf Jung
ee7f22245d Merge remote-tracking branch 'origin/master' 2018-08-20 18:57:48 +02:00
Ralf Jung
c424e21692 update for memory signedness removal; test some float casts 2018-08-16 11:35:38 +02:00
Ralf Jung
259cc6e3dc rustup for big refactor; kill most of validation 2018-08-16 10:30:43 +02:00
Ralf Jung
98a5b24ef7 test some more things around packed structs 2018-08-14 20:10:25 +02:00
Ralf Jung
bfda0a0a90 add a scary test case 2018-08-14 20:10:25 +02:00
Ralf Jung
04b925135d fix modulo logic 2018-08-14 20:10:25 +02:00
Ralf Jung
2b40d39c1e support computing the remainder of a ptr, if covered by alignment 2018-08-14 20:10:25 +02:00
Ralf Jung
93fef9a6a2 reenable an old test 2018-08-14 20:10:25 +02:00
Ralf Jung
354ec11c3e try using types with lower alignment, maybe that helps for Windows 2018-08-14 18:52:13 +02:00
Ralf Jung
18546308ce mem(r)chr is working in miri now 2018-08-02 00:17:02 +02:00
Ralf Jung
1538b36c80 make sure that StorageDead invalidates the backing store 2018-07-31 20:29:28 +02:00
Ralf Jung
bb6e7c8243
Merge branch 'master' into sanity_checks 2018-07-30 08:51:34 +02:00
Ralf Jung
ee98799185 we no longer need to mess with the environment in our test suite 2018-07-26 16:49:10 +02:00
Ralf Jung
b7c57fee61 Ignore tests
the bool thing will be fixed by the validation I have planned, and we already ignored another test around modifing constants.
2018-07-26 11:21:49 +02:00
Ralf Jung
d11c668a39 no longer run rustc on the tests; instead make sure we actually deny all warnings
Also fix the fallout from that
2018-07-16 08:39:06 +02:00
Ralf Jung
5be8bd987d Test some new capabilities we gained from a rustc update 2018-07-15 21:25:20 +02:00
Ralf Jung
0b8809bf5f port some tests to check the new error format 2018-07-15 12:00:02 +02:00
Ralf Jung
30185d09f6 make sure we show error messages even when we cannot show span 2018-07-15 11:40:57 +02:00
Ralf Jung
25c067ac7a testsuite: put everything into a single test to fix interleaved output mess 2018-07-12 15:05:25 +02:00
Ralf Jung
9718d73ac8 colored test output! 2018-07-12 11:26:09 +02:00
Ralf Jung
8ce16a7c30 remove xargo logic; instead rely on MIRI_SYSROOT being set to run full MIR tests 2018-07-12 11:02:48 +02:00
Ralf Jung
01578ca6b3 don't run all compile-fail tests with full MIR 2018-07-12 11:02:48 +02:00
Ralf Jung
949106148c ignore panic test on Windows 2018-07-12 10:24:25 +02:00
memoryleak47
eb8195f095 typo 2018-07-12 10:22:23 +02:00
Ralf Jung
5f2f254695 move tests that no longer need MIR out of fullmir 2018-07-12 10:22:23 +02:00
Ralf Jung
ff5b0fee33 fix many tests and ignore some others; enable compile_fail tests again 2018-07-12 10:22:23 +02:00
Ralf Jung
7023126094 stop producing binaries 2018-07-11 19:36:45 +02:00
Ralf Jung
d4e8d0b935 fix deprecation warning: use dirs crate for home_dir 2018-07-11 17:42:35 +02:00
bjorn3
ac25a513af Re-enable never_transmute_humans.rs 2018-06-05 18:08:18 +02:00
bjorn3
94754de600 Convert legitimate failing errors to the new error format 2018-06-05 18:08:18 +02:00
bjorn3
8ae66db798 Convert some of the tests to the new format 2018-06-05 18:08:18 +02:00
bjorn3
569792acbc Address some review comments 2018-06-05 18:08:18 +02:00
bjorn3
3db0568c40 Fix a couple of tests 2018-06-05 18:08:18 +02:00
David Renshaw
6a4c62c167 add iter_any test 2018-05-11 13:51:04 +02:00
Oliver Schneider
20c2e0bede
Test miri on mac os 2018-05-11 11:29:18 +02:00
Oliver Schneider
0eb3c18565
Use a deterministic method for executing the start lang item 2018-05-07 10:46:32 +02:00
bjorn3
e09a996b2a
Fix some more tests with some unsafe code 2018-04-13 16:04:57 +02:00
bjorn3
a6cdd8a81b
Fix it 2018-04-13 16:04:57 +02:00
Oliver Schneider
cd89e56f15
Get the tests one step further 2018-04-13 16:04:57 +02:00
Oliver Schneider
bf26b96dc7 Update to latest rustc changes 2017-12-05 17:06:03 +01:00
Oliver Schneider
fd77411a18
Compiler bug 2017-11-30 13:31:37 +01:00
Oliver Schneider
4e8b9451ab Update error messages 2017-11-27 14:31:51 +01:00
Oliver Schneider
042430270f repeat expressions abort due to OOM instead of execution time exhaustion 2017-10-12 11:13:56 +02:00
Ralf Jung
6e8650395d fix oom2 test 2017-09-25 16:21:20 +02:00
Ralf Jung
1ad9709e00 get rid of ad-hoc inhabitedness test 2017-09-22 13:24:55 +02:00
Oliver Schneider
709ab245df Merge branch 'master' into windows 2017-09-16 15:06:26 +02:00
Oliver Schneider
cf92528426 Add windows support 2017-09-16 14:02:59 +02:00
Ralf Jung
5a5aa49db7 get rid of the --miri_host_target hack 2017-09-16 13:29:38 +02:00
Ralf Jung
e7b0637e68 Merge branch 'master' into tests 2017-09-16 12:55:49 +02:00
Ralf Jung
060bb2fa9f use ui test mode rather than mir-opt
These tests are not run per default
2017-09-16 12:36:31 +02:00
Ralf Jung
bc240ff606 add an undef validation test 2017-09-16 12:11:48 +02:00
Ralf Jung
2ea6663440 validation: check that int, float etc. are not undef 2017-09-16 11:45:56 +02:00
Ralf Jung
5d2ed4d2ba Something in panic handling fails validation with full-MIR 2017-09-13 18:15:59 +02:00
Ralf Jung
c1630973d0 Disable the address-of-ZST test for now; it is buggy as it disagrees with rustc 2017-09-13 18:15:59 +02:00
Ralf Jung
bac89ae1d8 enable validation for a bunch of more tests 2017-09-13 15:46:53 +02:00
Ralf Jung
aa578de018 identify write locks by lvalues, not regions
This makes a new compile-fail test pass.
2017-09-13 14:37:31 +02:00
Oliver Schneider
ce3576f7d8
Use correct rustc in rust's CI 2017-09-11 11:01:26 +02:00
Ralf Jung
ce4875484f there are more tests we can enable again 2017-09-09 11:30:15 +02:00
Ralf Jung
41f228824f fix warnings in tests; update validation whitelist 2017-09-09 11:18:02 +02:00
Ralf Jung
00c909dbd0 we can enable a bunch of tests for validation again 2017-09-09 11:18:02 +02:00
Oliver Schneider
5570a78c51
Disable validation for some tests 2017-09-07 16:56:46 +02:00
Ralf Jung
9fe0d60da6 disable optimized tests until rustc is fixed 2017-09-06 10:30:00 +02:00
Ralf Jung
59cbfdbf08 enable a test that works just fine 2017-09-06 10:10:43 +02:00
Oliver Schneider
e9315a60e4 Rustup 2017-09-06 10:10:15 +02:00
Ralf Jung
3b6852abf0 Merge branch 'master' into align_offset 2017-09-04 13:22:11 +02:00
Ralf Jung
8dff161bcb update compiletest; we do not need tempdir any more 2017-09-04 13:02:55 +02:00
Ralf Jung
ea911ca8a7 disable validation in failing tests for now 2017-09-04 11:48:48 +02:00
Oliver Schneider
cf25ef9d9d
Implement align_offset intrinsic and thus enabling from_utf8 2017-09-01 12:26:51 +02:00
Oliver Schneider
58a59e9d23
Rustup (generator support) 2017-08-30 13:16:27 +02:00
Ralf Jung
e6a874b0bf test new From instances for Rc 2017-08-29 16:51:26 +02:00
Oliver Schneider
506a5c7910
Mir optimizations treat single variant enums as structs 2017-08-29 12:26:20 +02:00
Oliver Schneider
88fc45b37c
Get some more rustc tests working 2017-08-29 11:58:22 +02:00
Oliver Schneider
206f0bd6df
Fix panic in subslice patterns of arrays (fixes #276) 2017-08-29 10:03:00 +02:00
Oliver Schneider
f817f1c660
Get rid of env var race condition once and for all 2017-08-28 17:32:21 +02:00
Oliver Schneider
dd5b0100f3
Merge remote-tracking branch 'origin/master' into memory 2017-08-28 16:13:09 +02:00
Oliver Schneider
385b5b9fd1 Merge branch 'master' into priroda 2017-08-28 15:37:10 +02:00
Oliver Schneider
02a0f0f814 Turn off validation for some compile-fail tests 2017-08-28 15:04:32 +02:00
Oliver Schneider
9d10e0154b
Mir validation can't cope with mem::uninitialized::<SomeEnum>() 2017-08-28 14:53:43 +02:00
Oliver Schneider
e28f4a8e3e
Add a regression test for #313 2017-08-28 14:10:59 +02:00
Ralf Jung
907d2c7310 rustc #43457 got fixed, we can enable more tests 2017-08-27 18:18:32 +02:00
Ralf Jung
2307d6fc5b Merge branch 'master' into memory 2017-08-26 13:51:13 +02:00
Ralf Jung
2e28e14474 reorder lets so that build_dir is deleted last 2017-08-26 13:23:04 +02:00
Ralf Jung
df20c0684c use tempdir to create a dedicated directory for each test 2017-08-26 13:12:55 +02:00
Ralf Jung
ac80212f7e move tests with MIR-opt to their own function we we can run them separately 2017-08-25 19:21:10 +02:00
Ralf Jung
f036fe0d32 refactor memory read API: provide only size-based, no type-based methods 2017-08-25 16:20:13 +02:00
Ralf Jung
8539728607 memory: make sure we check non-NULL/undef even fore 0-sized accesses 2017-08-25 14:41:59 +02:00
Ralf Jung
e332ab9b13 Handle closures in get_field_ty
Fixes #304
2017-08-24 13:34:05 +02:00
Ralf Jung
2fccae8aac add another compile-fail test for validation 2017-08-18 11:30:18 +02:00
Ralf Jung
90edc03eea Add a test demonstrating the limitations of our lfietime resolution 2017-08-18 11:29:51 +02:00
Ralf Jung
7e5d971c56 fix warnings; make test suite pass again 2017-08-12 09:45:44 -07:00
Ralf Jung
2be159bacd enable a test that waited for a rustc fix 2017-08-11 09:12:46 -07:00
Oliver Schneider
8019deb0a9 Update compiletest.rs 2017-08-10 19:39:32 +02:00
Oliver Schneider
33ff32cac8
Get the test suite working inside the rustc test suite 2017-08-10 18:32:06 +02:00
Ralf Jung
1326aed02c rustfmt
Except for error.rs, the result there looks rather ugly
2017-08-10 08:48:41 -07:00
Ralf Jung
34685044f9 add a bunch of compile-fail tests for validation 2017-08-09 18:01:10 -07:00
Ralf Jung
5e018b1deb analyzing hashmap.rs uncovered a deeper problem; disable validation there for now 2017-08-09 15:49:47 -07:00
Ralf Jung
bff1ad156e integer-ops needs a rustc patch to work again 2017-08-09 15:49:47 -07:00
Ralf Jung
668491a892 Work on making validation test pass again
Turns out that tracking write locks by their lifetime is not precise enough,
but for now, we don't have an alternative.  Also, we need to force_allocate
what we acquire or else the memory will not be in the right state.
2017-08-09 15:49:47 -07:00
Ralf Jung
11f0aedc3d add some tests making sure we get the alias checking right 2017-08-09 15:49:47 -07:00
Oliver Schneider
8ab1eeef51
Implement packed statics 2017-08-08 17:09:26 +02:00
Oliver Schneider
4ba2b82f31
Split the alloc id address space into functions and normal allocs
instead of interleaving them as before.
The next step is to also separate out static memory into its own
address space.
2017-08-08 17:09:25 +02:00
Ralf Jung
847396e412 Re-do memory locking (again). Now with proper support for multiple independent shared borrows of the same mutable reference. 2017-08-07 12:57:32 -07:00
Ralf Jung
2a1d7666ed Merge pull request #286 from RalfJung/mir-validate
Update MIR validation and test it
2017-08-04 22:02:52 -07:00
Oliver Schneider
181bb30d07 Rustc reorders fields, but miri expects them in source order 2017-08-04 13:43:17 +02:00
Ralf Jung
4957031e3c selectively disable validation in compile-fail where appropriate. cargo test now passes :) 2017-08-03 18:13:23 -07:00
Ralf Jung
9458111681 for now, disable validation on optimized tests -- inlining breaks validation 2017-08-03 18:13:23 -07:00
Ralf Jung
58a17026c9 Let -Zmir-emit-validate also control whether miri even acts on the validation commands 2017-08-03 18:13:23 -07:00
Ralf Jung
766a69f656 make test suite MIR validation aware. run-pass passes with and without fullmir, if optimizations are disabled! 2017-08-03 18:13:22 -07:00
Oliver Schneider
726b027ba3 Merge pull request #280 from solson/archeology
Produce backtraces for miri internals
2017-08-03 23:02:29 +02:00
Ralf Jung
2cf394955b actually, we can use a plain constant 2017-08-03 12:58:34 -07:00
Ralf Jung
0f43321178 no need to do run-time formatting 2017-08-03 12:39:55 -07:00
Ralf Jung
de1376f923 Add a build script to inform the binary about its profile, and use that in the test suite 2017-08-03 11:38:00 -07:00
Ralf Jung
c533cf8496 fix size_of_val on unsized tuples 2017-08-02 15:29:13 -07:00
Oliver Schneider
40677a5c47 Choose release miri for release tests 2017-08-02 18:28:12 +02:00
Oliver Schneider
f8c61da070 Add a test for untagged unions 2017-08-02 12:56:07 +02:00
Oliver Schneider
adfea61665
Allow machines to create new memory kinds 2017-08-01 09:56:21 +02:00
Oliver Schneider
11e30a65e6
Split up miri into the librustc_mir and bin parts 2017-08-01 09:56:21 +02:00
Ralf Jung
4672cb7bde make force_allocation handle packed ByValPair 2017-07-26 23:45:22 -07:00
Oliver Schneider
f906c5458c Merge pull request #272 from oli-obk/mir-validate
Mir validate
2017-07-26 23:37:52 +02:00
Ralf Jung
744780e794 more hacks to make test cases pass 2017-07-25 17:31:40 -07:00
Ralf Jung
e5cc8aaf5b Test that &* of a dangling (and even unaligned) ptr is okay 2017-07-25 17:02:57 -07:00
Ralf Jung
f960f4c537 fix casting integers to pointers 2017-07-21 20:02:48 -07:00
Oliver Schneider
4cfa7c5d12
Prep miri repository for rustc merger 2017-07-21 11:30:56 +02:00
Oliver Schneider
b4e300d577 Merge pull request #266 from RalfJung/align
Always test alignment in memory.rs
2017-07-21 09:46:50 +02:00
Ralf Jung
14cb85809b always test alignment in memory.rs 2017-07-20 13:24:06 -07:00
Oliver Schneider
f2d0101065
Also test optimized MIR 2017-07-20 20:25:43 +02:00
Oliver Schneider
f822ad5c63 Merge pull request #260 from RalfJung/tests
Split up test suite
2017-07-20 16:07:08 +02:00
Eduard-Mihai Burtescu
e79bb42ab3 Merge pull request #262 from RalfJung/never
remove ad-hoc 'never' type check in read_lvalue
2017-07-20 15:13:21 +03:00
Oliver Schneider
101e5a8ba0 Move rustc tests from tests to a binary, since they are only run manually anyway 2017-07-20 13:11:40 +02:00
Ralf Jung
3b19c83c67 remove ad-hoc 'never' type check in read_lvalue 2017-07-19 20:32:51 -07:00
Ralf Jung
7648ccaae1 add test for misaligned pointer loads 2017-07-19 20:26:30 -07:00
Ralf Jung
e38ee0a30a split up the test suite 2017-07-19 12:52:20 -07:00
Ralf Jung
e4ffab1754 enable test code that passes just fine 2017-07-19 11:38:15 -07:00
Ralf Jung
72664e42aa No longer check aligment and non-NULLness on &
This breaks creating unaligned raw pointers via `&packed.field as *const _`, which needs to be legal.
Also it doesn't seem like LLVM still relies on this, see
* https://github.com/solson/miri/issues/244#issuecomment-315563640
* https://internals.rust-lang.org/t/rules-for-alignment-and-non-nullness-of-references/5430/16

We probably want to handle this invariant like the others that validation is concerned with, and only
check it on function boundaries for now.
2017-07-19 11:28:35 -07:00
Ralf Jung
ff9192e346 remove reundant dangling checks in {r,d}eallocate 2017-07-18 13:50:54 -07:00
Oliver Schneider
2e562a4d64
Fix static mutation tests 2017-07-14 17:39:19 +02:00
Oliver Schneider
7701ff2f89
Remove duplicate test 2017-07-14 17:39:19 +02:00
Oliver Schneider
192da8819f
Ensure that it is not possible to explicitly free stack memory 2017-07-14 17:36:06 +02:00
Oliver Schneider
56d4de303f Merge pull request #247 from RalfJung/packed
Re-do packed memory accesses
2017-07-14 08:30:30 +02:00
Ralf Jung
0fbbcae92d packed structs: test unsize coercions 2017-07-13 14:18:26 -07:00
Ralf Jung
287b6be5ca track alignment also for ByRef values 2017-07-12 21:06:57 -07:00
Ralf Jung
1fe310c8ba Memory::read_ptr has to check for relocations on the edges 2017-07-12 19:30:37 -07:00
Ralf Jung
c149c3fc6a Re-do packed memory accesses
We now track in the lvalue whether what we computed is expected to be aligend or not, and then set some state in the memory system accordingly to make it (not) do alignment checks
2017-07-12 17:46:56 -07:00
Oliver Schneider
4a03e45169 Add tests for #113
resolves #113
2017-07-12 09:29:18 +02:00
Ralf Jung
9a9666e2a6 Add a test for using a too big alignment on reallocate 2017-07-11 10:28:32 -07:00
Ralf Jung
ea730ab20f update tests for new allocator API 2017-07-10 16:15:58 -07:00
Ralf Jung
e60f11f52c update for latest nightly 2017-07-10 13:57:18 -07:00
Ralf Jung
3c0a6d6922 simplify reallocate 2017-07-10 13:34:54 -07:00
Oliver Schneider
b8bd42e8d4 Merge pull request #234 from RalfJung/reallocate
Make Reallocate & Deallocate less permissive
2017-07-05 19:54:54 +02:00
Oliver Schneider
10ec543b9e Merge pull request #235 from RalfJung/intrinsics
Implement some missing intrinsics
2017-07-04 08:38:22 +02:00
Ralf Jung
19d6ad74e5 add test for div-by-zero with the operator (rather than the intrinsic) 2017-07-03 20:59:47 -07:00
Ralf Jung
30f92f8a27 catch overflows that are hidden by first casting the RHS to u32 2017-07-03 20:50:19 -07:00
Ralf Jung
ffd482e2f5 check the assumptions made by the unchecked_ and copy_nonoverlapping intrinsics 2017-07-03 20:37:38 -07:00
Ralf Jung
f118ff43e7 implement the unchecked_ intrinsics; add all the doctests from one of the integer modules 2017-07-03 20:37:33 -07:00
Ralf Jung
79ab4f0e8c make u128 test work (commenting out the use of checked_shl) 2017-07-03 20:36:04 -07:00
Ralf Jung
440c4778fa validate size and alignment on reallocate and deallocate 2017-07-03 16:47:58 -07:00
Ralf Jung
bdcdb605a4 fix test on i686 2017-07-03 16:16:05 -07:00
Ralf Jung
dc9f5a205f properly check for: double-free, use-after-reallocate 2017-07-03 16:12:11 -07:00
Ralf Jung
030166757c Fix transmute on ByValPair
Fixes #227
2017-07-03 13:58:50 -07:00
Oliver Schneider
42d3edada7 Merge pull request #220 from oli-obk/undo_single_field_opt
Remove the `field` field from `Lvalue::Local`
2017-06-28 10:15:36 +02:00
David Renshaw
54821102b4 update tests for new error message 2017-06-27 21:31:38 -04:00
Oliver Schneider
5dfaacf310 Simplify all the code 2017-06-27 13:36:41 +02:00
Ralf Jung
4e90e3bcf6 remove redundant test 2017-06-24 11:05:13 -07:00
Ralf Jung
fbc00ddc95 make sure that 'identity casting' works 2017-06-24 11:05:13 -07:00
Ralf Jung
b1acc130bb check alignment of pointers on Ref 2017-06-24 11:05:13 -07:00
Ralf Jung
f0c8df2291 handle ptr-int casts explicitly in cast.rs 2017-06-24 11:05:13 -07:00
Ralf Jung
7b7f690274 Make sure that casting a ptr-integer down to u8 makes it unusable 2017-06-24 11:05:13 -07:00
Oliver Schneider
4aca1d0e0b Make zst compile-fail tests more readable 2017-06-24 12:46:35 +02:00
Oliver Schneider
377fcce9b8 Ensure tests run with and without full MIR 2017-06-23 16:41:56 +02:00
Oliver Schneider
9be3e9185b Remove the zst allocation 2017-06-23 12:55:49 +02:00
Ralf Jung
12935b6514 add some compile-fail tests 2017-06-22 14:46:53 -07:00
Ralf Jung
14cb31fb88 permit bit-anding in pointer values below the alignment
This makes HashMap work!
2017-06-22 14:46:53 -07:00
Ralf Jung
269667e152 implement _nonzero intrinsics 2017-06-22 14:46:53 -07:00
Ralf Jung
2f61356858 permit offsetting a NULL-ptr by 0, to fix hashmap test 2017-06-22 13:41:13 -07:00