Stub out various functions during testing
This commit is contained in:
parent
e7342b8f42
commit
cd33d3a0e4
@ -687,7 +687,7 @@ impl<'a> Builder<'a> {
|
||||
// the options through environment variables that are fetched and understood by both.
|
||||
//
|
||||
// FIXME: the guard against msvc shouldn't need to be here
|
||||
if !target.contains("msvc") {
|
||||
if !target.contains("msvc") && !cfg!(test) {
|
||||
let ccache = self.config.ccache.as_ref();
|
||||
let ccacheify = |s: &Path| {
|
||||
let ccache = match ccache {
|
||||
|
@ -690,6 +690,9 @@ impl Step for CodegenBackend {
|
||||
cargo.arg("--features").arg(features),
|
||||
&tmp_stamp,
|
||||
false);
|
||||
if cfg!(test) {
|
||||
return;
|
||||
}
|
||||
let mut files = files.into_iter()
|
||||
.filter(|f| {
|
||||
let filename = f.file_name().unwrap().to_str().unwrap();
|
||||
@ -719,6 +722,7 @@ impl Step for CodegenBackend {
|
||||
fn copy_codegen_backends_to_sysroot(builder: &Builder,
|
||||
compiler: Compiler,
|
||||
target_compiler: Compiler) {
|
||||
if cfg!(test) { return; }
|
||||
let build = builder.build;
|
||||
let target = target_compiler.host;
|
||||
|
||||
|
@ -817,6 +817,7 @@ impl Step for UnstableBookGen {
|
||||
}
|
||||
|
||||
fn symlink_dir_force(src: &Path, dst: &Path) -> io::Result<()> {
|
||||
if cfg!(test) { return Ok(()); }
|
||||
if let Ok(m) = fs::symlink_metadata(dst) {
|
||||
if m.file_type().is_dir() {
|
||||
try!(fs::remove_dir_all(dst));
|
||||
|
@ -363,16 +363,19 @@ impl Build {
|
||||
cc_detect::find(&mut build);
|
||||
build.verbose("running sanity check");
|
||||
sanity::check(&mut build);
|
||||
// If local-rust is the same major.minor as the current version, then force a local-rebuild
|
||||
let local_version_verbose = output(
|
||||
Command::new(&build.initial_rustc).arg("--version").arg("--verbose"));
|
||||
let local_release = local_version_verbose
|
||||
.lines().filter(|x| x.starts_with("release:"))
|
||||
.next().unwrap().trim_left_matches("release:").trim();
|
||||
let my_version = channel::CFG_RELEASE_NUM;
|
||||
if local_release.split('.').take(2).eq(my_version.split('.').take(2)) {
|
||||
build.verbose(&format!("auto-detected local-rebuild {}", local_release));
|
||||
build.local_rebuild = true;
|
||||
if !cfg!(test) {
|
||||
// If local-rust is the same major.minor as the current version, then force a
|
||||
// local-rebuild
|
||||
let local_version_verbose = output(
|
||||
Command::new(&build.initial_rustc).arg("--version").arg("--verbose"));
|
||||
let local_release = local_version_verbose
|
||||
.lines().filter(|x| x.starts_with("release:"))
|
||||
.next().unwrap().trim_left_matches("release:").trim();
|
||||
let my_version = channel::CFG_RELEASE_NUM;
|
||||
if local_release.split('.').take(2).eq(my_version.split('.').take(2)) {
|
||||
build.verbose(&format!("auto-detected local-rebuild {}", local_release));
|
||||
build.local_rebuild = true;
|
||||
}
|
||||
}
|
||||
build.verbose("learning about cargo");
|
||||
metadata::build(&mut build);
|
||||
@ -419,6 +422,7 @@ impl Build {
|
||||
///
|
||||
/// After this executes, it will also ensure that `dir` exists.
|
||||
fn clear_if_dirty(&self, dir: &Path, input: &Path) -> bool {
|
||||
if cfg!(test) { return true; }
|
||||
let stamp = dir.join(".stamp");
|
||||
let mut cleared = false;
|
||||
if mtime(&stamp) < mtime(input) {
|
||||
@ -593,12 +597,14 @@ impl Build {
|
||||
|
||||
/// Runs a command, printing out nice contextual information if it fails.
|
||||
fn run(&self, cmd: &mut Command) {
|
||||
if cfg!(test) { return; }
|
||||
self.verbose(&format!("running: {:?}", cmd));
|
||||
run_silent(cmd)
|
||||
}
|
||||
|
||||
/// Runs a command, printing out nice contextual information if it fails.
|
||||
fn run_quiet(&self, cmd: &mut Command) {
|
||||
if cfg!(test) { return; }
|
||||
self.verbose(&format!("running: {:?}", cmd));
|
||||
run_suppressed(cmd)
|
||||
}
|
||||
@ -607,6 +613,7 @@ impl Build {
|
||||
/// Exits if the command failed to execute at all, otherwise returns its
|
||||
/// `status.success()`.
|
||||
fn try_run(&self, cmd: &mut Command) -> bool {
|
||||
if cfg!(test) { return true; }
|
||||
self.verbose(&format!("running: {:?}", cmd));
|
||||
try_run_silent(cmd)
|
||||
}
|
||||
@ -615,6 +622,7 @@ impl Build {
|
||||
/// Exits if the command failed to execute at all, otherwise returns its
|
||||
/// `status.success()`.
|
||||
fn try_run_quiet(&self, cmd: &mut Command) -> bool {
|
||||
if cfg!(test) { return true; }
|
||||
self.verbose(&format!("running: {:?}", cmd));
|
||||
try_run_suppressed(cmd)
|
||||
}
|
||||
@ -685,6 +693,7 @@ impl Build {
|
||||
|
||||
/// Returns the path to the linker for the given target if it needs to be overridden.
|
||||
fn linker(&self, target: Interned<String>) -> Option<&Path> {
|
||||
if cfg!(test) { return None; }
|
||||
if let Some(linker) = self.config.target_config.get(&target)
|
||||
.and_then(|c| c.linker.as_ref()) {
|
||||
Some(linker)
|
||||
|
@ -60,6 +60,9 @@ impl Step for Llvm {
|
||||
|
||||
/// Compile LLVM for `target`.
|
||||
fn run(self, builder: &Builder) -> PathBuf {
|
||||
if cfg!(test) {
|
||||
return PathBuf::from("llvm-config-test-generated");
|
||||
}
|
||||
let build = builder.build;
|
||||
let target = self.target;
|
||||
let emscripten = self.emscripten;
|
||||
@ -336,6 +339,9 @@ impl Step for Lld {
|
||||
|
||||
/// Compile LLVM for `target`.
|
||||
fn run(self, builder: &Builder) -> PathBuf {
|
||||
if cfg!(test) {
|
||||
return PathBuf::from("lld-out-dir-test-gen");
|
||||
}
|
||||
let target = self.target;
|
||||
let build = builder.build;
|
||||
|
||||
@ -389,6 +395,9 @@ impl Step for TestHelpers {
|
||||
/// Compiles the `rust_test_helpers.c` library which we used in various
|
||||
/// `run-pass` test suites for ABI testing.
|
||||
fn run(self, builder: &Builder) {
|
||||
if cfg!(test) {
|
||||
return;
|
||||
}
|
||||
let build = builder.build;
|
||||
let target = self.target;
|
||||
let dst = build.test_helpers_out(target);
|
||||
@ -441,6 +450,9 @@ impl Step for Openssl {
|
||||
}
|
||||
|
||||
fn run(self, builder: &Builder) {
|
||||
if cfg!(test) {
|
||||
return;
|
||||
}
|
||||
let build = builder.build;
|
||||
let target = self.target;
|
||||
let out = match build.openssl_dir(target) {
|
||||
|
@ -199,7 +199,11 @@ impl Step for ToolBuild {
|
||||
|
||||
if !is_expected {
|
||||
if !is_ext_tool {
|
||||
exit(1);
|
||||
if cfg!(test) {
|
||||
panic!("unexpected failure -- would have hard exited");
|
||||
} else {
|
||||
exit(1);
|
||||
}
|
||||
} else {
|
||||
return None;
|
||||
}
|
||||
|
@ -34,6 +34,7 @@ pub fn staticlib(name: &str, target: &str) -> String {
|
||||
|
||||
/// Copies a file from `src` to `dst`
|
||||
pub fn copy(src: &Path, dst: &Path) {
|
||||
if cfg!(test) { return; }
|
||||
let _ = fs::remove_file(&dst);
|
||||
// Attempt to "easy copy" by creating a hard link (symlinks don't work on
|
||||
// windows), but if that fails just fall back to a slow `copy` operation.
|
||||
@ -66,6 +67,7 @@ pub fn replace_in_file(path: &Path, replacements: &[(&str, &str)]) {
|
||||
}
|
||||
|
||||
pub fn read_stamp_file(stamp: &Path) -> Vec<PathBuf> {
|
||||
if cfg!(test) { return vec![]; }
|
||||
let mut paths = Vec::new();
|
||||
let mut contents = Vec::new();
|
||||
t!(t!(File::open(stamp)).read_to_end(&mut contents));
|
||||
@ -215,6 +217,7 @@ impl Drop for TimeIt {
|
||||
/// Symlinks two directories, using junctions on Windows and normal symlinks on
|
||||
/// Unix.
|
||||
pub fn symlink_dir(src: &Path, dest: &Path) -> io::Result<()> {
|
||||
if cfg!(test) { return Ok(()); }
|
||||
let _ = fs::remove_dir(dest);
|
||||
return symlink_dir_inner(src, dest);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user