Commit Graph

661 Commits

Author SHA1 Message Date
David Cook
88f319fb4c Add failing tests for mutex and rwlock 2020-04-05 09:25:21 -05:00
David Cook
46679bc9ef Add shims for RwLock::try_read/RwLock::try_write 2020-04-05 09:25:21 -05:00
bors
0e8a1a40f2 Auto merge of #1294 - JOE1994:windows_instant, r=RalfJung
Add support for 'std::time::Instant' in Windows

Add support for creating `std::time::Instant` in Windows

Includes shims for `QueryPerformanceCounter` & `QueryPerformanceFrequency` in Windows, which are both called in Windows when `std::time::Instant` is created.

Windows docs page ["Acquiring high-resolution time stamps"](https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps) was helpful in learning how `QueryPerformanceCounter` & `QueryPerformanceFrequency` work.

closes #1291
2020-04-03 06:36:15 +00:00
JOE1994
d5de67a5a0 change cfg gate to enable testing Instant subtraction in Windows 2020-04-02 16:15:23 -04:00
Ralf Jung
033eae5ad7 rustup for AllocRef changes 2020-04-02 11:45:17 +02:00
JOE1994
957ec2be10 Add support for 'std::time::Instant' in Windows 2020-04-01 20:35:56 -04:00
Ralf Jung
41d90709f2 sanity check time values a bit more 2020-04-01 20:34:12 +02:00
JOE1994
b3f9e53049 Implement 'GetSystemTimeAsFileTime' shim for Windows 2020-04-01 10:55:26 -04:00
Ralf Jung
26b5012368 add TODO 2020-03-31 17:53:27 +02:00
Ralf Jung
62eaecd2aa test subtracting SystemTime and Instant 2020-03-31 17:50:10 +02:00
bors
319f2dd9e1 Auto merge of #1279 - divergentdave:open_O_EXCL, r=RalfJung
Add support for OpenOptions::create_new()/O_EXCL

This PR extends the POSIX shim for `open` to support the `O_EXCL` flag, when it is used alongside `O_CREAT`, and exercises it by testing `OpenOptions::create_new`.
2020-03-30 15:49:45 +00:00
Ralf Jung
846ce3c261 test const-generic Vec::from(array) 2020-03-30 10:23:16 +02:00
David Cook
808709c288 Add support for OpenOptions::create_new()/O_EXCL 2020-03-29 16:06:41 -05:00
JOE1994
1141b21e50 Windows shims for GetCurrentDirectoryW/SetCurrentDirectoryW 2020-03-29 11:30:08 -04:00
Ralf Jung
4e471f745f fix float test comments and test a few more int->float casts 2020-03-28 15:47:00 +01:00
bors
fc30266540 Auto merge of #1265 - RalfJung:float-cast, r=RalfJung
test floating point casting better
2020-03-28 14:19:29 +00:00
Ralf Jung
b8a817fc03 avoid promotion so this can be compared with rustc 2020-03-28 09:20:07 +01:00
Ralf Jung
032d9aa7d5 also do some float-to-float cast testing 2020-03-28 09:10:34 +01:00
JOE1994
ea836eeb0d remove or update 'ignore-windows' annotations in some tests 2020-03-27 14:18:19 -04:00
JOE1994
2fa07009f2 Windows shims for env var emulation
Shims for GetEnvironmentVariableW / SetEnvironmentVariableW /
GetEnvironmentStringsW.
Passes test 'tests/run-pass/env.rs'
2020-03-27 08:43:08 -04:00
Ralf Jung
a97ce8d94b test floating point casting better 2020-03-26 19:25:51 +01:00
Ralf Jung
8817397828 test harness informs tests about suitable temp dir 2020-03-24 09:11:48 +01:00
Ralf Jung
3ba588db49 make fs.rs at least build under Windows 2020-03-24 09:11:48 +01:00
Ralf Jung
9091811147 use Wake trait for async-fn driver 2020-03-23 23:53:54 +01:00
Ralf Jung
b4b8750e44 bump Rust; HashMap should now work on macOS even with isolation 2020-03-23 10:34:15 +01:00
Ralf Jung
d85f09c4e4 platform -> target 2020-03-22 08:55:39 +01:00
Ralf Jung
4608b94bd8 implement CLOCK_MONOTONIC on Linux 2020-03-19 23:01:24 +01:00
Elichai Turkel
0826899ca0
Remove uninhabit/zeroed tests to a new test file for abort checking 2020-03-18 14:14:23 +02:00
Ralf Jung
548c90e102 share some code between panic intrinsics, and fix the message 2020-03-11 19:53:07 +01:00
Elichai Turkel
2802c3cf0b
Add tests for the new panic_if_any_invalid, panic_if_zero_invalid intrinsics 2020-03-11 16:02:49 +02:00
Ralf Jung
8394456247 properly panic in panic_if_uninhabited and align_offset shims 2020-03-08 20:00:40 +01:00
bors
574d81ce79 Auto merge of #1208 - christianpoveda:environ-shim, r=RalfJung
Environ shim

