mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
fixed the valgrind log check and make it possible to disable it for a specific
test, see test 509
This commit is contained in:
parent
9cdf6fb64b
commit
5a8097a4d5
@ -190,4 +190,7 @@ the file's contents must be identical to this
|
|||||||
<upload>
|
<upload>
|
||||||
the contents of the upload data curl should have sent
|
the contents of the upload data curl should have sent
|
||||||
</upload>
|
</upload>
|
||||||
|
<valgrind>
|
||||||
|
disable - disables the valgrind log check for this test
|
||||||
|
</valgrind>
|
||||||
</verify>
|
</verify>
|
||||||
|
@ -1351,13 +1351,6 @@ sub singletest {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
# the test succeeded, remove all log files
|
|
||||||
if(!$keepoutfiles) {
|
|
||||||
cleardir($LOGDIR);
|
|
||||||
}
|
|
||||||
|
|
||||||
unlink($FTPDCMD); # remove the instructions for this test
|
|
||||||
|
|
||||||
@what = getpart("client", "killserver");
|
@what = getpart("client", "killserver");
|
||||||
for(@what) {
|
for(@what) {
|
||||||
my $serv = $_;
|
my $serv = $_;
|
||||||
@ -1398,41 +1391,75 @@ sub singletest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if($valgrind) {
|
if($valgrind) {
|
||||||
opendir(DIR, "log") ||
|
# this is the valid protocol blurb curl should generate
|
||||||
return 0; # can't open log dir
|
my @disable= getpart("verify", "valgrind");
|
||||||
my @files = readdir(DIR);
|
|
||||||
closedir DIR;
|
if($disable[0] !~ /disable/) {
|
||||||
my $f;
|
|
||||||
my $l;
|
opendir(DIR, "log") ||
|
||||||
foreach $f (@files) {
|
return 0; # can't open log dir
|
||||||
if($f =~ /^valgrind$testnum/) {
|
my @files = readdir(DIR);
|
||||||
$l = $f;
|
closedir DIR;
|
||||||
last;
|
my $f;
|
||||||
|
my $l;
|
||||||
|
foreach $f (@files) {
|
||||||
|
if($f =~ /^valgrind$testnum\.pid/) {
|
||||||
|
$l = $f;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
my $leak;
|
||||||
|
my $invalidread;
|
||||||
|
my $error;
|
||||||
|
|
||||||
|
open(VAL, "<log/$l");
|
||||||
|
while(<VAL>) {
|
||||||
|
if($_ =~ /definitely lost: (\d*) bytes/) {
|
||||||
|
$leak = $1;
|
||||||
|
if($leak) {
|
||||||
|
$error++;
|
||||||
|
}
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
if($_ =~ /Invalid read of size (\d+)/) {
|
||||||
|
$invalidread = $1;
|
||||||
|
$error++;
|
||||||
|
last;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close(VAL);
|
||||||
|
if($error) {
|
||||||
|
print " valgrind ERROR ";
|
||||||
|
if($leak) {
|
||||||
|
print "\n Leaked $leak bytes\n";
|
||||||
|
}
|
||||||
|
if($invalidread) {
|
||||||
|
print "\n Read $invalidread invalid bytes\n";
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
elsif(!$short) {
|
||||||
|
print " valgrind OK";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my $leak;
|
else {
|
||||||
open(VAL, "<$l");
|
if(!$short) {
|
||||||
while(<VAL>) {
|
print " valgrind SKIPPED";
|
||||||
if($_ =~ /definitely lost: (\d*) bytes/) {
|
|
||||||
$leak = $1;
|
|
||||||
last;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close(VAL);
|
|
||||||
if($leak) {
|
|
||||||
print " valgrind ERROR ";
|
|
||||||
}
|
|
||||||
elsif(!$short) {
|
|
||||||
print " valgrind OK";
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if($short) {
|
if($short) {
|
||||||
print "OK";
|
print "OK";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
|
|
||||||
|
# the test succeeded, remove all log files
|
||||||
|
if(!$keepoutfiles) {
|
||||||
|
cleardir($LOGDIR);
|
||||||
|
}
|
||||||
|
|
||||||
|
unlink($FTPDCMD); # remove the instructions for this test
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user