diff options
Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/runtests.pl | 58 | 
1 files changed, 43 insertions, 15 deletions
| diff --git a/tests/runtests.pl b/tests/runtests.pl index a406067fa..a87922a67 100755 --- a/tests/runtests.pl +++ b/tests/runtests.pl @@ -129,25 +129,39 @@ sub torture {      # loop over the different tests commands      for(@test) { -        my $testcmd = "$CURL $_ >log/torture.stdout 2>log/torture.stderr"; - -        subVariables(\$testcmd); - -        # First get  test server, ignore the output/result -        system($testcmd); +        my $cmdargs = "$_";          $c++;          if($tortnum && ($tortnum != $c)) {              next;          } +        print "We want test $c\n"; + +        my $redir=">log/torture.stdout 2>log/torture.stderr"; + +        subVariables(\$cmdargs); + +        my $testcmd = "$CURL $cmdargs $redir"; + +        # First get URL from test server, ignore the output/result +        system($testcmd); + +        # Set up gdb-stuff if desired +        if($gdbthis) { +            open(GDBCMD, ">log/gdbcmd"); +            print GDBCMD "set args $cmdargs\n"; +            print GDBCMD "show args\n"; +            close(GDBCMD); +            $testcmd = "gdb $CURL -x log/gdbcmd"; +        }          print "Torture test $c starting up\n",          " CMD: $testcmd\n";          # memanalyze -v is our friend, get the number of allocations made          my $count; -        my @out = `$memanalyze -v memdump`; +        my @out = `$memanalyze -v $memdump`;          for(@out) {              if(/^Allocations: (\d+)/) {                  $count = $1; @@ -156,6 +170,7 @@ sub torture {          }          if(!$count) {              # hm, no allocations in this fetch, ignore and get next +            print "BEEEP, no allocs found for test $c!!!\n";              next;          }          print " $count allocations to excersize\n"; @@ -167,12 +182,16 @@ sub torture {              if($tortalloc && ($tortalloc != $limit)) {                  next;              } + +            print "Alloc no: $limit\r" if(!$gdbthis);              # make the memory allocation function number $limit return failure              $ENV{'CURL_MEMLIMIT'} = $limit;              # remove memdump first to be sure we get a new nice and clean one -            unlink("memdump"); +            unlink($memdump); +             +            print "**> Alloc number $limit is now set to fail <**\n" if($gdbthis);              my $ret = system($testcmd); @@ -195,6 +214,7 @@ sub torture {                  if($leak) {                      print "** MEMORY FAILURE\n";                      print @memdata; +                    print `$memanalyze -l $memdump`;                      $fail = 1;                  }              } @@ -205,10 +225,12 @@ sub torture {                  exit 1;              }          } -        print " torture test $c did GOOD\n"; +        print "\n torture test $c did GOOD\n";          # all is well, now test a different kind of URL      } +    stopservers(); +    exit; # for now, we stop after these tests  }  ####################################################################### @@ -1075,9 +1097,9 @@ sub singletest {  #######################################################################  # Stop all running test servers  sub stopservers { -    print "Shutting down test suite servers:\n" if (!$short); +    print "Shutting down test suite servers:\n" if ($verbose);      for(keys %run) { -        printf ("* kill pid for %-5s => %-5d\n", $_, $run{$_}) if(!$short); +        printf ("* kill pid for %-5s => %-5d\n", $_, $run{$_}) if($verbose);          stopserver($run{$_}); # the pid file is in the hash table      }  } @@ -1097,6 +1119,7 @@ sub startservers {                  if($pid <= 0) {                      return 2; # error starting it                  } +                printf ("* pid ftp => %-5d\n", $pid) if($verbose);                  $run{'ftp'}=$pid;              }          } @@ -1105,7 +1128,8 @@ sub startservers {                  $pid = runhttpserver($verbose);                  if($pid <= 0) {                      return 2; # error starting -                } +                }  +                printf ("* pid http => %-5d\n", $pid) if($verbose);                  $run{'http'}=$pid;              }          } @@ -1127,6 +1151,7 @@ sub startservers {                  if($pid <= 0) {                      return 2;                  } +                printf ("* pid ftps => %-5d\n", $pid) if($verbose);                  $run{'ftps'}=$pid;              }          } @@ -1151,6 +1176,7 @@ sub startservers {                  if($pid <= 0) {                      return 2;                  } +                printf ("* pid https => %-5d\n", $pid) if($verbose);                  $run{'https'}=$pid;              }          } @@ -1229,8 +1255,11 @@ do {          # torture          $torture=1;          my $xtra = $1; -        if($xtra =~ /(\d+),(\d+)/) { -            ($tortnum, $tortalloc)= ($1, $2); +        if($xtra =~ s/^(\d+)//) { +            $tortnum = $1; +        } +        if($xtra =~ s/(\d+)$//) { +            $tortalloc = $1;          }      }      elsif($ARGV[0] eq "-a") { @@ -1331,7 +1360,6 @@ open(CMDLOG, ">$CURLLOG") ||  #  if($torture) {      &torture(); -    exit; # for now, we stop after these tests  }  #######################################################################  # The main test-loop | 
