]> granicus.if.org Git - curl/commitdiff
If unable to get curl's version, log all failure details.
authorYang Tse <yangsita@gmail.com>
Thu, 8 Dec 2005 11:29:47 +0000 (11:29 +0000)
committerYang Tse <yangsita@gmail.com>
Thu, 8 Dec 2005 11:29:47 +0000 (11:29 +0000)
tests/runtests.pl

index 5ae341742bd127fa6c5bcfd5d1be47e00baebe17..e4a7b1071850e2c018dab0a1dab50f2174ceee9c 100755 (executable)
@@ -843,9 +843,24 @@ sub checksystem {
     my $feat;
     my $curl;
     my $libcurl;
-    my $versionerr="$LOGDIR/versionerr.log";
-    my $versioncmd="$CURL --version 2>$versionerr";
-    my @version=`$versioncmd`;
+    my $versretval;
+    my $versnoexec;
+    my @version=();
+
+    my $curlverout="$LOGDIR/curlverout.log";
+    my $curlvererr="$LOGDIR/curlvererr.log";
+    my $versioncmd="$CURL --version 1>$curlverout 2>$curlvererr";
+
+    unlink($curlverout);
+    unlink($curlvererr);
+
+    $versretval = system($versioncmd);
+    $versnoexec = $!;
+
+    open(VERSOUT, $curlverout);
+    @version = <VERSOUT>;
+    close(VERSOUT);
+
     for(@version) {
         chomp;
 
@@ -956,17 +971,23 @@ sub checksystem {
     }
     if(!$curl) {
         logmsg "unable to get curl's version! further details are:\n";
-        logmsg "CURL: \n";
-        logmsg "$CURL \n";
-        logmsg "VERSIONCMD: \n";
+        logmsg "issued command: \n";
         logmsg "$versioncmd \n";
-        logmsg "STDOUT: \n";
-        for(@version) {
-            chomp;
-            logmsg "$_ \n";
+        if ($versretval == -1) {
+            logmsg "command failed with: \n";
+            logmsg "$versnoexec \n";
+        }
+        elsif ($versretval & 127) {
+            logmsg sprintf("command died with signal %d, and %s coredump. \n", 
+                           ($versretval & 127), ($versretval & 128)?"a":"no");
+        }
+        else {
+            logmsg sprintf("command exited with value %d \n", $versretval >> 8);
         }
-        logmsg "STDERR: \n";
-        displaylogcontent("$versionerr");
+        logmsg "contents of $curlverout: \n";
+        displaylogcontent("$curlverout");
+        logmsg "contents of $curlvererr: \n";
+        displaylogcontent("$curlvererr");
         die "couldn't get curl's version!";
     }