Bug #54364 Allow multiple --experimental command line options for MTR
Convert --experimental into a multi option Size of diff is caused by intenting code put into a for loop
This commit is contained in:
parent
d5f2972628
commit
c9d57b0c0f
@ -124,7 +124,7 @@ sub mtr_report_test ($) {
|
|||||||
my $timest = format_time();
|
my $timest = format_time();
|
||||||
my $fail = "fail";
|
my $fail = "fail";
|
||||||
|
|
||||||
if ( $::opt_experimental )
|
if ( @$::experimental_test_cases )
|
||||||
{
|
{
|
||||||
# Find out if this test case is an experimental one, so we can treat
|
# Find out if this test case is an experimental one, so we can treat
|
||||||
# the failure as an expected failure instead of a regression.
|
# the failure as an expected failure instead of a regression.
|
||||||
|
@ -187,7 +187,7 @@ our $opt_client_debugger;
|
|||||||
my $config; # The currently running config
|
my $config; # The currently running config
|
||||||
my $current_config_name; # The currently running config file template
|
my $current_config_name; # The currently running config file template
|
||||||
|
|
||||||
our $opt_experimental;
|
our @opt_experimentals;
|
||||||
our $experimental_test_cases;
|
our $experimental_test_cases;
|
||||||
|
|
||||||
my $baseport;
|
my $baseport;
|
||||||
@ -846,7 +846,7 @@ sub command_line_setup {
|
|||||||
'big-test' => \$opt_big_test,
|
'big-test' => \$opt_big_test,
|
||||||
'combination=s' => \@opt_combinations,
|
'combination=s' => \@opt_combinations,
|
||||||
'skip-combinations' => \&collect_option,
|
'skip-combinations' => \&collect_option,
|
||||||
'experimental=s' => \$opt_experimental,
|
'experimental=s' => \@opt_experimentals,
|
||||||
'skip-im' => \&ignore_option,
|
'skip-im' => \&ignore_option,
|
||||||
|
|
||||||
# Specify ports
|
# Specify ports
|
||||||
@ -1028,43 +1028,47 @@ sub command_line_setup {
|
|||||||
mtr_print_thick_line('#');
|
mtr_print_thick_line('#');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $opt_experimental )
|
if ( @opt_experimentals )
|
||||||
{
|
{
|
||||||
# $^O on Windows considered not generic enough
|
# $^O on Windows considered not generic enough
|
||||||
my $plat= (IS_WINDOWS) ? 'windows' : $^O;
|
my $plat= (IS_WINDOWS) ? 'windows' : $^O;
|
||||||
|
|
||||||
# read the list of experimental test cases from the file specified on
|
# read the list of experimental test cases from the files specified on
|
||||||
# the command line
|
# the command line
|
||||||
open(FILE, "<", $opt_experimental) or mtr_error("Can't read experimental file: $opt_experimental");
|
|
||||||
mtr_report("Using experimental file: $opt_experimental");
|
|
||||||
$experimental_test_cases = [];
|
$experimental_test_cases = [];
|
||||||
while(<FILE>) {
|
foreach my $exp_file (@opt_experimentals)
|
||||||
chomp;
|
{
|
||||||
# remove comments (# foo) at the beginning of the line, or after a
|
open(FILE, "<", $exp_file)
|
||||||
# blank at the end of the line
|
or mtr_error("Can't read experimental file: $exp_file");
|
||||||
s/( +|^)#.*$//;
|
mtr_report("Using experimental file: $exp_file");
|
||||||
# If @ platform specifier given, use this entry only if it contains
|
while(<FILE>) {
|
||||||
# @<platform> or @!<xxx> where xxx != platform
|
chomp;
|
||||||
if (/\@.*/)
|
# remove comments (# foo) at the beginning of the line, or after a
|
||||||
{
|
# blank at the end of the line
|
||||||
next if (/\@!$plat/);
|
s/( +|^)#.*$//;
|
||||||
next unless (/\@$plat/ or /\@!/);
|
# If @ platform specifier given, use this entry only if it contains
|
||||||
# Then remove @ and everything after it
|
# @<platform> or @!<xxx> where xxx != platform
|
||||||
s/\@.*$//;
|
if (/\@.*/)
|
||||||
|
{
|
||||||
|
next if (/\@!$plat/);
|
||||||
|
next unless (/\@$plat/ or /\@!/);
|
||||||
|
# Then remove @ and everything after it
|
||||||
|
s/\@.*$//;
|
||||||
|
}
|
||||||
|
# remove whitespace
|
||||||
|
s/^ +//;
|
||||||
|
s/ +$//;
|
||||||
|
# if nothing left, don't need to remember this line
|
||||||
|
if ( $_ eq "" ) {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
# remember what is left as the name of another test case that should be
|
||||||
|
# treated as experimental
|
||||||
|
print " - $_\n";
|
||||||
|
push @$experimental_test_cases, $_;
|
||||||
}
|
}
|
||||||
# remove whitespace
|
close FILE;
|
||||||
s/^ +//;
|
|
||||||
s/ +$//;
|
|
||||||
# if nothing left, don't need to remember this line
|
|
||||||
if ( $_ eq "" ) {
|
|
||||||
next;
|
|
||||||
}
|
|
||||||
# remember what is left as the name of another test case that should be
|
|
||||||
# treated as experimental
|
|
||||||
print " - $_\n";
|
|
||||||
push @$experimental_test_cases, $_;
|
|
||||||
}
|
}
|
||||||
close FILE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach my $arg ( @ARGV )
|
foreach my $arg ( @ARGV )
|
||||||
|
Loading…
x
Reference in New Issue
Block a user