Commit 94077809 authored by Bjorn Munch's avatar Bjorn Munch

Bug #44979 Enhance MTR --experimental to support platform qualifier

Adding @<platform> syntax
parent c32c55ee
...@@ -23,3 +23,10 @@ The syntax is as follows: ...@@ -23,3 +23,10 @@ The syntax is as follows:
start with the same characters up to the last letter before the asterisk start with the same characters up to the last letter before the asterisk
are considered experimental: are considered experimental:
main.a* # get rid of main.alias, main.alibaba and main.agliolio main.a* # get rid of main.alias, main.alibaba and main.agliolio
6) Optionally, the test case may be followed by one or more platform
qualifiers beginning with @ or @!. The test will then be considered
experimental only/except on that platform. Basic OS names as
reported by $^O in Perl, or 'windows' are supported, this includes
solaris, linux, windows, aix, darwin, ... Example:
main.alias @aix @windows # Fails on those
funcs_1.charset_collation_1 # depends on compile-time decisions funcs_1.charset_collation_1 # depends on compile-time decisions
main.plugin_load @solaris # Bug #42144
...@@ -984,6 +984,9 @@ sub command_line_setup { ...@@ -984,6 +984,9 @@ sub command_line_setup {
if ( $opt_experimental ) if ( $opt_experimental )
{ {
# $^O on Windows considered not generic enough
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 file specified on
# the command line # the command line
open(FILE, "<", $opt_experimental) or mtr_error("Can't read experimental file: $opt_experimental"); open(FILE, "<", $opt_experimental) or mtr_error("Can't read experimental file: $opt_experimental");
...@@ -994,6 +997,15 @@ sub command_line_setup { ...@@ -994,6 +997,15 @@ sub command_line_setup {
# remove comments (# foo) at the beginning of the line, or after a # remove comments (# foo) at the beginning of the line, or after a
# blank at the end of the line # blank at the end of the line
s/( +|^)#.*$//; s/( +|^)#.*$//;
# If @ platform specifier given, use this entry only if it contains
# @<platform> or @!<xxx> where xxx != platform
if (/\@.*/)
{
next if (/\@!$plat/);
next unless (/\@$plat/ or /\@!/);
# Then remove @ and everything after it
s/\@.*$//;
}
# remove whitespace # remove whitespace
s/^ +//; s/^ +//;
s/ +$//; s/ +$//;
......
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