move exit-code to rmake
This commit is contained in:
parent
0e5f520788
commit
65df93bbb4
5 changed files with 71 additions and 13 deletions
|
@ -183,6 +183,18 @@ impl Rustc {
|
||||||
output
|
output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[track_caller]
|
||||||
|
pub fn run_fail_assert_exit_code(&mut self, code: i32) -> Output {
|
||||||
|
let caller_location = std::panic::Location::caller();
|
||||||
|
let caller_line_number = caller_location.line();
|
||||||
|
|
||||||
|
let output = self.cmd.output().unwrap();
|
||||||
|
if output.status.code().unwrap() != code {
|
||||||
|
handle_failed_output(&format!("{:#?}", self.cmd), output, caller_line_number);
|
||||||
|
}
|
||||||
|
output
|
||||||
|
}
|
||||||
|
|
||||||
/// Inspect what the underlying [`Command`] is up to the current construction.
|
/// Inspect what the underlying [`Command`] is up to the current construction.
|
||||||
pub fn inspect(&mut self, f: impl FnOnce(&Command)) -> &mut Self {
|
pub fn inspect(&mut self, f: impl FnOnce(&Command)) -> &mut Self {
|
||||||
f(&self.cmd);
|
f(&self.cmd);
|
||||||
|
|
|
@ -65,6 +65,11 @@ impl Rustdoc {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn arg_path<P: AsRef<Path>>(&mut self, path: P) -> &mut Self {
|
||||||
|
self.cmd.arg(path.as_ref());
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
/// Run the build `rustdoc` command and assert that the run is successful.
|
/// Run the build `rustdoc` command and assert that the run is successful.
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
pub fn run(&mut self) -> Output {
|
pub fn run(&mut self) -> Output {
|
||||||
|
@ -77,4 +82,16 @@ impl Rustdoc {
|
||||||
}
|
}
|
||||||
output
|
output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[track_caller]
|
||||||
|
pub fn run_fail_assert_exit_code(&mut self, code: i32) -> Output {
|
||||||
|
let caller_location = std::panic::Location::caller();
|
||||||
|
let caller_line_number = caller_location.line();
|
||||||
|
|
||||||
|
let output = self.cmd.output().unwrap();
|
||||||
|
if output.status.code().unwrap() != code {
|
||||||
|
handle_failed_output(&format!("{:#?}", self.cmd), output, caller_line_number);
|
||||||
|
}
|
||||||
|
output
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,6 @@ run-make/emit/Makefile
|
||||||
run-make/env-dep-info/Makefile
|
run-make/env-dep-info/Makefile
|
||||||
run-make/error-found-staticlib-instead-crate/Makefile
|
run-make/error-found-staticlib-instead-crate/Makefile
|
||||||
run-make/error-writing-dependencies/Makefile
|
run-make/error-writing-dependencies/Makefile
|
||||||
run-make/exit-code/Makefile
|
|
||||||
run-make/export-executable-symbols/Makefile
|
run-make/export-executable-symbols/Makefile
|
||||||
run-make/extern-diff-internal-name/Makefile
|
run-make/extern-diff-internal-name/Makefile
|
||||||
run-make/extern-flag-disambiguates/Makefile
|
run-make/extern-flag-disambiguates/Makefile
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
# ignore-cross-compile
|
|
||||||
include ../tools.mk
|
|
||||||
|
|
||||||
all:
|
|
||||||
$(RUSTC) success.rs; [ $$? -eq 0 ]
|
|
||||||
$(RUSTC) --invalid-arg-foo; [ $$? -eq 1 ]
|
|
||||||
$(RUSTC) compile-error.rs; [ $$? -eq 1 ]
|
|
||||||
RUSTC_ICE=0 $(RUSTC) -Ztreat-err-as-bug compile-error.rs; [ $$? -eq 101 ]
|
|
||||||
$(RUSTDOC) -o $(TMPDIR)/exit-code success.rs; [ $$? -eq 0 ]
|
|
||||||
$(RUSTDOC) --invalid-arg-foo; [ $$? -eq 1 ]
|
|
||||||
$(RUSTDOC) compile-error.rs; [ $$? -eq 1 ]
|
|
||||||
$(RUSTDOC) lint-failure.rs; [ $$? -eq 1 ]
|
|
42
tests/run-make/exit-code/rmake.rs
Normal file
42
tests/run-make/exit-code/rmake.rs
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
// Test that we exit with the correct exit code for successful / unsuccessful / ICE compilations
|
||||||
|
|
||||||
|
extern crate run_make_support;
|
||||||
|
|
||||||
|
use run_make_support::{rustc, rustdoc, tmp_dir};
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
rustc()
|
||||||
|
.arg("success.rs")
|
||||||
|
.run();
|
||||||
|
|
||||||
|
rustc()
|
||||||
|
.arg("--invalid-arg-foo")
|
||||||
|
.run_fail_assert_exit_code(1);
|
||||||
|
|
||||||
|
rustc()
|
||||||
|
.arg("compile-error.rs")
|
||||||
|
.run_fail_assert_exit_code(1);
|
||||||
|
|
||||||
|
rustc()
|
||||||
|
.env("RUSTC_ICE", "0")
|
||||||
|
.arg("-Ztreat-err-as-bug")
|
||||||
|
.arg("compile-error.rs")
|
||||||
|
.run_fail_assert_exit_code(101);
|
||||||
|
|
||||||
|
rustdoc()
|
||||||
|
.arg("success.rs")
|
||||||
|
.arg("-o").arg_path(tmp_dir().join("exit-code"))
|
||||||
|
.run();
|
||||||
|
|
||||||
|
rustdoc()
|
||||||
|
.arg("--invalid-arg-foo")
|
||||||
|
.run_fail_assert_exit_code(1);
|
||||||
|
|
||||||
|
rustdoc()
|
||||||
|
.arg("compile-error.rs")
|
||||||
|
.run_fail_assert_exit_code(1);
|
||||||
|
|
||||||
|
rustdoc()
|
||||||
|
.arg("lint-failure.rs")
|
||||||
|
.run_fail_assert_exit_code(1);
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue