Commit Graph

563 Commits

Author SHA1 Message Date
Ralf Jung
31fbb5a9b2 fix imports 2019-12-31 12:10:52 +01:00
Ralf Jung
e1fceafcea with FS access, default HashMap should work on macOS 2019-12-31 12:06:42 +01:00
Christian Poveda
75f7a118e6
remove restrictions due to stat unavailability 2019-12-25 12:38:34 -05:00
Christian Poveda
d9ecd77ada
add dummy stat shim 2019-12-25 08:27:49 -05:00
Ralf Jung
e325ad24f2 support main functions with Result return type 2019-12-23 17:45:23 +01:00
bors
a3ea1cb458 Auto merge of #1101 - christianpoveda:stat-shim, r=RalfJung
Add statx shim for linux target

This is an attempt to fix: https://github.com/rust-lang/miri/issues/999 (for linux only)

Currently there is one problem that I haven't been able to solve. `std::fs::metadata` fails because the creation time is not available even though it is provided in the shim code.

In order to inform the caller that the field was provided, the `stx_flag` field must have the bits of `STATX_BTIME` set (which they are). The creation time is in the `stx_btime` field of the `statx` struct (see [1]). The relevant code in `libstd` is here (probably?): https://github.com/rust-lang/rust/blob/master/src/libstd/sys/unix/fs.rs#L322

Another important point is that we are just providing the fields that are available in "all" platforms (this is, without using any platform specific traits or so). This can be improved later.

References:
[1] Man page: http://man7.org/linux/man-pages/man2/statx.2.html
[2] libc `statx` struct: https://docs.rs/libc/0.2.63/libc/struct.statx.html

Edit: The problem is that my filesystem is not providing it and I thought all filesystems could provide it. I changed the code so it only provides those dates if they are available. now we are ready to go.

r? @RalfJung @oli-obk
2019-12-22 17:01:53 +00:00
Christian Poveda
b0c7625dd1
add statx shim for linux 2019-12-22 11:46:02 -05:00
Ralf Jung
74ef63ff0a the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
Ralf Jung
b0a205ce6f add caller_location tests to Miri 2019-12-08 11:06:35 +01:00
Ralf Jung
e92d16d9cd add flag to ignore memory leaks 2019-12-07 13:44:48 +01:00
Ralf Jung
ce7b44b048 ignore another panicking test on Windows 2019-12-02 16:48:18 +01:00
Ralf Jung
ae53b1222a fix and expand panic tests 2019-12-02 16:04:31 +01:00
Ralf Jung
4cf83433b1 test built-in panic catching 2019-12-02 16:04:31 +01:00
Ralf Jung
9f9e547d79 test diverging closure fn ptr coercion 2019-12-02 15:42:33 +01:00
Ralf Jung
bba9359256 expand coerce fn test 2019-12-02 15:42:33 +01:00
Ralf Jung
1c420b0b55 improve style in catch_panic test 2019-12-02 09:11:33 +01:00
Ralf Jung
f7efe238f3 fix catch_panic.stderr 2019-12-01 11:04:51 +01:00
Ralf Jung
2789e72e18 test more panics 2019-12-01 11:04:32 +01:00
Ralf Jung
2152258b04 and another reference 2019-11-25 15:10:39 +01:00
Ralf Jung
66dc939787 rename some more tests 2019-11-25 15:08:47 +01:00
Ralf Jung
d16e12b0a4 rename test and add some references 2019-11-25 15:08:24 +01:00
Ralf Jung
51d47e8dc5 test closure-to-fn-ptr coercions a bit more 2019-11-25 15:01:05 +01:00
Ralf Jung
35e1fe1665 also test non-string panic payload 2019-11-24 10:51:48 +01:00
Ralf Jung
ee411c2a74 beef up catch_panic test 2019-11-24 10:24:41 +01:00
bors
644e2a76a8 Auto merge of #1067 - Aaron1011:feature/inverse-trig, r=RalfJung
Add acos, asin, and atan foreign functions

I copied the tests from the docs pages
2019-11-22 09:23:24 +00:00
Ralf Jung
6888555ca9 rustup for never stabilization 2019-11-22 09:50:22 +01:00
Aaron Hill
a328683c4a
Add acos, asin, and atan foreign functions
I copied the tests from the docs pages
2019-11-21 17:33:30 -05:00
Ralf Jung
f16f891191 slice matching overflow got fixed 2019-11-20 19:38:41 +01:00
Aaron Hill
80f9484c86
Disable panic tests on Windows
Miri currently does not support `GetProcAddress`
and `GetModuleHandleW`, both of which end up getting invoked by the
libstd panic hook.
2019-11-17 13:49:31 -05:00
Aaron Hill
08d3fbc76b
Support unwinding after a panic
Fixes #658

This commit adds support for unwinding after a panic. It requires a
companion rustc PR to be merged, in order for the necessary hooks to
work properly.

Currently implemented:
* Selecting between unwind/abort mode based on the rustc Session
* Properly popping off stack frames, unwinding back the caller
* Running 'unwind' blocks in Mir terminators

Not yet implemented:
* 'Abort' terminators

This PR was getting fairly large, so I decided to open it for review without
implementing 'Abort' terminator support. This could either be added on
to this PR, or merged separately.
2019-11-17 08:34:25 -05:00
Ralf Jung
82ef2bb0e2 rename miri-issue to issue-miri for grouping 2019-11-14 10:16:44 +01:00
Steven Gu
ca983f5f80 Implments intrinsics::copysignf32 and intrinsics::copysignf64. 2019-11-13 17:41:09 +08:00
bors
9316d90315 Auto merge of #1040 - RalfJung:rustup, r=RalfJung
rustup
2019-11-08 17:49:38 +00:00
Ralf Jung
4c25cf0a87 fix into_iter usage 2019-11-08 12:43:26 +01:00
Ralf Jung
57dec5c791 also test Box<self> receiver 2019-11-07 09:17:40 +01:00
Ralf Jung
b7a8ce1be0 move blosure tests to closures file; test Box<dyn> a bit more 2019-11-07 09:14:23 +01:00
Ralf Jung
04c12952ca centralize and expand dyn-trait (method receiver) tests 2019-11-07 09:05:11 +01:00
Ralf Jung
c77b282695 rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
Ralf Jung
8b1630cb3b tweak and slightly extend box-box-trait test 2019-11-07 08:55:59 +01:00
Ralf Jung
f4fb330c67 test offset_from 2019-11-05 20:17:35 +01:00
Ralf Jung
99282efc86 add an interesting run-pass stacked borrows example 2019-11-05 11:05:02 +01:00
Ralf Jung
459aea8f52 test align_to example 2019-10-25 20:26:01 +02:00
Ralf Jung
2690f5948a rustup: fix for write_bytes and new union rules 2019-10-22 10:13:11 +02:00
bors
d902a11575 Auto merge of #975 - christianpoveda:clock-shim, r=RalfJung
Add clock_gettime shim

r? @oli-obk

I think there is no way to do proper testing of this other than checking that miri does not crash when calling `clock_gettime`.
2019-10-15 07:36:42 +00:00
Christian Poveda
f9c768864a Use places instead of ptrs to write packed immtys 2019-10-14 16:00:40 -05:00
Christian Poveda
f425f445d1 Check that fs errors have the proper kind 2019-10-14 07:24:52 -05:00
Ralf Jung
9082092a71 use temp_dir for FS test 2019-10-11 23:02:04 +02:00
Christian Poveda
aa3e9703d1 Add clock_gettime shim 2019-10-11 11:36:33 -05:00
bors
6a2776e465 Auto merge of #983 - christianpoveda:fs-shims-tweaks, r=RalfJung
Various fixes to the file related shims

Hi @RalfJung, I'll be working incrementally over your comments for the new `fs` shims module here.
2019-10-11 13:37:05 +00:00
Christian Poveda
67ea454647 Correct style of comments 2019-10-11 04:17:43 -05:00
Christian Poveda
e9138ab4d6 Rename file manipulation test to fs 2019-10-11 04:01:07 -05:00
Christian Poveda
ae9f4e1e63 Avoid using the tests folder for the file manipualtion test 2019-10-11 04:00:12 -05:00
Christian Poveda
8368d4f2b4 Add comments to explain the chdir test 2019-10-11 02:35:50 -05:00
Ralf Jung
62f08eb416 also test AcqRel fence 2019-10-09 10:29:08 +02:00
Christian Poveda
00792493ef Add tests for non-existing files 2019-10-08 08:57:30 -05:00
Christian Poveda
ffc47de1b9 Add unlink shim to delete files 2019-10-08 08:50:58 -05:00
Nicolas
bd4a2996d1 Add test for atomic fences 2019-10-05 08:20:17 -03:00
Christian Poveda
6c36a8c949 Return earlier when reading/writing 0 bytes 2019-10-02 09:12:03 -05:00
Christian Poveda
f5022b19d3 Fix dangling pointer bug for zero-sized reads 2019-10-02 08:43:23 -05:00
Christian Poveda
cd495cb04f Add file writing capabilities 2019-10-01 11:10:37 -05:00
bors
1037f69bf6 Auto merge of #962 - christianpoveda:file-shim, r=oli-obk
Add shims for file handling

This adds the bare minimum to be able to do `File::open` and `File::read`. I also need some feedback about how to handle certain things
2019-10-01 15:33:09 +00:00
Christian Poveda
b540e5d24e Reserve fides for stdio and fix merge issues 2019-09-30 10:54:51 -05:00
Ralf Jung
a9c207dce2 fix tests on 32bit 2019-09-29 12:26:13 -04:00
Ralf Jung
b5d449949a comments and another test 2019-09-29 11:49:04 -04:00
Ralf Jung
9650b7868e more align_offset tests 2019-09-29 11:43:50 -04:00
bors
b625812092 Auto merge of #957 - christianpoveda:ptr-align-offset, r=RalfJung
Fixes for align_offset

