Commit 0d097d80 authored by Daniel Fischer's avatar Daniel Fischer

address review comments

parent 82b0741d
......@@ -11,7 +11,7 @@ The syntax is as follows:
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.
4) The full test case name including the suite and execution mode
......
......@@ -109,10 +109,10 @@ sub mtr_report_test ($) {
my ($tinfo)= @_;
my $test_name = _mtr_report_test_name($tinfo);
my $comment= $tinfo->{'comment'};
my $logfile= $tinfo->{'logfile'};
my $warnings= $tinfo->{'warnings'};
my $result= $tinfo->{'result'};
my $comment= $tinfo->{'comment'};
my $logfile= $tinfo->{'logfile'};
my $warnings= $tinfo->{'warnings'};
my $result= $tinfo->{'result'};
if ($result eq 'MTR_RES_FAILED'){
......@@ -123,14 +123,20 @@ sub mtr_report_test ($) {
{
# Find out if this test case is an experimental one, so we can treat
# 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 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 "*" ) {
$exp = substr($exp, 0, length($exp) - 1);
if ( substr($test_name, 0, length($exp)) ne $exp ) {
# no match, try next entry
next;
}
# if yes, fall through to set the exp-fail status
} else {
# no match, try next entry
next;
}
}
......
......@@ -170,6 +170,7 @@ my $config; # The currently running config
my $current_config_name; # The currently running config file template
our $opt_experimental;
our $experimental_test_cases;
my $baseport;
my $opt_build_thread= $ENV{'MTR_BUILD_THREAD'} || "auto";
......@@ -963,24 +964,29 @@ sub command_line_setup {
if ( $opt_experimental )
{
if ( open(FILE, "<", $opt_experimental) ) {
mtr_report("Using experimental file: $opt_experimental");
$opt_experimental = [];
while(<FILE>) {
chomp;
s/( +|^)#.*$//;
s/^ +//;
s/ +$//;
if ( $_ eq "" ) {
next;
}
print " - $_\n";
push @$opt_experimental, $_;
# read the list of experimental test cases from the file specified on
# 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 = [];
while(<FILE>) {
chomp;
# remove comments (# foo) at the beginning of the line, or after a
# blank at the end of the line
s/( +|^)#.*$//;
# remove whitespace
s/^ +//;
s/ +$//;
# if nothing left, don't need to remember this line
if ( $_ eq "" ) {
next;
}
close FILE;
} else {
mtr_error("Can't read experimental file: $opt_experimental");
# 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 )
......
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