]> git.lizzy.rs Git - rust.git/commitdiff
Handle gdb command failure gracefully in compiletest
authorvarkor <github@varkor.com>
Fri, 23 Feb 2018 23:54:24 +0000 (23:54 +0000)
committervarkor <github@varkor.com>
Fri, 23 Feb 2018 23:54:24 +0000 (23:54 +0000)
Previously, if the gdb command was available, but threw an error, compiletest would panic.  This is obviously not good. Now, gdb is treated as missing if calling `gdb --version` does not output anything on stdout.

src/tools/compiletest/src/main.rs

index e3d453a991d802d3e23dbc5717ee4cc6cedbeba0..304143eaa0bfffcd32ea7c10e1303791786a9ca1 100644 (file)
@@ -736,17 +736,12 @@ fn analyze_gdb(gdb: Option<String>) -> (Option<String>, Option<u32>, bool) {
         Some(ref s) => s,
     };
 
-    let version_line = Command::new(gdb)
-        .arg("--version")
-        .output()
-        .map(|output| {
-            String::from_utf8_lossy(&output.stdout)
-                .lines()
-                .next()
-                .unwrap()
-                .to_string()
-        })
-        .ok();
+    let mut version_line = None;
+    if let Ok(output) = Command::new(gdb).arg("--version").output() {
+        if let Some(first_line) = String::from_utf8_lossy(&output.stdout).lines().next() {
+            version_line = Some(first_line.to_string());
+        }
+    }
 
     let version = match version_line {
         Some(line) => extract_gdb_version(&line),