This addresses @RalfJung's comments in https://github.com/rust-lang/miri/pull/945
2019-09-28 18:38:00 +00:00
Christian Poveda
bdaa90ceb2 Add FIXME to file reading test 2019-09-25 11:12:46 -05:00
Christian Poveda
79b1f91f45 First version of file handling 2019-09-25 01:17:18 -05:00
Christian Poveda
0eed5e64de Add chdir shim 2019-09-24 15:50:00 -05:00
bors
2e17933eed Auto merge of #958 - christianpoveda:getcwd-shim, r=oli-obk
Add getcwd shim
2019-09-24 16:22:21 +00:00
Christian Poveda
e2c54e64d1 Ignore integers 2019-09-22 21:39:17 -05:00
Ralf Jung
0ab0e40e1b add another test case 2019-09-20 08:53:35 +02:00
Ralf Jung
d53d7f77a0 err on all-but-B, not just on C 2019-09-20 08:53:35 +02:00
Ralf Jung
7e65c44714 test for niche enum discriminant computation that overflows 2019-09-20 08:53:35 +02:00
Christian Poveda
133c2b39db Only use getcwd without isolation 2019-09-19 10:32:18 -05:00
Christian Poveda
6593563e46 Check that getcwd does not error 2019-09-18 20:01:09 -05:00
Christian Poveda
497de53825 Update align_offset tests 2019-09-17 11:47:36 -05:00
Christian Poveda
fa20338c9a Use str::from_utf8 instead 2019-09-12 09:36:31 -05:00
Christian Poveda
ed70617b9c Add test for u8 align_offset 2019-09-11 12:08:42 -05:00
Ralf Jung
f5c35a2584 fix async test 2019-09-11 17:13:32 +02:00
Christian Poveda
f4a25e530a Add env exclusion test 2019-08-28 17:57:41 -05:00
Ralf Jung
55efee9140 test host randomness access 2019-08-23 23:30:23 +02:00
Ralf Jung
97f9fb1284 change flag name: enable-communication -> disable-isolation 2019-08-23 23:29:11 +02:00
Ralf Jung
1be4e2ff58 bump Rust 2019-08-21 09:07:27 +02:00
Ralf Jung
a76bc3fb87 test arrray try_from (interesting const generic usage) 2019-08-20 16:11:03 +02:00
Ralf Jung
be4108e27c test some new uninit APIs 2019-08-18 11:34:09 +02:00
Ralf Jung
60a0688185 adjust tests for eager pointer checks on deref 2019-08-15 11:01:03 +02:00
bors
1f504ea7be Auto merge of #894 - christianpoveda:env-vars-communication, r=RalfJung
Enable env communication

related issue: https://github.com/rust-lang/miri/issues/800. r? @RalfJung
2019-08-14 18:58:06 +00:00
Christian Poveda
f451fe21bd Test env isolation 2019-08-13 16:17:53 -05:00
bors
a5eb61a4ad Auto merge of #902 - RalfJung:ldexp, r=RalfJung
use apfloat for ldexp
2019-08-10 09:34:31 +00:00
Ralf Jung
33eb5657d6 ldexp: test overflow behavior 2019-08-10 11:31:20 +02:00
Ralf Jung
abcd244927 add async fn with partial initialization 2019-08-09 11:01:42 +02:00
Ralf Jung
fc06cb71bf simplify async-fn tests 2019-08-09 11:01:42 +02:00
Ralf Jung
d5294a5bf3 test generator that yields during initialization of struct with uninhabited field 2019-08-09 11:01:42 +02:00
bors
1766d1b84b Auto merge of #896 - tmandry:add-generator-uninhabited-test, r=RalfJung
Add generator, async tests with uninhabited saved local

See discussion in https://github.com/rust-lang/rust/pull/63035.
2019-08-09 08:20:00 +00:00
Tyler Mandry
f544721de4 Add generator, async tests with uninhabited saved local 2019-08-07 16:56:35 -07:00
Christian Poveda
af623dede2 Add env var test variable in compiletest 2019-08-07 09:09:13 -05:00
Christian Poveda
b731a6a15f Add support for env communication 2019-08-06 17:40:07 -05:00
bors
93e110f370 Auto merge of #886 - Aaron1011:shim/getrandom, r=RalfJung
Shim 'libc::getrandom' in addition to 'libc::syscall(libc::SYS_getrandom)'
2019-08-04 21:02:08 +00:00
Aaron Hill
a208f2fccf
Improve formatting
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-08-04 16:44:32 -04:00