compiletest: introduce skip-trans
This commit is contained in:
parent
432fe0cefc
commit
00bc634f8f
17
src/test/run-pass/compiletest-skip-trans.rs
Normal file
17
src/test/run-pass/compiletest-skip-trans.rs
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Test that with the `skip-trans` option the test isn't executed.
|
||||
|
||||
// skip-trans
|
||||
|
||||
fn main() {
|
||||
unreachable!();
|
||||
}
|
@ -228,6 +228,8 @@ pub struct TestProps {
|
||||
pub check_test_line_numbers_match: bool,
|
||||
// The test must be compiled and run successfully. Only used in UI tests for now.
|
||||
pub run_pass: bool,
|
||||
// Skip any codegen step and running the executable. Only for run-pass.
|
||||
pub skip_trans: bool,
|
||||
// Do not pass `-Z ui-testing` to UI tests
|
||||
pub disable_ui_testing_normalization: bool,
|
||||
// customized normalization rules
|
||||
@ -260,6 +262,7 @@ impl TestProps {
|
||||
compile_pass: false,
|
||||
check_test_line_numbers_match: false,
|
||||
run_pass: false,
|
||||
skip_trans: false,
|
||||
disable_ui_testing_normalization: false,
|
||||
normalize_stdout: vec![],
|
||||
normalize_stderr: vec![],
|
||||
@ -381,6 +384,10 @@ impl TestProps {
|
||||
config.parse_compile_pass(ln) || self.run_pass;
|
||||
}
|
||||
|
||||
if !self.skip_trans {
|
||||
self.skip_trans = config.parse_skip_trans(ln);
|
||||
}
|
||||
|
||||
if !self.disable_ui_testing_normalization {
|
||||
self.disable_ui_testing_normalization =
|
||||
config.parse_disable_ui_testing_normalization(ln);
|
||||
@ -524,6 +531,10 @@ impl Config {
|
||||
self.parse_name_directive(line, "run-pass")
|
||||
}
|
||||
|
||||
fn parse_skip_trans(&self, line: &str) -> bool {
|
||||
self.parse_name_directive(line, "skip-trans")
|
||||
}
|
||||
|
||||
fn parse_env(&self, line: &str, name: &str) -> Option<(String, String)> {
|
||||
self.parse_name_value_directive(line, name).map(|nv| {
|
||||
// nv is either FOO or FOO=BAR
|
||||
|
@ -343,9 +343,11 @@ impl<'test> TestCx<'test> {
|
||||
"run-pass tests with expected warnings should be moved to ui/"
|
||||
);
|
||||
|
||||
let proc_res = self.exec_compiled_test();
|
||||
if !proc_res.status.success() {
|
||||
self.fatal_proc_rec("test run failed!", &proc_res);
|
||||
if !self.props.skip_trans {
|
||||
let proc_res = self.exec_compiled_test();
|
||||
if !proc_res.status.success() {
|
||||
self.fatal_proc_rec("test run failed!", &proc_res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1697,6 +1699,11 @@ impl<'test> TestCx<'test> {
|
||||
}
|
||||
}
|
||||
|
||||
if self.props.skip_trans {
|
||||
assert!(!self.props.compile_flags.iter().any(|s| s.starts_with("--emit")));
|
||||
rustc.args(&["--emit", "metadata"]);
|
||||
}
|
||||
|
||||
if !is_rustdoc {
|
||||
if self.config.target == "wasm32-unknown-unknown" {
|
||||
// rustc.arg("-g"); // get any backtrace at all on errors
|
||||
|
Loading…
Reference in New Issue
Block a user