support multiple error codes for a test case since some things just vary
authorDaniel Stenberg <daniel@haxx.se>
Thu, 17 Mar 2005 08:17:48 +0000 (08:17 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 17 Mar 2005 08:17:48 +0000 (08:17 +0000)
between platforms

tests/FILEFORMAT
tests/data/test237
tests/runtests.pl

index d41a052..30f539b 100644 (file)
@@ -165,7 +165,9 @@ Pass this given data on stdin to the tool.
 
 <verify>
 <errorcode>
-numerical error code curl is supposed to return
+numerical error code curl is supposed to return. Specify a list of accepted
+error codes by separating multiple numbers with comma. See test 237 for an
+example.
 </errorcode>
 <strip>
 One regex per line that is removed from the protocol dumps before the
index 1a5f0e2..be7dfd5 100644 (file)
@@ -22,8 +22,11 @@ REPLY PASV 227 Entering Passiv Mode (1218,91,256,127,127,127)
 <verify>
 # curl: (15) Can't resolve new host 1218.91.256.127:32639
 # 15 => CURLE_FTP_CANT_GET_HOST
+# some systems just don't fail on the illegal host name/address but instead
+# moves on and attempt to connect to... yes, to what?
+# 7= CURLE_COULDNT_CONNECT
 <errorcode>
-15
+15, 7
 </errorcode>
 <protocol>
 USER anonymous\r
index e1b9bd7..1f92de9 100755 (executable)
@@ -1246,7 +1246,7 @@ sub singletest {
     }
 
     my @err = getpart("verify", "errorcode");
-    my $errorcode = $err[0];
+    my $errorcode = $err[0] || "0";
 
     my $res;
     if (@validstdout) {
@@ -1376,10 +1376,21 @@ sub singletest {
         }
     }
 
-    if($errorcode == $cmdres) {
-        $errorcode =~ s/\n//;
+    # accept multiple comma-separated error codes
+    my @splerr = split(/ *, */, $errorcode);
+    my $errok;
+    my $e;
+    foreach $e (@splerr) {
+        if($e == $cmdres) {
+            # a fine error code
+            $errok = 1;
+            last;
+        }
+    }
+
+    if($errok) {
         if($verbose) {
-            print " received exitcode $errorcode OK";
+            print " received exitcode $cmdres OK";
         }
         elsif(!$short) {
             print " exit OK";
@@ -1387,7 +1398,7 @@ sub singletest {
     }
     else {
         if(!$short) {
-            print "\ncurl returned $cmdres, ".(0+$errorcode)." was expected\n";
+            printf "\ncurl returned $cmdres, %s was expected\n", $errorcode;
         }
         print " exit FAILED\n";
         return 1;