From a0c8b09cf887ade10bcc5b2a06b32304af3cebbe Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Thu, 30 Nov 2023 13:11:17 +0100 Subject: move some validity-related tests into subdir --- src/tools/miri/tests/fail/invalid_bool.rs | 8 -------- src/tools/miri/tests/fail/invalid_bool.stderr | 15 --------------- src/tools/miri/tests/fail/invalid_char.rs | 10 ---------- src/tools/miri/tests/fail/invalid_char.stderr | 15 --------------- src/tools/miri/tests/fail/invalid_enum_tag.rs | 18 ------------------ src/tools/miri/tests/fail/invalid_enum_tag.stderr | 15 --------------- src/tools/miri/tests/fail/invalid_int.rs | 9 --------- src/tools/miri/tests/fail/invalid_int.stderr | 15 --------------- src/tools/miri/tests/fail/validity/invalid_bool_op.rs | 8 ++++++++ .../miri/tests/fail/validity/invalid_bool_op.stderr | 15 +++++++++++++++ src/tools/miri/tests/fail/validity/invalid_char_op.rs | 10 ++++++++++ .../miri/tests/fail/validity/invalid_char_op.stderr | 15 +++++++++++++++ src/tools/miri/tests/fail/validity/invalid_enum_op.rs | 18 ++++++++++++++++++ .../miri/tests/fail/validity/invalid_enum_op.stderr | 15 +++++++++++++++ src/tools/miri/tests/fail/validity/invalid_int_op.rs | 9 +++++++++ .../miri/tests/fail/validity/invalid_int_op.stderr | 15 +++++++++++++++ 16 files changed, 105 insertions(+), 105 deletions(-) delete mode 100644 src/tools/miri/tests/fail/invalid_bool.rs delete mode 100644 src/tools/miri/tests/fail/invalid_bool.stderr delete mode 100644 src/tools/miri/tests/fail/invalid_char.rs delete mode 100644 src/tools/miri/tests/fail/invalid_char.stderr delete mode 100644 src/tools/miri/tests/fail/invalid_enum_tag.rs delete mode 100644 src/tools/miri/tests/fail/invalid_enum_tag.stderr delete mode 100644 src/tools/miri/tests/fail/invalid_int.rs delete mode 100644 src/tools/miri/tests/fail/invalid_int.stderr create mode 100644 src/tools/miri/tests/fail/validity/invalid_bool_op.rs create mode 100644 src/tools/miri/tests/fail/validity/invalid_bool_op.stderr create mode 100644 src/tools/miri/tests/fail/validity/invalid_char_op.rs create mode 100644 src/tools/miri/tests/fail/validity/invalid_char_op.stderr create mode 100644 src/tools/miri/tests/fail/validity/invalid_enum_op.rs create mode 100644 src/tools/miri/tests/fail/validity/invalid_enum_op.stderr create mode 100644 src/tools/miri/tests/fail/validity/invalid_int_op.rs create mode 100644 src/tools/miri/tests/fail/validity/invalid_int_op.stderr (limited to 'src') diff --git a/src/tools/miri/tests/fail/invalid_bool.rs b/src/tools/miri/tests/fail/invalid_bool.rs deleted file mode 100644 index fe9bb3bed7f..00000000000 --- a/src/tools/miri/tests/fail/invalid_bool.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Validation makes this fail in the wrong place -// Make sure we find these even with many checks disabled. -//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation - -fn main() { - let b = unsafe { std::mem::transmute::(2) }; - let _x = b == std::hint::black_box(true); //~ ERROR: interpreting an invalid 8-bit value as a bool -} diff --git a/src/tools/miri/tests/fail/invalid_bool.stderr b/src/tools/miri/tests/fail/invalid_bool.stderr deleted file mode 100644 index fd1ea5087b2..00000000000 --- a/src/tools/miri/tests/fail/invalid_bool.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error: Undefined Behavior: interpreting an invalid 8-bit value as a bool: 0x02 - --> $DIR/invalid_bool.rs:LL:CC - | -LL | let _x = b == std::hint::black_box(true); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ interpreting an invalid 8-bit value as a bool: 0x02 - | - = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior - = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information - = note: BACKTRACE: - = note: inside `main` at $DIR/invalid_bool.rs:LL:CC - -note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace - -error: aborting due to 1 previous error - diff --git a/src/tools/miri/tests/fail/invalid_char.rs b/src/tools/miri/tests/fail/invalid_char.rs deleted file mode 100644 index 69924822944..00000000000 --- a/src/tools/miri/tests/fail/invalid_char.rs +++ /dev/null @@ -1,10 +0,0 @@ -// Validation makes this fail in the wrong place -// Make sure we find these even with many checks disabled. -//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation - -fn main() { - let c = 0xFFFFFFu32; - assert!(std::char::from_u32(c).is_none()); - let c = unsafe { std::mem::transmute::(c) }; - let _x = c == 'x'; //~ ERROR: interpreting an invalid 32-bit value as a char -} diff --git a/src/tools/miri/tests/fail/invalid_char.stderr b/src/tools/miri/tests/fail/invalid_char.stderr deleted file mode 100644 index 81d6cdad157..00000000000 --- a/src/tools/miri/tests/fail/invalid_char.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error: Undefined Behavior: interpreting an invalid 32-bit value as a char: $HEX - --> $DIR/invalid_char.rs:LL:CC - | -LL | let _x = c == 'x'; - | ^^^^^^^^ interpreting an invalid 32-bit value as a char: $HEX - | - = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior - = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information - = note: BACKTRACE: - = note: inside `main` at $DIR/invalid_char.rs:LL:CC - -note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace - -error: aborting due to 1 previous error - diff --git a/src/tools/miri/tests/fail/invalid_enum_tag.rs b/src/tools/miri/tests/fail/invalid_enum_tag.rs deleted file mode 100644 index 84fa2c29739..00000000000 --- a/src/tools/miri/tests/fail/invalid_enum_tag.rs +++ /dev/null @@ -1,18 +0,0 @@ -// Validation makes this fail in the wrong place -// Make sure we find these even with many checks disabled. -//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation - -use std::mem; - -#[repr(C)] -pub enum Foo { - A, - B, - C, - D, -} - -fn main() { - let f = unsafe { std::mem::transmute::(42) }; - let _val = mem::discriminant(&f); //~ERROR: enum value has invalid tag -} diff --git a/src/tools/miri/tests/fail/invalid_enum_tag.stderr b/src/tools/miri/tests/fail/invalid_enum_tag.stderr deleted file mode 100644 index 5a446bb2a56..00000000000 --- a/src/tools/miri/tests/fail/invalid_enum_tag.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error: Undefined Behavior: enum value has invalid tag: $HEX - --> $DIR/invalid_enum_tag.rs:LL:CC - | -LL | let _val = mem::discriminant(&f); - | ^^^^^^^^^^^^^^^^^^^^^ enum value has invalid tag: $HEX - | - = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior - = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information - = note: BACKTRACE: - = note: inside `main` at $DIR/invalid_enum_tag.rs:LL:CC - -note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace - -error: aborting due to 1 previous error - diff --git a/src/tools/miri/tests/fail/invalid_int.rs b/src/tools/miri/tests/fail/invalid_int.rs deleted file mode 100644 index 2435a87a6f2..00000000000 --- a/src/tools/miri/tests/fail/invalid_int.rs +++ /dev/null @@ -1,9 +0,0 @@ -#![allow(invalid_value)] -// Validation makes this fail in the wrong place -// Make sure we find these even with many checks disabled. -//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation - -fn main() { - let i = unsafe { std::mem::MaybeUninit::::uninit().assume_init() }; //~ ERROR: uninitialized - let _x = i + 0; -} diff --git a/src/tools/miri/tests/fail/invalid_int.stderr b/src/tools/miri/tests/fail/invalid_int.stderr deleted file mode 100644 index a450b939384..00000000000 --- a/src/tools/miri/tests/fail/invalid_int.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error: Undefined Behavior: using uninitialized data, but this operation requires initialized memory - --> $DIR/invalid_int.rs:LL:CC - | -LL | let i = unsafe { std::mem::MaybeUninit::::uninit().assume_init() }; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ using uninitialized data, but this operation requires initialized memory - | - = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior - = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information - = note: BACKTRACE: - = note: inside `main` at $DIR/invalid_int.rs:LL:CC - -note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace - -error: aborting due to 1 previous error - diff --git a/src/tools/miri/tests/fail/validity/invalid_bool_op.rs b/src/tools/miri/tests/fail/validity/invalid_bool_op.rs new file mode 100644 index 00000000000..fe9bb3bed7f --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_bool_op.rs @@ -0,0 +1,8 @@ +// Validation makes this fail in the wrong place +// Make sure we find these even with many checks disabled. +//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation + +fn main() { + let b = unsafe { std::mem::transmute::(2) }; + let _x = b == std::hint::black_box(true); //~ ERROR: interpreting an invalid 8-bit value as a bool +} diff --git a/src/tools/miri/tests/fail/validity/invalid_bool_op.stderr b/src/tools/miri/tests/fail/validity/invalid_bool_op.stderr new file mode 100644 index 00000000000..b938d29e760 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_bool_op.stderr @@ -0,0 +1,15 @@ +error: Undefined Behavior: interpreting an invalid 8-bit value as a bool: 0x02 + --> $DIR/invalid_bool_op.rs:LL:CC + | +LL | let _x = b == std::hint::black_box(true); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ interpreting an invalid 8-bit value as a bool: 0x02 + | + = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior + = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information + = note: BACKTRACE: + = note: inside `main` at $DIR/invalid_bool_op.rs:LL:CC + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to 1 previous error + diff --git a/src/tools/miri/tests/fail/validity/invalid_char_op.rs b/src/tools/miri/tests/fail/validity/invalid_char_op.rs new file mode 100644 index 00000000000..69924822944 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_char_op.rs @@ -0,0 +1,10 @@ +// Validation makes this fail in the wrong place +// Make sure we find these even with many checks disabled. +//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation + +fn main() { + let c = 0xFFFFFFu32; + assert!(std::char::from_u32(c).is_none()); + let c = unsafe { std::mem::transmute::(c) }; + let _x = c == 'x'; //~ ERROR: interpreting an invalid 32-bit value as a char +} diff --git a/src/tools/miri/tests/fail/validity/invalid_char_op.stderr b/src/tools/miri/tests/fail/validity/invalid_char_op.stderr new file mode 100644 index 00000000000..113eecd9cf7 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_char_op.stderr @@ -0,0 +1,15 @@ +error: Undefined Behavior: interpreting an invalid 32-bit value as a char: $HEX + --> $DIR/invalid_char_op.rs:LL:CC + | +LL | let _x = c == 'x'; + | ^^^^^^^^ interpreting an invalid 32-bit value as a char: $HEX + | + = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior + = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information + = note: BACKTRACE: + = note: inside `main` at $DIR/invalid_char_op.rs:LL:CC + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to 1 previous error + diff --git a/src/tools/miri/tests/fail/validity/invalid_enum_op.rs b/src/tools/miri/tests/fail/validity/invalid_enum_op.rs new file mode 100644 index 00000000000..84fa2c29739 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_enum_op.rs @@ -0,0 +1,18 @@ +// Validation makes this fail in the wrong place +// Make sure we find these even with many checks disabled. +//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation + +use std::mem; + +#[repr(C)] +pub enum Foo { + A, + B, + C, + D, +} + +fn main() { + let f = unsafe { std::mem::transmute::(42) }; + let _val = mem::discriminant(&f); //~ERROR: enum value has invalid tag +} diff --git a/src/tools/miri/tests/fail/validity/invalid_enum_op.stderr b/src/tools/miri/tests/fail/validity/invalid_enum_op.stderr new file mode 100644 index 00000000000..e7997689c51 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_enum_op.stderr @@ -0,0 +1,15 @@ +error: Undefined Behavior: enum value has invalid tag: $HEX + --> $DIR/invalid_enum_op.rs:LL:CC + | +LL | let _val = mem::discriminant(&f); + | ^^^^^^^^^^^^^^^^^^^^^ enum value has invalid tag: $HEX + | + = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior + = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information + = note: BACKTRACE: + = note: inside `main` at $DIR/invalid_enum_op.rs:LL:CC + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to 1 previous error + diff --git a/src/tools/miri/tests/fail/validity/invalid_int_op.rs b/src/tools/miri/tests/fail/validity/invalid_int_op.rs new file mode 100644 index 00000000000..2435a87a6f2 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_int_op.rs @@ -0,0 +1,9 @@ +#![allow(invalid_value)] +// Validation makes this fail in the wrong place +// Make sure we find these even with many checks disabled. +//@compile-flags: -Zmiri-disable-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-disable-validation + +fn main() { + let i = unsafe { std::mem::MaybeUninit::::uninit().assume_init() }; //~ ERROR: uninitialized + let _x = i + 0; +} diff --git a/src/tools/miri/tests/fail/validity/invalid_int_op.stderr b/src/tools/miri/tests/fail/validity/invalid_int_op.stderr new file mode 100644 index 00000000000..df344311b75 --- /dev/null +++ b/src/tools/miri/tests/fail/validity/invalid_int_op.stderr @@ -0,0 +1,15 @@ +error: Undefined Behavior: using uninitialized data, but this operation requires initialized memory + --> $DIR/invalid_int_op.rs:LL:CC + | +LL | let i = unsafe { std::mem::MaybeUninit::::uninit().assume_init() }; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ using uninitialized data, but this operation requires initialized memory + | + = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior + = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information + = note: BACKTRACE: + = note: inside `main` at $DIR/invalid_int_op.rs:LL:CC + +note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace + +error: aborting due to 1 previous error + -- cgit 1.4.1-3-g733a5