Remake of https://github.com/rust-lang/miri/pull/1147. There are three main problems with this:

1. For some reason `update_environ` is not updating `environ` when `setenv` or `unsetenv` are called. Even then it works during initialization.
2. I am not deallocating the old array with the variables in `update_environ`.
3. I had to store the `environ` place into `MemoryExtra` as a field to update it. I was thinking about changing `extern_statics` to store places instead of `AllocID`s to avoid this.

@RalfJung
2020-03-08 15:39:43 +00:00
Ralf Jung
fefa8e5344 expand clock and fs tests a bit 2020-03-06 14:32:46 +01:00
Ralf Jung
7882dfb3f5
fix env update, and expand test 2020-03-06 08:21:53 -05:00
Christian Poveda
a28330febb
add testcase for environ shim 2020-03-06 08:21:53 -05:00
Ralf Jung
148269dd4b finally stop using min/max_value and the integer modules 2020-03-04 13:01:06 +01:00
Ralf Jung
db0d03229c fix allocator tests 2020-03-04 10:19:35 +01:00
Ralf Jung
58519a7a79 try even harder to catch invalid generator fields 2020-03-03 15:02:06 +01:00
bors
c0934e1eca Auto merge of #1152 - divergentdave:shim-directory, r=RalfJung
Add directory-related shims

This PR adds support for `mkdir`, `rmdir`, `opendir`, `closedir`, and `readdir64_r`.

Open directory streams are tracked through a HashMap indexed by pointer locations, which holds directory iterators. Since `DIR` is an opaque type in glibc, I represent them with 1-byte allocations, and then just use their pointers in HashMap lookups.

Tests are included to exercise the new functionality.
2020-02-26 14:15:55 +00:00
David Cook
9fcc8a2a91 Review comments 2020-02-24 19:16:41 -06:00
Ralf Jung
274ae0438f add an option to disable Stacked Borrows 2020-02-24 16:22:02 +01:00
David Cook
341212acd6 Rewrite fs tests 2020-02-23 15:34:49 -06:00
David Cook
a82049587c Use longer file names in test 2020-02-23 15:28:50 -06:00
David Cook
d461c12c83 Add more information to test asserts 2020-02-23 15:26:47 -06:00
David Cook
5d35339111 Add shim for readdir64_r 2020-02-23 15:08:44 -06:00
David Cook
5b34f06bae Add shims for mkdir and rmdir 2020-02-23 15:02:49 -06:00
Ralf Jung
3e2f29a079 remove some no-longer-needed allow(const_err) 2020-02-21 11:05:56 +01:00
Ralf Jung
627d7cba64 fix for const-prop lint changes 2020-02-21 10:33:00 +01:00
David Cook
32a354efa3 Test error case of std::fs::rename 2020-02-20 21:54:52 -06:00
Ralf Jung
3cd13cb174 test a bit more 2020-02-19 11:14:30 +01:00
Ralf Jung
f79c453860 factor more common code 2020-02-19 11:12:30 +01:00
Ralf Jung
8b31763816 fs test: factor some common code 2020-02-19 11:12:30 +01:00
David Cook
0933314bff Rewrite file system tests 2020-02-17 22:36:33 -06:00
David Cook
962a740426 Rewrite file descriptor handling 2020-02-17 22:24:33 -06:00
David Cook
636ad629f8 Functional test of cloned file handle 2020-02-17 22:24:33 -06:00
David Cook
085874d1ff Add F_DUPFD/F_DUPFD_CLOEXEC to fcntl shim 2020-02-17 22:24:33 -06:00
bors
daaf9f7e28 Auto merge of #1177 - RalfJung:debug-assert, r=RalfJung
Make sure we evaluate debug assertions in local crate and libstd

Fixes https://github.com/rust-lang/miri/issues/1126
2020-02-16 13:04:06 +00:00
Ralf Jung
6ff5b3fcf9 make sure we also trigger debug assertions in libstd 2020-02-16 13:55:51 +01:00
Ralf Jung
39a78f0b24 make sure assertions and debug-assertions also panic (and can be caught) 2020-02-16 13:47:31 +01:00
bors
0a803c9752 Auto merge of #1158 - divergentdave:shim-rename, r=RalfJung
Add shim for rename

This adds a straightforward shim for rename, which is used by `std::fs::rename`. Testing is included.

As a heads up, I expect one or two merge conflicts between my PRs, since some of them touch the same `use` statements, or add items near the same places. I'll rebase and fix them as they come up.
2020-02-14 20:26:23 +00:00
David Cook
91868125a5
Removing file after rename must succeed
Co-Authored-By: Ralf Jung <post@ralfj.de>
2020-02-14 08:19:16 -06:00
Ralf Jung
a843fd4e17 add test for layout optimizations 2020-02-12 22:04:58 +01:00
David Cook
f7e0857644 Test that src path of rename is no longer a file 2020-02-08 22:40:46 -06:00
David Cook
38204b6321 Add shim for rename 2020-02-08 22:33:49 -06:00
bors
f9615bfd67 Auto merge of #1159 - divergentdave:shim-seek, r=RalfJung
Add shim for seeking files

This adds a shim for `lseek64` (`lseek` on macOS). This enables the use of `<File as Seek>::seek`. Testing is included.
2020-02-08 13:54:33 +00:00
Ralf Jung
45f6744fda panics dont work on Windows, just the smoke test should be enough 2020-02-07 14:20:42 +01:00
Ralf Jung
418dd641dc test more generator resume things 2020-02-07 14:02:36 +01:00
Ralf Jung
d208a5fe3b rustup; fix generator test 2020-02-07 14:02:27 +01:00
David Cook
98a1cac4ef Add tests to cover SEEK_CUR and SEEK_END 2020-02-06 17:50:33 -06:00
bors
9c0b89cff7 Auto merge of #1163 - RalfJung:raw-cast, r=RalfJung
Test raw-ptr-cast without reborrow

With https://github.com/rust-lang/rust/pull/64588 landed, we can finally test these things adequately. :)
2020-01-30 22:20:36 +00:00
bors
e7f5c4f155 Auto merge of #1151 - divergentdave:statx-AT_EMPTY_PATH, r=RalfJung
Add support for AT_EMPTY_PATH to statx shim

This enables use of `File::metadata()`.
2020-01-30 21:30:32 +00:00
Ralf Jung
b2c9871f7d update another comment 2020-01-30 13:29:55 +01:00
Ralf Jung
3cf413e4c2 remove inadequate comment 2020-01-30 12:22:54 +01:00
Ralf Jung
e0adfe4d45 new compile-fail test involving non-reborrowing-cast-to-raw 2020-01-30 12:22:15 +01:00
Ralf Jung
acd156d722 add test that relies on non-reborrowing-cast-to-raw 2020-01-30 12:17:02 +01:00
bors
aff1e43137 Auto merge of #1154 - TimDiekmann:rename-alloc, r=RalfJung
Rename `Alloc` to `AllocRef`

Required to land https://github.com/rust-lang/rust/pull/68529. Please see that PR for details. The CI is expected to fail until the PR is landed.
2020-01-29 21:44:06 +00:00
bors
8c5dee6f88 Auto merge of #1155 - divergentdave:shim-posix_fadivse, r=RalfJung
Add no-op shim for posix_fadvise

This function is present in the libc crate, but not exposed through the standard library anywhere, so I haven't included a test for it.
2020-01-29 21:24:30 +00:00
Tim Diekmann
3d8bf92a11
Rename Alloc to AllocRef
Required to land https://github.com/rust-lang/rust/pull/68529. Please see that PR for details. The CI is expected to fail until the PR is landed.
2020-01-29 04:10:33 +01:00
David Cook
a30914bcdd Conditional compilation fix 2020-01-28 20:39:06 -06:00
David Cook
a39a5f8189 Disable posix_fadvise test on macOS, not in libc 2020-01-28 19:57:56 -06:00
David Cook
2a2dde1494 Try fixing test on i686-unknown-linux-gnu 2020-01-28 19:04:16 -06:00
David Cook
b2d404d19a Move posix_fadvise test to new libc test file 2020-01-28 18:59:49 -06:00
Ralf Jung
9f6df67238 test track_caller with fn ptrs 2020-01-28 22:55:07 +01:00
David Cook
4e42e77483 Add test for posix_fadvise 2020-01-27 06:28:45 -06:00
David Cook
03b5d95cff Add shim for lseek64 2020-01-26 12:36:36 -06:00
David Cook
d94b88ef98 Add support for AT_EMPTY_PATH to statx shim 2020-01-25 22:21:33 -06:00
David Cook
9265e0cd5e Add compiler fences to test 2020-01-25 13:48:26 -06:00
Ralf Jung
b2303a7da1 slice_patterns is stable now 2020-01-19 10:03:18 -06:00
bors
b4c54b4641 Auto merge of #1143 - christianpoveda:symlink-shim, r=RalfJung
Add shim for symbolic link creation

r? @RalfJung
2020-01-10 17:21:12 +00:00
Christian Poveda
0b5a30515e
small corrections 2020-01-10 12:01:05 -05:00
Ralf Jung
833816dd35 Unwind panicking does not currently work on Windows 2020-01-09 11:41:08 +01:00
Ralf Jung
e9b4323048 also make sure the hook actually gets called 2020-01-09 11:24:41 +01:00
Ralf Jung
b1676a3e89 test that unwrap gets us the right panic location 2020-01-09 11:20:13 +01:00
Christian Poveda
329310fbd6
Clean paths for robustness 2020-01-07 11:09:07 -05:00
Christian Poveda
4a1dbc77dc
Add shim for symbolic link creation 2020-01-06 16:30:17 -05:00
Ralf Jung
0217a25a12 remove no-longer-needed allow(const_err) 2020-01-06 11:38:35 +01:00
Ralf Jung
c68996dda7 note a FIXME 2020-01-02 15:57:33 +01:00
Wesley Wiser
959033cbfb Bump rustc version to fix miri 2020-01-01 21:33:51 -05:00
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