Skip to content

make test-cargo-miri only about cargo #2408

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 11 additions & 97 deletions test-cargo-miri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions test-cargo-miri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,8 @@ issue_1760 = { path = "issue-1760" }
issue_rust_86261 = { path = "issue-rust-86261" }

[dev-dependencies]
rand = { version = "0.8", features = ["small_rng"] }
byteorder_2 = { package = "byteorder", version = "0.5" } # to test dev-dependencies behave as expected, with renaming
serde_derive = "1.0" # not actually used, but exercises some unique code path (`--extern` .so file)
page_size = "0.4.1"

[lib]
test = false # test that this is respected (will show in the output)
Expand Down
2 changes: 1 addition & 1 deletion test-cargo-miri/cdylib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ edition = "2018"
crate-type = ["cdylib"]

[dependencies]
byteorder = "1.0"
byteorder = "1.0" # to test dependencies of sub-crates
2 changes: 1 addition & 1 deletion test-cargo-miri/run-test.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def test_cargo_miri_test():
env={'MIRIFLAGS': "-Zmiri-permissive-provenance -Zmiri-disable-isolation"},
)
test("`cargo miri test` (with filter)",
cargo_miri("test") + ["--", "--format=pretty", "le1"],
cargo_miri("test") + ["--", "--format=pretty", "pl"],
filter_ref, "test.stderr-empty.ref",
)
test("`cargo miri test` (test target)",
Expand Down
11 changes: 3 additions & 8 deletions test-cargo-miri/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,12 @@ fn main() {

#[cfg(test)]
mod test {
use rand::{Rng, SeedableRng};
use byteorder_2::{BigEndian, ByteOrder};

// Make sure in-crate tests with dev-dependencies work
#[test]
fn rng() {
let mut rng = rand::rngs::StdRng::seed_from_u64(0xcafebeef);
let x: u32 = rng.gen();
let y: usize = rng.gen();
let z: u128 = rng.gen();
assert_ne!(x as usize, y);
assert_ne!(y as u128, z);
fn dev_dependency() {
let _n = <BigEndian as ByteOrder>::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]);
}

#[test]
Expand Down
2 changes: 1 addition & 1 deletion test-cargo-miri/test.bin-target.stdout.ref
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

running 2 tests
test test::dev_dependency ... ok
test test::exported_symbol ... ok
test test::rng ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

6 changes: 3 additions & 3 deletions test-cargo-miri/test.cross-target.stdout.ref
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

imported main

running 8 tests
..i.....
test result: ok. 7 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out
running 6 tests
...i..
test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

6 changes: 3 additions & 3 deletions test-cargo-miri/test.default.stdout.ref
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

imported main

running 8 tests
..i.....
test result: ok. 7 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out
running 6 tests
...i..
test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out


running 4 tests
Expand Down
4 changes: 2 additions & 2 deletions test-cargo-miri/test.filter.cross-target.stdout.ref
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out
imported main

running 1 test
test simple1 ... ok
test simple ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out

4 changes: 2 additions & 2 deletions test-cargo-miri/test.filter.stdout.ref
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out
imported main

running 1 test
test simple1 ... ok
test simple ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 7 filtered out
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 5 filtered out


running 0 tests
Expand Down
10 changes: 4 additions & 6 deletions test-cargo-miri/test.test-target.stdout.ref
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@

running 8 tests
running 6 tests
test cargo_env ... ok
test deps ... ok
test do_panic - should panic ... ok
test does_not_work_on_miri ... ignored
test entropy_rng ... ok
test fail_index_check - should panic ... ok
test page_size ... ok
test simple1 ... ok
test simple2 ... ok
test simple ... ok

test result: ok. 7 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out
test result: ok. 5 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out

50 changes: 17 additions & 33 deletions test-cargo-miri/tests/test.rs
Original file line number Diff line number Diff line change
@@ -1,39 +1,30 @@
use rand::{rngs::SmallRng, Rng, SeedableRng};

// Having more than 1 test does seem to make a difference
// (i.e., this calls ptr::swap which having just one test does not).
#[test]
fn simple1() {
fn simple() {
assert_eq!(4, 4);
}

#[test]
fn simple2() {
assert_ne!(42, 24);
}

// A test that won't work on miri (tests disabling tests).
#[test]
#[cfg_attr(miri, ignore)]
fn does_not_work_on_miri() {
let x = 0u8;
assert!(&x as *const _ as usize % 4 < 4);
// Only do this where inline assembly is stable.
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe {
std::arch::asm!("foo");
}
}

// Make sure integration tests can access dev-dependencies
// Make sure integration tests can access both dependencies and dev-dependencies
#[test]
fn entropy_rng() {
// Try seeding with "real" entropy.
let mut rng = SmallRng::from_entropy();
let _val = rng.gen::<i32>();
let _val = rng.gen::<isize>();
let _val = rng.gen::<i128>();

// Also try per-thread RNG.
let mut rng = rand::thread_rng();
let _val = rng.gen::<i32>();
let _val = rng.gen::<isize>();
let _val = rng.gen::<i128>();
fn deps() {
{
use byteorder::{BigEndian, ByteOrder};
let _n = <BigEndian as ByteOrder>::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]);
}
{
use byteorder_2::{BigEndian, ByteOrder};
let _n = <BigEndian as ByteOrder>::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]);
}
}

#[test]
Expand All @@ -49,17 +40,10 @@ fn do_panic() // In large, friendly letters :)
panic!("Explicit panic from test!");
}

// A different way of raising a panic
#[test]
#[allow(unconditional_panic)]
#[should_panic(expected = "the len is 0 but the index is 42")]
fn fail_index_check() {
[][42]
}

#[test]
fn page_size() {
let page_size = page_size::get();

// In particular, this checks that it is not 0.
assert!(page_size.is_power_of_two(), "page size not a power of two: {}", page_size);
}
11 changes: 11 additions & 0 deletions test_dependencies/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading