diff options
| author | bors <bors@rust-lang.org> | 2022-11-26 13:24:26 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-11-26 13:24:26 +0000 |
| commit | 4d3e565004eeef0d01a57007577dd96cfb9bf208 (patch) | |
| tree | 5707351d120aced498d2017243901e40a7934405 | |
| parent | 7d0db1efdb3aafcfcd1864654ea4d58024b579f2 (diff) | |
| parent | 166e60e2bb0713dc9c76b13f08e580cb908b232e (diff) | |
| download | rust-4d3e565004eeef0d01a57007577dd96cfb9bf208.tar.gz rust-4d3e565004eeef0d01a57007577dd96cfb9bf208.zip | |
Auto merge of #2690 - Nilstrieb:cargo-miri-smoke-test-ci-so-that-cargo-miri-actually-works-kinda, r=RalfJung
Test a small cargo-miri smoke test even in `run_tests_minimal` This makes sure that cargo-miri works on all targets. Implements the first step of https://github.com/rust-lang/miri/pull/2685#issuecomment-1325155967 to get that PR tested.
| -rwxr-xr-x | src/tools/miri/ci.sh | 4 | ||||
| -rw-r--r-- | src/tools/miri/test-cargo-miri/Cargo.toml | 1 | ||||
| -rw-r--r-- | src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.lock | 7 | ||||
| -rw-r--r-- | src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.toml | 14 | ||||
| -rw-r--r-- | src/tools/miri/test-cargo-miri/no-std-smoke/src/main.rs | 34 |
5 files changed, 60 insertions, 0 deletions
diff --git a/src/tools/miri/ci.sh b/src/tools/miri/ci.sh index 72b7b791a47..bf9e986bdc7 100755 --- a/src/tools/miri/ci.sh +++ b/src/tools/miri/ci.sh @@ -73,6 +73,10 @@ function run_tests_minimal { fi ./miri test -- "$@" + + # Ensure that a small smoke test of cargo-miri works. + # Note: This doesn't work on windows because of TLS. + cargo miri run --manifest-path test-cargo-miri/no-std-smoke/Cargo.toml } # host diff --git a/src/tools/miri/test-cargo-miri/Cargo.toml b/src/tools/miri/test-cargo-miri/Cargo.toml index 5d9e5d143b3..37c996de662 100644 --- a/src/tools/miri/test-cargo-miri/Cargo.toml +++ b/src/tools/miri/test-cargo-miri/Cargo.toml @@ -1,5 +1,6 @@ [workspace] members = ["subcrate", "issue-1567", "exported-symbol-dep"] +exclude = ["no-std-smoke"] # it wants to be panic="abort" [package] name = "cargo-miri-test" diff --git a/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.lock b/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.lock new file mode 100644 index 00000000000..b92a05fccf8 --- /dev/null +++ b/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "no-std-smoke" +version = "0.1.0" diff --git a/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.toml b/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.toml new file mode 100644 index 00000000000..3a056bedaa0 --- /dev/null +++ b/src/tools/miri/test-cargo-miri/no-std-smoke/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "no-std-smoke" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] + +[profile.dev] +panic = 'abort' + +[profile.release] +panic = 'abort' diff --git a/src/tools/miri/test-cargo-miri/no-std-smoke/src/main.rs b/src/tools/miri/test-cargo-miri/no-std-smoke/src/main.rs new file mode 100644 index 00000000000..3a207b7d50a --- /dev/null +++ b/src/tools/miri/test-cargo-miri/no-std-smoke/src/main.rs @@ -0,0 +1,34 @@ +// Copied from tests/pass/no-std.rs + +#![feature(start)] +#![no_std] + +// Plumbing to let us use `writeln!` to host stdout: + +extern "Rust" { + fn miri_write_to_stdout(bytes: &[u8]); +} + +struct Host; + +use core::fmt::Write; + +impl Write for Host { + fn write_str(&mut self, s: &str) -> core::fmt::Result { + unsafe { + miri_write_to_stdout(s.as_bytes()); + } + Ok(()) + } +} + +#[start] +fn start(_: isize, _: *const *const u8) -> isize { + writeln!(Host, "hello, world!").unwrap(); + 0 +} + +#[panic_handler] +fn panic_handler(_: &core::panic::PanicInfo) -> ! { + loop {} +} |
