Permalink
Browse files

[test suite] file_find_regex() postive vs. negative match styles

Positive match style requires all regex's to be found, whereas negative match
style only requires seeing one regex.
  • Loading branch information...
1 parent 6c73e16 commit 71fc4fe7fe9ec735e926e12ebd91b9475e7d8a74 @mrash committed Jul 18, 2012
Showing with 41 additions and 30 deletions.
  1. +41 −30 test/test-fwknop.pl
View
71 test/test-fwknop.pl
@@ -101,6 +101,8 @@
my $REQUIRE_NO_NEW_RULE = 2;
my $NEW_RULE_REMOVED = 1;
my $REQUIRE_NO_NEW_REMOVED = 2;
+my $MATCH_ANY = 1;
+my $MATCH_ALL = 2;
my $ip_re = qr|(?:[0-2]?\d{1,2}\.){3}[0-2]?\d{1,2}|; ### IPv4
@@ -1529,7 +1531,7 @@ ()
### look for compilation warnings - something like:
### warning: ‘test’ is used uninitialized in this function
return 0 if &file_find_regex([qr/\swarning:\s/, qr/gcc\:.*\sunused/],
- $current_test_file);
+ $MATCH_ANY, $current_test_file);
### the new binaries should exist
unless (-e $fwknopCmd and -x $fwknopCmd) {
@@ -1589,7 +1591,8 @@ ()
my $version = $1;
return 0 unless &run_cmd($test_hr->{'cmdline'},
$cmd_out_tmp, $current_test_file);
- return 1 if &file_find_regex([qr/$version/], $current_test_file);
+ return 1 if &file_find_regex([qr/$version/],
+ $MATCH_ALL, $current_test_file);
}
return 0;
}
@@ -1602,7 +1605,7 @@ ()
return 0 unless &run_cmd($test_hr->{'cmdline'},
$cmd_out_tmp, $current_test_file);
return 0 unless &file_find_regex([qr/final\spacked/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -1628,13 +1631,13 @@ ()
if ($test_hr->{'server_positive_output_matches'}) {
$rv = 0 unless &file_find_regex(
$test_hr->{'server_positive_output_matches'},
- $server_test_file);
+ $MATCH_ALL, $server_test_file);
}
if ($test_hr->{'server_negative_output_matches'}) {
$rv = 0 if &file_find_regex(
$test_hr->{'server_negative_output_matches'},
- $server_test_file);
+ $MATCH_ANY, $server_test_file);
}
return $rv;
@@ -1646,12 +1649,12 @@ ()
my $rv = &spa_cycle($test_hr);
unless (&file_find_regex([qr/Username:\s*$spoof_user/],
- $current_test_file)) {
+ $MATCH_ALL, $current_test_file)) {
$rv = 0;
}
unless (&file_find_regex([qr/Username:\s*$spoof_user/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1690,7 +1693,7 @@ ()
$rv = 0 unless $server_was_stopped;
unless (&file_find_regex([qr/Replay\sdetected\sfrom\ssource\sIP/i],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1703,7 +1706,7 @@ ()
&run_cmd("file $default_digest_file", $cmd_out_tmp, $current_test_file);
- if (&file_find_regex([qr/ASCII/i], $cmd_out_tmp)) {
+ if (&file_find_regex([qr/ASCII/i], $MATCH_ALL, $cmd_out_tmp)) {
### the format should be:
### <digest> <proto> <src_ip> <src_port> <dst_ip> <dst_port> <time>
@@ -1720,7 +1723,7 @@ ()
}
}
close F;
- } elsif (&file_find_regex([qr/dbm/i], $cmd_out_tmp)) {
+ } elsif (&file_find_regex([qr/dbm/i], $MATCH_ALL, $cmd_out_tmp)) {
&write_test_file("[+] DBM digest file format, " .
"assuming this is valid.\n", $current_test_file);
} else {
@@ -1773,7 +1776,7 @@ ()
= &client_server_interaction($test_hr, \@packets, $USE_PREDEF_PKTS);
unless (&file_find_regex([qr/PCAP\sfilter.*\s$non_std_spa_port/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1868,7 +1871,7 @@ ()
}
unless (&file_find_regex([qr/Error\screating\sfko\scontext/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1921,7 +1924,7 @@ ()
}
unless (&file_find_regex([qr/Error\screating\sfko\scontext/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1974,7 +1977,7 @@ ()
}
unless (&file_find_regex([qr/Error\screating\sfko\scontext/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -1988,7 +1991,7 @@ ()
= &client_server_interaction($test_hr, [], $USE_PREDEF_PKTS);
unless (&file_find_regex([qr/Starting\sfwknopd\smain\sevent\sloop/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -2029,12 +2032,12 @@ ()
}
unless (&file_find_regex([qr/count\slimit\sof\s1\sreached/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
unless (&file_find_regex([qr/Shutting\sDown\sfwknopd/i],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$rv = 0;
}
@@ -2129,7 +2132,7 @@ ()
if (&is_fwknopd_running()) {
&stop_fwknopd();
unless (&file_find_regex([qr/Got\sSIGTERM/],
- $server_test_file)) {
+ $MATCH_ALL, $server_test_file)) {
$server_was_stopped = 0;
}
} else {
@@ -2215,13 +2218,13 @@ ()
if ($test_hr->{'positive_output_matches'}) {
$rv = 0 unless &file_find_regex(
$test_hr->{'positive_output_matches'},
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
}
if ($test_hr->{'negative_output_matches'}) {
$rv = 0 if &file_find_regex(
$test_hr->{'negative_output_matches'},
- $current_test_file);
+ $MATCH_ANY, $current_test_file);
}
return $rv;
@@ -2234,7 +2237,7 @@ ()
&run_cmd("./hardening-check $test_hr->{'binary'}",
$cmd_out_tmp, $current_test_file);
return 0 if &file_find_regex([qr/Position\sIndependent.*:\sno/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -2245,7 +2248,7 @@ ()
&run_cmd("./hardening-check $test_hr->{'binary'}",
$cmd_out_tmp, $current_test_file);
return 0 if &file_find_regex([qr/Stack\sprotected.*:\sno/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -2256,7 +2259,7 @@ ()
&run_cmd("./hardening-check $test_hr->{'binary'}",
$cmd_out_tmp, $current_test_file);
return 0 if &file_find_regex([qr/Fortify\sSource\sfunctions:\sno/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -2267,7 +2270,7 @@ ()
&run_cmd("./hardening-check $test_hr->{'binary'}",
$cmd_out_tmp, $current_test_file);
return 0 if &file_find_regex([qr/Read.only\srelocations:\sno/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -2278,7 +2281,7 @@ ()
&run_cmd("./hardening-check $test_hr->{'binary'}",
$cmd_out_tmp, $current_test_file);
return 0 if &file_find_regex([qr/Immediate\sbinding:\sno/i],
- $current_test_file);
+ $MATCH_ALL, $current_test_file);
return 1;
}
@@ -2311,7 +2314,8 @@ ()
&run_cmd($cmd, $cmd_out_tmp, $current_test_file);
if ($cmd =~ /^ldd/) {
- $have_gpgme++ if &file_find_regex([qr/gpgme/], $cmd_out_tmp);
+ $have_gpgme++ if &file_find_regex([qr/gpgme/],
+ $MATCH_ALL, $cmd_out_tmp);
}
}
@@ -2719,7 +2723,8 @@ ()
&run_cmd("LD_LIBRARY_PATH=$lib_dir $fwknopdCmd $default_server_conf_args " .
"--status", $cmd_out_tmp, $current_test_file);
- return 0 if &file_find_regex([qr/no\s+running/i], $cmd_out_tmp);
+ return 0 if &file_find_regex([qr/no\s+running/i],
+ $MATCH_ALL, $cmd_out_tmp);
return 1;
}
@@ -2739,9 +2744,10 @@ ()
}
sub file_find_regex() {
- my ($re_ar, $file) = @_;
+ my ($re_ar, $match_style, $file) = @_;
my $found_all_regexs = 1;
+ my $found_single_match = 0;
my @write_lines = ();
my @file_lines = ();
@@ -2755,13 +2761,14 @@ ()
my $matched = 0;
for my $line (@file_lines) {
if ($line =~ $re) {
- push @write_lines, "[+] file_find_regex() " .
+ push @write_lines, "[.] file_find_regex() " .
"Matched '$re' with line: $line";
$matched = 1;
+ $found_single_match = 1;
}
}
unless ($matched) {
- push @write_lines, "[-] file_find_regex() " .
+ push @write_lines, "[.] file_find_regex() " .
"Did not match any regex in '@$re_ar' in file: $file\n";
$found_all_regexs = 0;
}
@@ -2771,6 +2778,10 @@ ()
&write_test_file($line, $file);
}
+ if ($match_style == $MATCH_ANY) {
+ return $found_single_match;
+ }
+
return $found_all_regexs;
}

0 comments on commit 71fc4fe

Please sign in to comment.