rust/tests/run-pass
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
..
panic the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
stacked-borrows add an interesting run-pass stacked borrows example 2019-11-05 11:05:02 +01:00
align_offset.rs test align_to example 2019-10-25 20:26:01 +02:00
align_offset.stdout more align_offset tests 2019-09-29 11:43:50 -04:00
args.rs
args.stdout
arrays.rs test arrray try_from (interesting const generic usage) 2019-08-20 16:11:03 +02:00
arrays.stdout test some const-generic-using methods 2019-07-13 10:25:04 +02:00
associated-const.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
assume_bug.rs
async-fn.rs the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
atomic.rs also test AcqRel fence 2019-10-09 10:29:08 +02:00
bad_substs.rs
binops.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
bitop-beyond-alignment.rs explain better what is non-deterministic here 2019-07-24 08:57:05 +02:00
bools.rs
box-pair-to-vec.rs
box-pair-to-vec.stdout
btreemap.rs test BTree a bit more 2019-02-22 17:42:01 +01:00
c_enums.rs test more enum-int-cast code paths 2019-06-11 19:41:43 +02:00
calloc.rs Fix calloc test 2019-04-08 01:26:52 +02:00
calls.rs
cast_fn_ptr_unsafe.rs
cast_fn_ptr.rs
cast-rfc0401-vtable-kinds.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
catch.rs
catch.stdout
char.rs
clock.rs Use places instead of ptrs to write packed immtys 2019-10-14 16:00:40 -05:00
closure-drop.rs
closure-field-ty.rs
closures.rs move blosure tests to closures file; test Box<dyn> a bit more 2019-11-07 09:14:23 +01:00
coerce_non_capture_closure_to_fn_ptr.rs test diverging closure fn ptr coercion 2019-12-02 15:42:33 +01:00
coercions.rs rename some more tests 2019-11-25 15:08:47 +01:00
const-vec-of-fns.rs Various cosmetic improvements. 2019-02-26 18:37:46 +00:00
constants.rs
current_dir.rs Correct style of comments 2019-10-11 04:17:43 -05:00
deriving-associated-types.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
drop_empty_slice.rs
drop_on_array_elements.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
drop_on_fat_ptr_array_elements.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
drop_on_zst_array_elements.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
drop_through_owned_slice.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
drop_through_trait_object_rc.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
drop_through_trait_object.rs rename call_drop_ tests to drop_ 2019-11-07 08:56:11 +01:00
dst-field-align.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
dst-irrefutable-bind.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
dst-raw.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
dst-struct-sole.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
dst-struct.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
dyn-traits.rs also test Box<self> receiver 2019-11-07 09:17:40 +01:00
enum-nullable-const-null-with-fields.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
enums.rs add another test case 2019-09-20 08:53:35 +02:00
env-exclude.rs Add env exclusion test 2019-08-28 17:57:41 -05:00
env-without-isolation.rs test host randomness access 2019-08-23 23:30:23 +02:00
env.rs Test env isolation 2019-08-13 16:17:53 -05:00
exit.rs implement exit 2019-04-21 12:36:17 +02:00
extern_types.rs
fat_ptr.rs rename some more tests 2019-11-25 15:08:47 +01:00
float_fast_math.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
floats.rs Implments intrinsics::copysignf32 and intrinsics::copysignf64. 2019-11-13 17:41:09 +08:00
foreign-fn-linkname.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
format.rs
format.stdout
from_utf8.rs
fs.rs add statx shim for linux 2019-12-22 11:46:02 -05:00
function_pointers.rs
generator.rs the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
hashmap.rs update miri-seed handling for run-pass test suite 2019-07-23 21:53:47 +02:00
heap_allocator.rs update miri-seed handling for run-pass test suite 2019-07-23 21:53:47 +02:00
heap.rs ignore overaligned tests on Windows (because, of course, Windows' API is broken here) 2019-02-13 19:48:26 +01:00
hello.rs
hello.stdout
integer-ops.rs
intptrcast.rs review failing compile-fail tests 2019-07-23 23:25:06 +02:00
intrinsics-integer.rs implement and test unchecked_{add,sub,mul} intrinsics 2019-06-16 11:10:33 +02:00
intrinsics-math.rs Add acos, asin, and atan foreign functions 2019-11-21 17:33:30 -05:00
intrinsics.rs bump Rust 2019-07-26 10:14:44 +02:00
ints.rs rustup for ... deprecation 2019-06-01 10:04:49 +02:00
issue-3794.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-3794.stdout
issue-5917.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-15063.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-15080.rs adjust for slice pattern changes 2019-07-29 10:21:59 +02:00
issue-15523-big.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-17877.rs slice matching overflow got fixed 2019-11-20 19:38:41 +01:00
issue-20575.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-23261.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-26709.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-27901.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-29746.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-30530.rs Fix unused_must_use inside Box 2019-06-30 15:31:14 +01:00
issue-31267-additional.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-33387.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-34571.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-35815.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
issue-36278-prefix-nesting.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
issue-53728.rs
issue-miri-133.rs rename miri-issue to issue-miri for grouping 2019-11-14 10:16:44 +01:00
issue-miri-184.rs
issue-miri-1075.rs test diverging closure fn ptr coercion 2019-12-02 15:42:33 +01:00
iter.rs fix into_iter usage 2019-11-08 12:43:26 +01:00
last-use-in-cap-clause.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
linked-list.rs add LinkedList test and mention the bug Miri found there 2019-04-19 23:08:24 +02:00
linux-getrandom-without-isolation.rs test host randomness access 2019-08-23 23:30:23 +02:00
linux-getrandom.rs Improve formatting 2019-08-04 16:44:32 -04:00
loop-break-value.rs the never type got de-stabilized again; adjust tests 2019-12-15 12:23:43 +01:00
loops.rs
main_fn.rs
malloc.rs update miri-seed handling for run-pass test suite 2019-07-23 21:53:47 +02:00
many_shr_bor.rs
match_slice.rs
memchr.rs
memleak_ignored.rs add flag to ignore memory leaks 2019-12-07 13:44:48 +01:00
move-arg-2-unique.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
move-arg-3-unique.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
move-undef-primval.rs fix test using mem::uninitialized 2019-07-06 09:33:22 +02:00
mpsc.rs force pointers before reborrowing; fixes cargo miri test suite 2019-07-10 14:36:56 +02:00
multi_arg_closure.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
negative_discriminant.rs
observed_local_mut.rs
option_box_transmute_ptr.rs
option_eq.rs
overloaded-calls-simple.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
packed_static.rs
packed_struct.rs
pointers.rs allow some inequality comparisons between pointers and integers 2019-06-20 16:38:55 +02:00
products.rs
ptr_arith_offset_overflow.rs test for pointer wrapping ICE 2019-05-28 22:46:56 +02:00
ptr_arith_offset.rs make run-pass tests pass. tweak how we remove barriers. 2019-04-17 16:02:57 +02:00
ptr_int_casts.rs now we can also enable the ptr_int_cast test again 2019-07-10 14:36:56 +02:00
ptr_int_ops.rs
ptr_offset_from.rs test offset_from 2019-11-05 20:17:35 +01:00
ptr_offset.rs now we can also enable the ptr_int_cast test again 2019-07-10 14:36:56 +02:00
raw.rs
rc.rs test some new uninit APIs 2019-08-18 11:34:09 +02:00
recursive_static.rs
regions-lifetime-nonfree-late-bound.rs update for rustc warning about missing dyn 2019-05-30 10:58:30 +02:00
regions-mock-trans.rs make run-pass tests pass. tweak how we remove barriers. 2019-04-17 16:02:57 +02:00
rfc1623.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
rust-lang-org.rs
send-is-not-static-par-for.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
sendable-class.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
simd-intrinsic-generic-elements.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
slices.rs test some new uninit APIs 2019-08-18 11:34:09 +02:00
small_enum_size_bug.rs
specialization.rs
static_memory_modification.rs
static_mut.rs
strings.rs
subslice_array.rs adjust for slice pattern changes 2019-07-29 10:21:59 +02:00
sums.rs
sync.rs improve comment 2019-06-30 16:45:41 +02:00
tag-align-dyn-u64.rs
thread-local.rs fix existing tests 2019-06-02 22:16:02 +02:00
too-large-primval-write-problem.rs Various cosmetic improvements. 2019-02-26 18:37:46 +00:00
track-caller-attribute.rs add caller_location tests to Miri 2019-12-08 11:06:35 +01:00
transmute_fat.rs don't call Stacked Borrows hooks at all when validation is disabled 2019-07-03 10:47:28 +02:00
trivial.rs
try-operator-custom.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
tuple_like_enum_variant_constructor_pointer_opt.rs
tuple_like_enum_variant_constructor_struct_pointer_opt.rs
tuple_like_enum_variant_constructor.rs
tuple_like_struct_constructor.rs
u128.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
union-overwrite.rs rustup: fix for write_bytes and new union rules 2019-10-22 10:13:11 +02:00
union.rs
unops.rs
unsized-tuple-impls.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
validation_lifetime_resolution.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
vec-matching-fold.rs adjust for slice pattern changes 2019-07-29 10:21:59 +02:00
vecdeque.rs test VecDeque debug printing 2019-02-15 10:41:12 +01:00
vecdeque.stdout test VecDeque debug printing 2019-02-15 10:41:12 +01:00
vecs.rs be pragmatic about ptr-int comparisons, for now 2019-04-16 17:47:37 +02:00
volatile.rs use copy_op directly insteadof write_scalar 2019-02-26 19:49:02 +09:00
without-validation.rs test for no-validation-only failure 2019-06-04 13:21:04 +02:00
write-bytes.rs
zero-sized-binary-heap-push.rs Removed copyright notices. 2019-02-26 18:37:45 +00:00
zst_box.rs
zst_variant_drop.rs
zst.rs adjust for refactored memory pointer checks 2019-06-23 20:19:26 +02:00