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
This commit is contained in:
Daniel Stenberg 2004-04-30 08:03:07 +00:00
parent 3304589043
commit e2aaf22d5d
2 changed files with 35 additions and 3 deletions

View File

@ -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) {

View File

@ -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);