From ac2f6cbcde00eebcb696143e76177c1600f63410 Mon Sep 17 00:00:00 2001
From: Ralf Jung <post@ralfj.de>
Date: Fri, 14 Jun 2019 11:15:09 +0200
Subject: [PATCH] change sysroot check to print the output in case of an error

---
 src/bin/cargo-miri.rs | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/bin/cargo-miri.rs b/src/bin/cargo-miri.rs
index 121930bccce..3b7af932419 100644
--- a/src/bin/cargo-miri.rs
+++ b/src/bin/cargo-miri.rs
@@ -133,11 +133,12 @@ fn test_sysroot_consistency() {
     fn get_sysroot(mut cmd: Command) -> PathBuf {
         let out = cmd.arg("--print").arg("sysroot")
             .output().expect("Failed to run rustc to get sysroot info");
-        assert!(out.status.success(), "Bad status code when getting sysroot info");
-        let sysroot = out.stdout.lines().nth(0)
-            .expect("didn't get at least one line for the sysroot").unwrap();
-        PathBuf::from(sysroot).canonicalize()
-            .expect("Failed to canonicalize sysroot")
+        let stdout = String::from_utf8(out.stdout).expect("stdout is not valid UTF-8");
+        let stderr = String::from_utf8(out.stderr).expect("stderr is not valid UTF-8");
+        let stdout = stdout.trim();
+        assert!(out.status.success(), "Bad status code when getting sysroot info.\nstdout:\n{}\nstderr:\n{}", stdout, stderr);
+        PathBuf::from(stdout).canonicalize()
+            .unwrap_or_else(|_| panic!("Failed to canonicalize sysroot: {}", stdout))
     }
 
     let rustc_sysroot = get_sysroot(Command::new("rustc"));