Commit fff57e9d authored by Daniel Fischer's avatar Daniel Fischer

address review comments

parent b466018c
...@@ -11,7 +11,7 @@ The syntax is as follows: ...@@ -11,7 +11,7 @@ The syntax is as follows:
2) Empty lines and lines starting with a hash (#) are ignored. 2) Empty lines and lines starting with a hash (#) are ignored.
3) If any other line contains a black followed by a hash (#), the hash 3) If any other line contains a blank followed by a hash (#), the hash
and any subsequent characters are ignored. and any subsequent characters are ignored.
4) The full test case name including the suite and execution mode 4) The full test case name including the suite and execution mode
......
...@@ -109,10 +109,10 @@ sub mtr_report_test ($) { ...@@ -109,10 +109,10 @@ sub mtr_report_test ($) {
my ($tinfo)= @_; my ($tinfo)= @_;
my $test_name = _mtr_report_test_name($tinfo); my $test_name = _mtr_report_test_name($tinfo);
my $comment= $tinfo->{'comment'}; my $comment= $tinfo->{'comment'};
my $logfile= $tinfo->{'logfile'}; my $logfile= $tinfo->{'logfile'};
my $warnings= $tinfo->{'warnings'}; my $warnings= $tinfo->{'warnings'};
my $result= $tinfo->{'result'}; my $result= $tinfo->{'result'};
if ($result eq 'MTR_RES_FAILED'){ if ($result eq 'MTR_RES_FAILED'){
...@@ -123,14 +123,20 @@ sub mtr_report_test ($) { ...@@ -123,14 +123,20 @@ sub mtr_report_test ($) {
{ {
# 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.
for my $exp ( @$::opt_experimental ) { for my $exp ( @$::experimental_test_cases ) {
if ( $exp ne $test_name ) { if ( $exp ne $test_name ) {
# if the expression is not the name of this test case, but has
# an asterisk at the end, determine if the characters up to
# but excluding the asterisk are the same
if ( $exp ne "" && substr($exp, -1, 1) eq "*" ) { if ( $exp ne "" && substr($exp, -1, 1) eq "*" ) {
$exp = substr($exp, 0, length($exp) - 1); $exp = substr($exp, 0, length($exp) - 1);
if ( substr($test_name, 0, length($exp)) ne $exp ) { if ( substr($test_name, 0, length($exp)) ne $exp ) {
# no match, try next entry
next; next;
} }
# if yes, fall through to set the exp-fail status
} else { } else {
# no match, try next entry
next; next;
} }
} }
......
...@@ -170,6 +170,7 @@ my $config; # The currently running config ...@@ -170,6 +170,7 @@ 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_experimental;
our $experimental_test_cases;
my $baseport; my $baseport;
my $opt_build_thread= $ENV{'MTR_BUILD_THREAD'} || "auto"; my $opt_build_thread= $ENV{'MTR_BUILD_THREAD'} || "auto";
...@@ -963,24 +964,29 @@ sub command_line_setup { ...@@ -963,24 +964,29 @@ sub command_line_setup {
if ( $opt_experimental ) if ( $opt_experimental )
{ {
if ( open(FILE, "<", $opt_experimental) ) { # read the list of experimental test cases from the file specified on
mtr_report("Using experimental file: $opt_experimental"); # the command line
$opt_experimental = []; open(FILE, "<", $opt_experimental) or mtr_error("Can't read experimental file: $opt_experimental");
while(<FILE>) { mtr_report("Using experimental file: $opt_experimental");
chomp; $experimental_test_cases = [];
s/( +|^)#.*$//; while(<FILE>) {
s/^ +//; chomp;
s/ +$//; # remove comments (# foo) at the beginning of the line, or after a
if ( $_ eq "" ) { # blank at the end of the line
next; s/( +|^)#.*$//;
} # remove whitespace
print " - $_\n"; s/^ +//;
push @$opt_experimental, $_; s/ +$//;
# if nothing left, don't need to remember this line
if ( $_ eq "" ) {
next;
} }
close FILE; # remember what is left as the name of another test case that should be
} else { # treated as experimental
mtr_error("Can't read experimental file: $opt_experimental"); print " - $_\n";
push @$experimental_test_cases, $_;
} }
close FILE;
} }
foreach my $arg ( @ARGV ) foreach my $arg ( @ARGV )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment