From 060bb2fa9f244c4c8cb59b97514fc284a17bb051 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Sat, 16 Sep 2017 12:36:28 +0200 Subject: [PATCH] use ui test mode rather than mir-opt These tests are not run per default --- miri/fn_call.rs | 6 +++--- tests/compiletest.rs | 9 +++++---- tests/run-pass-fullmir/catch.rs | 4 +--- tests/run-pass-fullmir/catch.stdout | 1 + tests/{run-pass => run-pass-fullmir}/format.rs | 0 tests/run-pass-fullmir/format.stdout | 1 + tests/{run-pass => run-pass-fullmir}/hello.rs | 0 tests/run-pass-fullmir/hello.stdout | 1 + tests/{run-pass => run-pass-fullmir}/issue-3794.rs | 0 tests/run-pass-fullmir/issue-3794.stdout | 2 ++ 10 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 tests/run-pass-fullmir/catch.stdout rename tests/{run-pass => run-pass-fullmir}/format.rs (100%) create mode 100644 tests/run-pass-fullmir/format.stdout rename tests/{run-pass => run-pass-fullmir}/hello.rs (100%) create mode 100644 tests/run-pass-fullmir/hello.stdout rename tests/{run-pass => run-pass-fullmir}/issue-3794.rs (100%) create mode 100644 tests/run-pass-fullmir/issue-3794.stdout diff --git a/miri/fn_call.rs b/miri/fn_call.rs index d64b254e7e..5285d02b4f 100644 --- a/miri/fn_call.rs +++ b/miri/fn_call.rs @@ -340,7 +340,7 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator> 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 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator> // 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 @@ impl<'a, 'tcx> EvalContextExt<'tcx> for EvalContext<'a, 'tcx, super::Evaluator> // 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." ); } diff --git a/tests/compiletest.rs b/tests/compiletest.rs index f9352efbbd..b87fd7d243 100644 --- a/tests/compiletest.rs +++ b/tests/compiletest.rs @@ -5,6 +5,7 @@ extern crate compiletest_rs as compiletest; 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); } diff --git a/tests/run-pass-fullmir/catch.rs b/tests/run-pass-fullmir/catch.rs index 439edc82dd..efcfee68ee 100644 --- a/tests/run-pass-fullmir/catch.rs +++ b/tests/run-pass-fullmir/catch.rs @@ -3,7 +3,5 @@ use std::panic::{catch_unwind, AssertUnwindSafe}; fn main() { let mut i = 3; let _ = catch_unwind(AssertUnwindSafe(|| {i -= 2;} )); - for _ in 0..i { - println!("I"); - } + println!("{}", i); } diff --git a/tests/run-pass-fullmir/catch.stdout b/tests/run-pass-fullmir/catch.stdout new file mode 100644 index 0000000000..d00491fd7e --- /dev/null +++ b/tests/run-pass-fullmir/catch.stdout @@ -0,0 +1 @@ +1 diff --git a/tests/run-pass/format.rs b/tests/run-pass-fullmir/format.rs similarity index 100% rename from tests/run-pass/format.rs rename to tests/run-pass-fullmir/format.rs diff --git a/tests/run-pass-fullmir/format.stdout b/tests/run-pass-fullmir/format.stdout new file mode 100644 index 0000000000..e193b8ae89 --- /dev/null +++ b/tests/run-pass-fullmir/format.stdout @@ -0,0 +1 @@ +Hello 13 diff --git a/tests/run-pass/hello.rs b/tests/run-pass-fullmir/hello.rs similarity index 100% rename from tests/run-pass/hello.rs rename to tests/run-pass-fullmir/hello.rs diff --git a/tests/run-pass-fullmir/hello.stdout b/tests/run-pass-fullmir/hello.stdout new file mode 100644 index 0000000000..af5626b4a1 --- /dev/null +++ b/tests/run-pass-fullmir/hello.stdout @@ -0,0 +1 @@ +Hello, world! diff --git a/tests/run-pass/issue-3794.rs b/tests/run-pass-fullmir/issue-3794.rs similarity index 100% rename from tests/run-pass/issue-3794.rs rename to tests/run-pass-fullmir/issue-3794.rs diff --git a/tests/run-pass-fullmir/issue-3794.stdout b/tests/run-pass-fullmir/issue-3794.stdout new file mode 100644 index 0000000000..e4afe6fa55 --- /dev/null +++ b/tests/run-pass-fullmir/issue-3794.stdout @@ -0,0 +1,2 @@ +S { s: 5 } +S { s: 5 }