mirror of
https://github.com/the-tcpdump-group/tcpdump.git
synced 2024-11-27 12:03:44 +08:00
minor changes to detect core dumps better
This commit is contained in:
parent
e513b92334
commit
6094d2890e
@ -16,7 +16,13 @@ if ($^O eq 'MSWin32') {
|
||||
$r = system "..\\windump -n -r $input $options 2>NUL | sed 's/\\r//' | tee NEW/$output | diff $output - >DIFF/$output.diff";
|
||||
}
|
||||
else {
|
||||
$r = system "../tcpdump 2>/dev/null -n -r $input $options | tee NEW/$output | diff $output - >DIFF/$output.diff";
|
||||
# we used to do this as a nice pipeline, but the problem is that $r fails to
|
||||
# to be set properly if the tcpdump core dumps.
|
||||
$r = system "../tcpdump 2>/dev/null -n -r $input $options >NEW/$output";
|
||||
if($r == 0) {
|
||||
$r = system "cat NEW/$output | diff $output - >DIFF/$output.diff";
|
||||
}
|
||||
#print sprintf("END: %08x\n", $r);
|
||||
}
|
||||
|
||||
if($r == 0) {
|
||||
@ -28,15 +34,25 @@ printf " %-30s: TEST FAILED", $name;
|
||||
open FOUT, '>>failure-outputs.txt';
|
||||
printf FOUT "Failed test: $name\n\n";
|
||||
close FOUT;
|
||||
system "cat DIFF/$output.diff >> failure-outputs.txt";
|
||||
if(-f "DIFF/$output.diff") {
|
||||
system "cat DIFF/$output.diff >> failure-outputs.txt";
|
||||
}
|
||||
|
||||
if($r == -1) {
|
||||
print " (failed to execute: $!)\n";
|
||||
exit 30;
|
||||
}
|
||||
if($r & 127) {
|
||||
printf " (terminated with signal %u, %s coredump)\n", ($r & 127), ($r & 128) ? 'with' : 'without';
|
||||
exit ($r & 128) ? 10 : 20;
|
||||
|
||||
# this is not working right, $r == 0x8b00 when there is a core dump.
|
||||
# clearly, we need some platform specific perl magic to take this apart, so look for "core"
|
||||
# too.
|
||||
if($r & 127 || -f "core") {
|
||||
my $with = ($r & 128) ? 'with' : 'without';
|
||||
if(-f "core") {
|
||||
$with = "with";
|
||||
}
|
||||
printf " (terminated with signal %u, %s coredump)\n", ($r & 127), $with;
|
||||
exit ($r & 128) ? 10 : 20;
|
||||
}
|
||||
print "\n";
|
||||
exit $r >> 8;
|
||||
|
@ -31,6 +31,7 @@ runSimpleTests()
|
||||
\#*) continue;;
|
||||
'') continue;;
|
||||
esac
|
||||
rm -f core
|
||||
[ "$only" != "" -a "$name" != "$only" ] && continue
|
||||
if ./TESTonce $name $input $output "$options"
|
||||
then
|
||||
|
Loading…
Reference in New Issue
Block a user