diff --git a/test-cargo-miri/Cargo.lock b/test-cargo-miri/Cargo.lock index 4cf58d723a..3f61fb3d54 100644 --- a/test-cargo-miri/Cargo.lock +++ b/test-cargo-miri/Cargo.lock @@ -2,6 +2,12 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "byteorder" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" + [[package]] name = "byteorder" version = "1.4.3" @@ -12,7 +18,8 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" name = "cargo-miri-test" version = "0.1.0" dependencies = [ - "byteorder", + "byteorder 0.5.3", + "byteorder 1.4.3", "cdylib", "exported_symbol", "issue_1567", @@ -20,8 +27,6 @@ dependencies = [ "issue_1705", "issue_1760", "issue_rust_86261", - "page_size", - "rand", "serde_derive", ] @@ -29,15 +34,9 @@ dependencies = [ name = "cdylib" version = "0.1.0" dependencies = [ - "byteorder", + "byteorder 1.4.3", ] -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - [[package]] name = "exported_symbol" version = "0.1.0" @@ -49,17 +48,6 @@ dependencies = [ name = "exported_symbol_dep" version = "0.1.0" -[[package]] -name = "getrandom" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - [[package]] name = "hermit-abi" version = "0.1.19" @@ -73,7 +61,7 @@ dependencies = [ name = "issue_1567" version = "0.1.0" dependencies = [ - "byteorder", + "byteorder 1.4.3", ] [[package]] @@ -84,7 +72,7 @@ version = "0.1.0" name = "issue_1705" version = "0.1.0" dependencies = [ - "byteorder", + "byteorder 1.4.3", ] [[package]] @@ -111,22 +99,6 @@ dependencies = [ "libc", ] -[[package]] -name = "page_size" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" - [[package]] name = "proc-macro2" version = "1.0.40" @@ -145,36 +117,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" -dependencies = [ - "getrandom", -] - [[package]] name = "serde_derive" version = "1.0.137" @@ -209,31 +151,3 @@ name = "unicode-ident" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/test-cargo-miri/Cargo.toml b/test-cargo-miri/Cargo.toml index 89a8463e4b..51967c54e1 100644 --- a/test-cargo-miri/Cargo.toml +++ b/test-cargo-miri/Cargo.toml @@ -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) diff --git a/test-cargo-miri/cdylib/Cargo.toml b/test-cargo-miri/cdylib/Cargo.toml index 4e5b5601a5..527602e0a8 100644 --- a/test-cargo-miri/cdylib/Cargo.toml +++ b/test-cargo-miri/cdylib/Cargo.toml @@ -9,4 +9,4 @@ edition = "2018" crate-type = ["cdylib"] [dependencies] -byteorder = "1.0" +byteorder = "1.0" # to test dependencies of sub-crates diff --git a/test-cargo-miri/run-test.py b/test-cargo-miri/run-test.py index bc0046ffb1..ab43c72511 100755 --- a/test-cargo-miri/run-test.py +++ b/test-cargo-miri/run-test.py @@ -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)", diff --git a/test-cargo-miri/src/main.rs b/test-cargo-miri/src/main.rs index 5807d0765f..41c52b7017 100644 --- a/test-cargo-miri/src/main.rs +++ b/test-cargo-miri/src/main.rs @@ -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 = ::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]); } #[test] diff --git a/test-cargo-miri/test.bin-target.stdout.ref b/test-cargo-miri/test.bin-target.stdout.ref index 62cfd1d37a..5264530160 100644 --- a/test-cargo-miri/test.bin-target.stdout.ref +++ b/test-cargo-miri/test.bin-target.stdout.ref @@ -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 diff --git a/test-cargo-miri/test.cross-target.stdout.ref b/test-cargo-miri/test.cross-target.stdout.ref index 3673e5549d..8c543e479f 100644 --- a/test-cargo-miri/test.cross-target.stdout.ref +++ b/test-cargo-miri/test.cross-target.stdout.ref @@ -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 diff --git a/test-cargo-miri/test.default.stdout.ref b/test-cargo-miri/test.default.stdout.ref index a59108efb3..9a17f3d61b 100644 --- a/test-cargo-miri/test.default.stdout.ref +++ b/test-cargo-miri/test.default.stdout.ref @@ -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 diff --git a/test-cargo-miri/test.filter.cross-target.stdout.ref b/test-cargo-miri/test.filter.cross-target.stdout.ref index 9fb7670d06..bb0282d6c9 100644 --- a/test-cargo-miri/test.filter.cross-target.stdout.ref +++ b/test-cargo-miri/test.filter.cross-target.stdout.ref @@ -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 diff --git a/test-cargo-miri/test.filter.stdout.ref b/test-cargo-miri/test.filter.stdout.ref index 4b598960a0..c618956656 100644 --- a/test-cargo-miri/test.filter.stdout.ref +++ b/test-cargo-miri/test.filter.stdout.ref @@ -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 diff --git a/test-cargo-miri/test.test-target.stdout.ref b/test-cargo-miri/test.test-target.stdout.ref index ca069b702e..dd59b32b78 100644 --- a/test-cargo-miri/test.test-target.stdout.ref +++ b/test-cargo-miri/test.test-target.stdout.ref @@ -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 diff --git a/test-cargo-miri/tests/test.rs b/test-cargo-miri/tests/test.rs index eb31058e1c..9ed2152893 100644 --- a/test-cargo-miri/tests/test.rs +++ b/test-cargo-miri/tests/test.rs @@ -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::(); - let _val = rng.gen::(); - let _val = rng.gen::(); - - // Also try per-thread RNG. - let mut rng = rand::thread_rng(); - let _val = rng.gen::(); - let _val = rng.gen::(); - let _val = rng.gen::(); +fn deps() { + { + use byteorder::{BigEndian, ByteOrder}; + let _n = ::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]); + } + { + use byteorder_2::{BigEndian, ByteOrder}; + let _n = ::read_u64(&[1, 2, 3, 4, 5, 6, 7, 8]); + } } #[test] @@ -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); -} diff --git a/test_dependencies/Cargo.lock b/test_dependencies/Cargo.lock index 6b5e8c9422..a492deba4c 100644 --- a/test_dependencies/Cargo.lock +++ b/test_dependencies/Cargo.lock @@ -107,6 +107,7 @@ dependencies = [ "getrandom 0.1.16", "getrandom 0.2.7", "libc", + "page_size", "rand", "tokio", ] @@ -127,6 +128,16 @@ version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +[[package]] +name = "page_size" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "parking_lot" version = "0.12.1" diff --git a/test_dependencies/Cargo.toml b/test_dependencies/Cargo.toml index edaa6a6926..0bf43aefeb 100644 --- a/test_dependencies/Cargo.toml +++ b/test_dependencies/Cargo.toml @@ -11,6 +11,7 @@ edition = "2021" # all dependencies (and their transitive ones) listed here can be used in `tests/`. tokio = { version = "1.0", features = ["full"] } libc = "0.2" +page_size = "0.4.1" getrandom_1 = { package = "getrandom", version = "0.1" } getrandom_2 = { package = "getrandom", version = "0.2" } diff --git a/tests/fail/tokio_mvp.rs b/tests/fail/crates/tokio_mvp.rs similarity index 100% rename from tests/fail/tokio_mvp.rs rename to tests/fail/crates/tokio_mvp.rs diff --git a/tests/fail/tokio_mvp.stderr b/tests/fail/crates/tokio_mvp.stderr similarity index 100% rename from tests/fail/tokio_mvp.stderr rename to tests/fail/crates/tokio_mvp.stderr diff --git a/tests/pass/crates/page_size.rs b/tests/pass/crates/page_size.rs new file mode 100644 index 0000000000..cdcabf3333 --- /dev/null +++ b/tests/pass/crates/page_size.rs @@ -0,0 +1,6 @@ +fn main() { + 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); +} diff --git a/tests/pass/random.rs b/tests/pass/crates/random.rs similarity index 100% rename from tests/pass/random.rs rename to tests/pass/crates/random.rs