aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-04-30 08:03:07 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-04-30 08:03:07 +0000
commite2aaf22d5d46e01323ce495f2f0e3587933b2fdb (patch)
tree5e60040efa33b979d14491ac6f554d0825bd1bf5 /tests
parent3304589043a159b4509e8c7a2156f99549db8650 (diff)
support the new libcurl IDN feature, also a first attempt to display a stack
trace if a test results in a 'core' file and gdb is present
Diffstat (limited to 'tests')
-rw-r--r--tests/getpart.pm2
-rwxr-xr-xtests/runtests.pl36
2 files changed, 35 insertions, 3 deletions
diff --git a/tests/getpart.pm b/tests/getpart.pm
index cb890d96a..897ac24bb 100644
--- a/tests/getpart.pm
+++ b/tests/getpart.pm
@@ -27,7 +27,7 @@ sub getpartattr {
) {
$inside++;
my $attr=$1;
- my @p=split("[ \t]", $attr);
+ my @p=split("[\t]", $attr);
my $assign;
foreach $assign (@p) {
diff --git a/tests/runtests.pl b/tests/runtests.pl
index 9ab962fe6..305cde92a 100755
--- a/tests/runtests.pl
+++ b/tests/runtests.pl
@@ -75,9 +75,11 @@ my $memanalyze="./memanalyze.pl";
my $stunnel = checkcmd("stunnel");
my $valgrind = checkcmd("valgrind");
+my $gdb = checkcmd("gdb");
my $ssl_version; # set if libcurl is built with SSL support
my $large_file; # set if libcurl is built with large file support
+my $has_idn; # set if libcurl is built with IDN support
my $skipped=0; # number of tests skipped; reported in main loop
my %skipped; # skipped{reason}=counter, reasons for skip
@@ -739,6 +741,10 @@ sub checkcurl {
# large file support
$large_file=1;
}
+ if($feat =~ /IDN/i) {
+ # IDN support
+ $has_idn=1;
+ }
}
}
if(!$curl) {
@@ -821,6 +827,11 @@ sub singletest {
next;
}
}
+ elsif($f eq "idn") {
+ if($has_idn) {
+ next;
+ }
+ }
$why = "curl lacks $f support";
$serverproblem = 15; # set it here
@@ -1035,6 +1046,9 @@ sub singletest {
print CMDLOG "$CMDLINE\n";
+ unlink("core");
+
+ my $dumped_core;
my $cmdres;
# run the command line we built
if($gdbthis) {
@@ -1048,7 +1062,7 @@ sub singletest {
else {
$cmdres = system("$CMDLINE");
my $signal_num = $cmdres & 127;
- my $dumped_core = $cmdres & 128;
+ $dumped_core = $cmdres & 128;
if(!$anyway && ($signal_num || $dumped_core)) {
$cmdres = 1000;
@@ -1057,6 +1071,24 @@ sub singletest {
$cmdres /= 256;
}
}
+ if(!$dumped_core) {
+ if(-r "core") {
+ # there's core file present now!
+ $dumped_core = 1;
+ }
+ }
+
+ if($dumped_core) {
+ print "core dumped!\n";
+ if($gdb) {
+ print "running gdb for post-mortem analysis:\n";
+ open(GDBCMD, ">log/gdbcmd2");
+ print GDBCMD "bt\n";
+ close(GDBCMD);
+ system("gdb --directory libtest -x log/gdbcmd2 -batch $DBGCURL core ");
+ # unlink("log/gdbcmd2");
+ }
+ }
# remove the special FTP command file after each test!
unlink($FTPDCMD);
@@ -1127,7 +1159,7 @@ sub singletest {
}
for(@strip) {
- # strip all patterns from both arrays
+ # strip off all lines that match the patterns from both arrays
chomp $_;
@out = striparray( $_, \@out);
@protstrip= striparray( $_, \@protstrip);