| #!/usr/bin/perl | |
| $debug = 0; | |
| system("mkdir -p NEW DIFF"); | |
| if(@ARGV == 1) { | |
| open(TESTLIST, "TESTLIST") || die "can not open TESTLIST: $!\n"; | |
| $wanted = $ARGV[0]; | |
| #print "Searching for test case $wanted\n"; | |
| while(<TESTLIST>) { | |
| #print "Processing $_\n"; | |
| next unless (/^$wanted/); | |
| chop; | |
| ($name,$input,$output,$options)=split(/\s+/,$_, 4); | |
| last; | |
| } | |
| close(TESTLIST); | |
| die "Can not find test $wanted\n" unless defined($input); | |
| } elsif(@ARGV == 4) { | |
| $name=$ARGV[0]; | |
| $input=$ARGV[1]; | |
| $output=$ARGV[2]; | |
| $options=$ARGV[3]; | |
| } else { | |
| print "Usage: TESTonce name [input output options]\n"; | |
| exit 20; | |
| } | |
| print "Running $name. \n" if $debug; | |
| print " Input: $input, OUTPUT: $output, OPTIONS: $options\n" if $debug; | |
| print " "; | |
| exec("../tcpdump 2>/dev/null -n -r $input $options | tee NEW/$output | diff -w - $output >DIFF/$output.diff"); | |
| @cores = glob("core*"); | |
| exit 10 if (@cores > 0); | |
| exit 0; |