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