u-output-failed-commands
authorRust Maintainers <pkg-rust-maintainers@lists.alioth.debian.org>
Sun, 15 Oct 2017 21:30:35 +0000 (22:30 +0100)
committerXimin Luo <infinity0@debian.org>
Sun, 15 Oct 2017 21:30:35 +0000 (22:30 +0100)
Gbp-Pq: Name u-output-failed-commands.patch

src/bootstrap/check.rs
src/bootstrap/lib.rs
src/bootstrap/step.rs

index e4b0e2fb9ca0cdb8bffc23d81fd60abc590382e3..b7dc9091ed240561792a125c38c030c80f2dfb9f 100644 (file)
@@ -62,8 +62,8 @@ impl fmt::Display for TestKind {
 fn try_run(build: &Build, cmd: &mut Command) {
     if !build.fail_fast {
         if !build.try_run(cmd) {
-            let failures = build.delayed_failures.get();
-            build.delayed_failures.set(failures + 1);
+            let mut failures = &mut build.delayed_failures.borrow_mut();
+            failures.push(format!("{:?}", cmd));
         }
     } else {
         build.run(cmd);
@@ -73,8 +73,8 @@ fn try_run(build: &Build, cmd: &mut Command) {
 fn try_run_quiet(build: &Build, cmd: &mut Command) {
     if !build.fail_fast {
         if !build.try_run_quiet(cmd) {
-            let failures = build.delayed_failures.get();
-            build.delayed_failures.set(failures + 1);
+            let mut failures = &mut build.delayed_failures.borrow_mut();
+            failures.push(format!("{:?}", cmd));
         }
     } else {
         build.run_quiet(cmd);
index 032231582ef185889f161b9b2ecc85e904437d7d..7830a6d50e88ac26df51c4d47966af0f0a34000c 100644 (file)
@@ -79,7 +79,7 @@ extern crate toml;
 #[cfg(unix)]
 extern crate libc;
 
-use std::cell::Cell;
+use std::cell::RefCell;
 use std::cmp;
 use std::collections::HashMap;
 use std::env;
@@ -191,7 +191,7 @@ pub struct Build {
     crates: HashMap<String, Crate>,
     is_sudo: bool,
     ci_env: CiEnv,
-    delayed_failures: Cell<usize>,
+    delayed_failures: RefCell<Vec<String>>,
 }
 
 #[derive(Debug)]
@@ -295,7 +295,7 @@ impl Build {
             lldb_python_dir: None,
             is_sudo: is_sudo,
             ci_env: CiEnv::current(),
-            delayed_failures: Cell::new(0),
+            delayed_failures: RefCell::new(Vec::new()),
         }
     }
 
index e35031b3c95d5f455e0c73e54692765c79ae14ed..cdb227fff6cef985e040f0a9c76ad212506ce3d9 100644 (file)
@@ -1292,9 +1292,12 @@ invalid rule dependency graph detected, was a rule added and maybe typo'd?
         }
 
         // Check for postponed failures from `test --no-fail-fast`.
-        let failures = self.build.delayed_failures.get();
-        if failures > 0 {
-            println!("\n{} command(s) did not execute successfully.\n", failures);
+        let failures = self.build.delayed_failures.borrow();
+        if failures.len() > 0 {
+            println!("\n{} command(s) did not execute successfully:\n", failures.len());
+            for failure in failures.iter() {
+                println!("  - {}\n", failure);
+            }
             process::exit(1);
         }
     }