use ui test mode rather than mir-opt

These tests are not run per default
This commit is contained in:
Ralf Jung 2017-09-16 12:36:28 +02:00
parent 1fc3a00c90
commit 060bb2fa9f
10 changed files with 14 additions and 10 deletions

View File

@ -340,7 +340,7 @@ fn call_c_abi(
Err(_) => -1,
}
} else {
info!("Ignored output to FD {}", fd);
warn!("Ignored output to FD {}", fd);
n as isize // pretend it all went well
}; // now result is the value we return back to the program
self.write_primval(
@ -456,7 +456,7 @@ fn call_c_abi(
// Stub out all the other pthread calls to just return 0
link_name if link_name.starts_with("pthread_") => {
warn!("ignoring C ABI call: {}", link_name);
info!("ignoring C ABI call: {}", link_name);
self.write_null(dest, dest_ty)?;
}
@ -616,7 +616,7 @@ fn call_missing_fn(
// A Rust function is missing, which means we are running with MIR missing for libstd (or other dependencies).
// Still, we can make many things mostly work by "emulating" or ignoring some functions.
"std::io::_print" => {
trace!(
warn!(
"Ignoring output. To run programs that print, make sure you have a libstd with full MIR."
);
}

View File

@ -5,6 +5,7 @@
use std::slice::SliceConcatExt;
use std::path::{PathBuf, Path};
use std::io::Write;
use std::env;
macro_rules! eprintln {
($($arg:tt)*) => {
@ -90,7 +91,7 @@ fn miri_pass(path: &str, target: &str, host: &str, fullmir: bool, opt: bool) {
opt_str
);
let mut config = compiletest::Config::default().tempdir();
config.mode = "mir-opt".parse().expect("Invalid mode");
config.mode = "ui".parse().expect("Invalid mode");
config.src_base = PathBuf::from(path);
config.target = target.to_owned();
config.host = host.to_owned();
@ -100,6 +101,9 @@ fn miri_pass(path: &str, target: &str, host: &str, fullmir: bool, opt: bool) {
config.compile_lib_path = rustc_lib_path();
}
let mut flags = Vec::new();
// Control miri logging. This is okay despite concurrent test execution as all tests
// will set this env var to the same value.
env::set_var("MIRI_LOG", "warn");
// if we are building as part of the rustc test suite, we already have fullmir for everything
if fullmir && rustc_test_suite().is_none() {
if host != target {
@ -122,9 +126,6 @@ fn miri_pass(path: &str, target: &str, host: &str, fullmir: bool, opt: bool) {
flags.push("--miri_host_target".to_owned());
}
config.target_rustcflags = Some(flags.join(" "));
// don't actually execute the final binary, it might be for other targets and we only care
// about running miri, not the binary.
config.runtool = Some("echo \"\" || ".to_owned());
compiletest::run_tests(&config);
}

View File

@ -3,7 +3,5 @@
fn main() {
let mut i = 3;
let _ = catch_unwind(AssertUnwindSafe(|| {i -= 2;} ));
for _ in 0..i {
println!("I");
}
println!("{}", i);
}

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1 @@
Hello 13

View File

@ -0,0 +1 @@
Hello, world!

View File

@ -0,0 +1,2 @@
S { s: 5 }
S { s: 5 }