From 43e1e1cd1a2443234a0eeff9f11835b77fec0cff Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 21 Nov 2000 19:28:11 +0000
Subject: [PATCH] upload check, better ability to specify test cases on the
 command line

---
 tests/runtests.pl | 51 +++++++++++++++++++++++++++++++++++------------
 1 file changed, 38 insertions(+), 13 deletions(-)

diff --git a/tests/runtests.pl b/tests/runtests.pl
index 34a7dec11b..298b834786 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -186,7 +186,7 @@ sub comparefiles {
     # silly win-crap
     binmode S;
     binmode D;
-    
+
     my $m = 20;
     my ($snum, $dnum, $s, $d);
     do {
@@ -196,7 +196,7 @@ sub comparefiles {
            ($s ne $d)) {
             print "$source and $dest differ\n";
             $res=1;
-            last;
+            $snum=0;
         }
     } while($snum);
     close(S);
@@ -330,6 +330,21 @@ sub singletest {
     # this is the valid protocol file we should generate
     my $PROT="$TESTDIR/prot$NUMBER.txt";
 
+    # redirected stdout/stderr here
+    $STDOUT="$LOGDIR/stdout$NUMBER";
+    $STDERR="$LOGDIR/stderr$NUMBER";
+
+    # if this file exists, we verify that the stdout contained this:
+    my $VALIDOUT="$TESTDIR/stdout$NUMBER.txt";
+
+    # if this file exists, we verify upload
+    my $UPLOAD="$TESTDIR/upload$NUMBER.txt";
+
+    if(! -r $CURLCMD) {
+        # this is not a test
+        next;
+    }
+
     # name of the test
     open(N, "<$TESTDIR/name$NUMBER.txt") ||
         print "** Couldn't read name on test $NUMBER\n";
@@ -337,13 +352,6 @@ sub singletest {
     close(N);
     $DESC =~ s/[\r\n]//g;
 
-    # redirected stdout/stderr here
-    $STDOUT="$LOGDIR/stdout$NUMBER";
-    $STDERR="$LOGDIR/stderr$NUMBER";
-
-    # if this file exist, we verify that the stdout contained this:
-    my $VALIDOUT="$TESTDIR/stdout$NUMBER.txt";
-
     print "test $NUMBER...";
     if(!$short) {
         print "[$DESC]\n";
@@ -432,19 +440,30 @@ sub singletest {
             }
         }
         else {
-            if (! -r $REPLY) {
+            if (! -r $REPLY && -r $CURLOUT) {
                 print "** Missing reply data file for test $NUMBER",
                 ", should be similar to $CURLOUT\n";
                 return 1;            
             }
 
-            # verify the received data
-            $res = compare($CURLOUT, $REPLY, "data");
+            if( -r $CURLOUT ) {
+                # verify the received data
+                $res = compare($CURLOUT, $REPLY, "data");
+                if ($res) {
+                    return 1;
+                }
+            }
+        }
+
+        if(-r $UPLOAD) {
+             # verify uploaded data
+            $res = compare("$LOGDIR/upload.$NUMBER", $UPLOAD, "upload");
             if ($res) {
                 return 1;
             }
         }
 
+
         if (! -r $PROT) {
             print "** Missing protocol file for test $NUMBER",
             ", should be similar to $SERVERIN\n";
@@ -507,6 +526,7 @@ sub singletest {
 # Check options to this test program
 #
 
+my @testthis;
 do {
     if ($ARGV[0] eq "-v") {
         # verbose output
@@ -534,10 +554,15 @@ EOHELP
         exit;
     }
     elsif($ARGV[0] =~ /^(\d+)/) {
-        $TESTCASES=$ARGV[0]; # run these tests
+        push @testthis, $1;
     }
 } while(shift @ARGV);
 
+if($testthis[0] ne "") {
+    $TESTCASES=join(" ", @testthis);
+}
+
+
 #######################################################################
 # Output curl version and host info being tested
 #
-- 
GitLab