Test a small cargo-miri smoke test even in run_tests_minimal

This makes sure that cargo-miri works on all targets.
This commit is contained in:
Nilstrieb 2022-11-24 21:22:12 +01:00
parent 8b0b2d136e
commit 2c456b5123
No known key found for this signature in database
6 changed files with 64 additions and 0 deletions

View File

@ -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

View File

@ -81,6 +81,10 @@ version = "0.1.0"
name = "issue_rust_86261"
version = "0.1.0"
[[package]]
name = "no-std-smoke"
version = "0.1.0"
[[package]]
name = "proc-macro2"
version = "1.0.44"

View File

@ -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"

View File

@ -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"

View File

@ -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'

View File

@ -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 {}
}