[test suite] added --client-only mode for the test suite
This commit is contained in:
parent
94cc77fda6
commit
63a829803e
@ -281,6 +281,8 @@ my $fuzzing_class = 'bogus data';
|
|||||||
my %fuzzing_spa_packets = ();
|
my %fuzzing_spa_packets = ();
|
||||||
my $total_fuzzing_pkts = 0;
|
my $total_fuzzing_pkts = 0;
|
||||||
my $server_test_file = '';
|
my $server_test_file = '';
|
||||||
|
my $client_only_mode = 0;
|
||||||
|
my $server_only_mode = 0;
|
||||||
my $enable_valgrind = 0;
|
my $enable_valgrind = 0;
|
||||||
my $disable_valgrind = 0;
|
my $disable_valgrind = 0;
|
||||||
our $valgrind_str = '';
|
our $valgrind_str = '';
|
||||||
@ -399,6 +401,8 @@ exit 1 unless GetOptions(
|
|||||||
'openssl-path=s' => \$openssl_path,
|
'openssl-path=s' => \$openssl_path,
|
||||||
'output-dir=s' => \$output_dir,
|
'output-dir=s' => \$output_dir,
|
||||||
'cmd-verbose=s' => \$verbose_str,
|
'cmd-verbose=s' => \$verbose_str,
|
||||||
|
'client-only-mode' => \$client_only_mode,
|
||||||
|
'server-only-mode' => \$server_only_mode,
|
||||||
'diff' => \$diff_mode,
|
'diff' => \$diff_mode,
|
||||||
'diff-dir1=s' => \$diff_dir1,
|
'diff-dir1=s' => \$diff_dir1,
|
||||||
'diff-dir2=s' => \$diff_dir2,
|
'diff-dir2=s' => \$diff_dir2,
|
||||||
@ -434,7 +438,7 @@ exit &diff_test_results() if $diff_mode;
|
|||||||
### run an fwknop command under gdb from a previous test run
|
### run an fwknop command under gdb from a previous test run
|
||||||
exit &gdb_test_cmd() if $gdb_test_file;
|
exit &gdb_test_cmd() if $gdb_test_file;
|
||||||
|
|
||||||
&identify_loopback_intf();
|
&identify_loopback_intf() unless $list_mode or $client_only_mode;
|
||||||
|
|
||||||
### make sure everything looks as expected before continuing
|
### make sure everything looks as expected before continuing
|
||||||
&init();
|
&init();
|
||||||
@ -599,6 +603,8 @@ my %test_keys = (
|
|||||||
'fw_rule_created' => $OPTIONAL,
|
'fw_rule_created' => $OPTIONAL,
|
||||||
'fw_rule_removed' => $OPTIONAL,
|
'fw_rule_removed' => $OPTIONAL,
|
||||||
'server_conf' => $OPTIONAL,
|
'server_conf' => $OPTIONAL,
|
||||||
|
'client_only' => $OPTIONAL_NUMERIC,
|
||||||
|
'server_only' => $OPTIONAL_NUMERIC,
|
||||||
'pkt' => $OPTIONAL,
|
'pkt' => $OPTIONAL,
|
||||||
'fuzzing_pkt' => $OPTIONAL,
|
'fuzzing_pkt' => $OPTIONAL,
|
||||||
'pkt_prefix' => $OPTIONAL,
|
'pkt_prefix' => $OPTIONAL,
|
||||||
@ -611,6 +617,7 @@ my %test_keys = (
|
|||||||
'disable_valgrind' => $OPTIONAL,
|
'disable_valgrind' => $OPTIONAL,
|
||||||
'positive_output_matches' => $OPTIONAL,
|
'positive_output_matches' => $OPTIONAL,
|
||||||
'negative_output_matches' => $OPTIONAL,
|
'negative_output_matches' => $OPTIONAL,
|
||||||
|
'client_and_server_mode' => $OPTIONAL_NUMERIC,
|
||||||
'insert_rule_before_exec' => $OPTIONAL,
|
'insert_rule_before_exec' => $OPTIONAL,
|
||||||
'insert_rule_while_running' => $OPTIONAL,
|
'insert_rule_while_running' => $OPTIONAL,
|
||||||
'search_for_rule_after_exit' => $OPTIONAL,
|
'search_for_rule_after_exit' => $OPTIONAL,
|
||||||
@ -767,6 +774,20 @@ sub run_test() {
|
|||||||
|
|
||||||
$msg =~ s/REPLPKTS/-->$total_fuzzing_pkts<-- pkts/;
|
$msg =~ s/REPLPKTS/-->$total_fuzzing_pkts<-- pkts/;
|
||||||
|
|
||||||
|
if ($client_only_mode) {
|
||||||
|
return unless $test_hr->{'client_only'}
|
||||||
|
or $test_hr->{'subcategory'} eq 'client'
|
||||||
|
or $test_hr->{'category'} eq 'perl FKO module'
|
||||||
|
or $test_hr->{'category'} eq 'python fko extension';
|
||||||
|
return if $msg =~ /server/i;
|
||||||
|
} elsif ($server_only_mode) {
|
||||||
|
return unless $test_hr->{'server_only'}
|
||||||
|
or $test_hr->{'subcategory'} eq 'server'
|
||||||
|
or $test_hr->{'category'} eq 'perl FKO module'
|
||||||
|
or $test_hr->{'category'} eq 'python fko extension';
|
||||||
|
return if $msg =~ /client/i;
|
||||||
|
}
|
||||||
|
|
||||||
if ($list_mode) {
|
if ($list_mode) {
|
||||||
if (&process_include_exclude($msg)) {
|
if (&process_include_exclude($msg)) {
|
||||||
print $msg, "\n";
|
print $msg, "\n";
|
||||||
@ -5560,9 +5581,11 @@ sub init() {
|
|||||||
|
|
||||||
$|++; ### turn off buffering
|
$|++; ### turn off buffering
|
||||||
|
|
||||||
$< == 0 && $> == 0 or
|
unless ($client_only_mode or $list_mode) {
|
||||||
die "[*] $0: You must be root (or equivalent ",
|
$< == 0 && $> == 0 or
|
||||||
"UID 0 account) to effectively test fwknop";
|
die "[*] $0: You must be root (or equivalent ",
|
||||||
|
"UID 0 account) to effectively test fwknop";
|
||||||
|
}
|
||||||
|
|
||||||
die "[*] $conf_dir directory does not exist." unless -d $conf_dir;
|
die "[*] $conf_dir directory does not exist." unless -d $conf_dir;
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
{
|
{
|
||||||
'category' => 'python fko extension',
|
'category' => 'python fko extension',
|
||||||
'subcategory' => 'compatibility',
|
'subcategory' => 'compatibility',
|
||||||
'detail' => 'python->C',
|
'detail' => 'python -> C server',
|
||||||
'function' => \&python_fko_client_to_C_server,
|
'function' => \&python_fko_client_to_C_server,
|
||||||
'fwknopd_cmdline' => "$fwknopdCmd -c $cf{'def'} -a $cf{'hmac_sha512_short_key2_access'} " .
|
'fwknopd_cmdline' => "$fwknopdCmd -c $cf{'def'} -a $cf{'hmac_sha512_short_key2_access'} " .
|
||||||
"-d $default_digest_file -p $default_pid_file $intf_str",
|
"-d $default_digest_file -p $default_pid_file $intf_str",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user