Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
725877e5
Commit
725877e5
authored
Feb 03, 2005
by
kent@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mtr_cases.pl:
new file
parent
1f088e95
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
270 additions
and
0 deletions
+270
-0
mysql-test/lib/mtr_cases.pl
mysql-test/lib/mtr_cases.pl
+270
-0
No files found.
mysql-test/lib/mtr_cases.pl
0 → 100644
View file @
725877e5
# -*- cperl -*-
# This is a library file used by the Perl version of mysql-test-run,
# and is part of the translation of the Bourne shell script with the
# same name.
use
strict
;
sub
collect_test_cases
($);
sub
collect_one_test_case
($$$$$);
##############################################################################
#
# Collect information about test cases we are to run
#
##############################################################################
sub
collect_test_cases
($)
{
my
$suite
=
shift
;
# Test suite name
my
$testdir
;
my
$resdir
;
if
(
$suite
eq
"
main
"
)
{
$testdir
=
"
$::glob_mysql_test_dir/t
";
$resdir
=
"
$::glob_mysql_test_dir/r
";
}
else
{
$testdir
=
"
$::glob_mysql_test_dir/suite/
$suite
/t
";
$resdir
=
"
$::glob_mysql_test_dir/suite/
$suite
/r
";
}
my
$cases
=
[]
;
# Array of hash, will be array of C struct
opendir
(
TESTDIR
,
$testdir
)
or
mtr_error
("
Can't open dir
\"
$testdir
\"
: $!
");
if
(
@::opt_cases
)
{
foreach
my
$tname
(
@::opt_cases
)
{
# Run in specified order, no sort
my
$elem
=
"
$tname
.test
";
if
(
!
-
f
"
$testdir
/
$elem
")
{
mtr_error
("
Test case
$tname
(
$testdir
/
$elem
) is not found
");
}
collect_one_test_case
(
$testdir
,
$resdir
,
$tname
,
$elem
,
$cases
);
}
closedir
TESTDIR
;
}
else
{
foreach
my
$elem
(
sort
readdir
(
TESTDIR
)
)
{
my
$tname
=
mtr_match_extension
(
$elem
,"
test
");
next
if
!
defined
$tname
;
next
if
$::opt_do_test
and
!
defined
mtr_match_prefix
(
$elem
,
$::opt_do_test
);
collect_one_test_case
(
$testdir
,
$resdir
,
$tname
,
$elem
,
$cases
);
}
closedir
TESTDIR
;
}
# To speed things up, we sort first in if the test require a restart
# or not, second in alphanumeric order.
# @$cases = sort {
# if ( $a->{'master_restart'} and $b->{'master_restart'} or
# ! $a->{'master_restart'} and ! $b->{'master_restart'} )
# {
# return $a->{'name'} cmp $b->{'name'};
# }
# if ( $a->{'master_restart'} )
# {
# return 1; # Is greater
# }
# else
# {
# return -1; # Is less
# }
# } @$cases;
return
$cases
;
}
##############################################################################
#
# Collect information about a single test case
#
##############################################################################
sub
collect_one_test_case
($$$$$)
{
my
$testdir
=
shift
;
my
$resdir
=
shift
;
my
$tname
=
shift
;
my
$elem
=
shift
;
my
$cases
=
shift
;
my
$path
=
"
$testdir
/
$elem
";
# ----------------------------------------------------------------------
# Skip some tests silently
# ----------------------------------------------------------------------
if
(
$::opt_start_from
and
$tname
lt
$::opt_start_from
)
{
return
;
}
# ----------------------------------------------------------------------
# Skip some tests but include in list, just mark them to skip
# ----------------------------------------------------------------------
my
$tinfo
=
{};
$tinfo
->
{'
name
'}
=
$tname
;
$tinfo
->
{'
result_file
'}
=
"
$resdir
/
$tname
.result
";
push
(
@$cases
,
$tinfo
);
if
(
$::opt_skip_test
and
defined
mtr_match_prefix
(
$tname
,
$::opt_skip_test
)
)
{
$tinfo
->
{'
skip
'}
=
1
;
return
;
}
# FIXME temporary solution, we have a hard coded list of test cases to
# skip if we are using the embedded server
if
(
$::glob_use_embedded_server
and
mtr_match_any_exact
(
$tname
,
\
@::skip_if_embedded_server
)
)
{
$tinfo
->
{'
skip
'}
=
1
;
return
;
}
# ----------------------------------------------------------------------
# Collect information about test case
# ----------------------------------------------------------------------
$tinfo
->
{'
path
'}
=
$path
;
$tinfo
->
{'
timezone
'}
=
"
GMT-3
";
# for UNIX_TIMESTAMP tests to work
if
(
defined
mtr_match_prefix
(
$tname
,"
rpl
")
)
{
if
(
$::opt_skip_rpl
)
{
$tinfo
->
{'
skip
'}
=
1
;
return
;
}
$tinfo
->
{'
slave_num
'}
=
1
;
# Default, use one slave
# FIXME currently we always restart slaves
$tinfo
->
{'
slave_restart
'}
=
1
;
if
(
$tname
eq
'
rpl_failsafe
'
or
$tname
eq
'
rpl_chain_temp_table
'
)
{
# $tinfo->{'slave_num'}= 3; # Not 3 ? Check old code, strange
}
}
# FIXME what about embedded_server + ndbcluster, skip ?!
my
$master_opt_file
=
"
$testdir
/
$tname
-master.opt
";
my
$slave_opt_file
=
"
$testdir
/
$tname
-slave.opt
";
my
$slave_mi_file
=
"
$testdir
/
$tname
.slave-mi
";
my
$master_sh
=
"
$testdir
/
$tname
-master.sh
";
my
$slave_sh
=
"
$testdir
/
$tname
-slave.sh
";
my
$disabled
=
"
$testdir
/
$tname
.disabled
";
$tinfo
->
{'
master_opt
'}
=
[]
;
$tinfo
->
{'
slave_opt
'}
=
[]
;
$tinfo
->
{'
slave_mi
'}
=
[]
;
if
(
-
f
$master_opt_file
)
{
$tinfo
->
{'
master_restart
'}
=
1
;
# We think so for now
# This is a dirty hack from old mysql-test-run, we use the opt file
# to flag other things as well, it is not a opt list at all
my
$extra_master_opt
=
mtr_get_opts_from_file
(
$master_opt_file
);
foreach
my
$opt
(
@$extra_master_opt
)
{
my
$value
;
$value
=
mtr_match_prefix
(
$opt
,
"
--timezone=
");
if
(
defined
$value
)
{
$tinfo
->
{'
timezone
'}
=
$value
;
$extra_master_opt
=
[]
;
$tinfo
->
{'
master_restart
'}
=
0
;
last
;
}
$value
=
mtr_match_prefix
(
$opt
,
"
--result-file=
");
if
(
defined
$value
)
{
$tinfo
->
{'
result_file
'}
=
"
r/
$value
.result
";
if
(
$::opt_result_ext
and
$::opt_record
or
-
f
"
$tinfo
->{'result_file'}$::opt_result_ext
")
{
$tinfo
->
{'
result_file
'}
.=
$::opt_result_ext
;
}
$extra_master_opt
=
[]
;
$tinfo
->
{'
master_restart
'}
=
0
;
last
;
}
}
$tinfo
->
{'
master_opt
'}
=
$extra_master_opt
;
}
if
(
-
f
$slave_opt_file
)
{
$tinfo
->
{'
slave_opt
'}
=
mtr_get_opts_from_file
(
$slave_opt_file
);
$tinfo
->
{'
slave_restart
'}
=
1
;
}
if
(
-
f
$slave_mi_file
)
{
$tinfo
->
{'
slave_mi
'}
=
mtr_get_opts_from_file
(
$slave_mi_file
);
$tinfo
->
{'
slave_restart
'}
=
1
;
}
if
(
-
f
$master_sh
)
{
if
(
$::glob_win32_perl
)
{
$tinfo
->
{'
skip
'}
=
1
;
}
else
{
$tinfo
->
{'
master_sh
'}
=
$master_sh
;
$tinfo
->
{'
master_restart
'}
=
1
;
}
}
if
(
-
f
$slave_sh
)
{
if
(
$::glob_win32_perl
)
{
$tinfo
->
{'
skip
'}
=
1
;
}
else
{
$tinfo
->
{'
slave_sh
'}
=
$slave_sh
;
$tinfo
->
{'
slave_restart
'}
=
1
;
}
}
if
(
-
f
$disabled
)
{
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
disable
'}
=
1
;
# Sub type of 'skip'
$tinfo
->
{'
comment
'}
=
mtr_fromfile
(
$disabled
);
}
# We can't restart a running server that may be in use
if
(
$::glob_use_running_server
and
(
$tinfo
->
{'
master_restart
'}
or
$tinfo
->
{'
slave_restart
'}
)
)
{
$tinfo
->
{'
skip
'}
=
1
;
}
}
1
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment