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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
09d069fa
Commit
09d069fa
authored
Oct 18, 2006
by
msvensson@shellback.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal:/home/bk/mysql-5.0-maint
into shellback.(none):/home/msvensson/mysql/mysql-5.0-maint
parents
7714fea9
a5561176
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
89 deletions
+100
-89
mysql-test/lib/mtr_cases.pl
mysql-test/lib/mtr_cases.pl
+42
-39
mysql-test/lib/mtr_report.pl
mysql-test/lib/mtr_report.pl
+1
-6
mysql-test/lib/mtr_timer.pl
mysql-test/lib/mtr_timer.pl
+15
-9
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+42
-35
No files found.
mysql-test/lib/mtr_cases.pl
View file @
09d069fa
...
...
@@ -59,7 +59,9 @@ sub collect_test_cases ($) {
if
(
@::opt_cases
)
{
foreach
my
$tname
(
@::opt_cases
)
{
# Run in specified order, no sort
foreach
my
$tname
(
@::opt_cases
)
{
# Run in specified order, no sort
my
$elem
=
undef
;
my
$component_id
=
undef
;
...
...
@@ -85,7 +87,7 @@ sub collect_test_cases ($) {
# If target component is known, check that the specified test case
# exists.
#
#
# Otherwise, try to guess the target component.
if
(
$component_id
)
...
...
@@ -127,7 +129,8 @@ sub collect_test_cases ($) {
}
else
{
foreach
my
$elem
(
sort
readdir
(
TESTDIR
)
)
{
foreach
my
$elem
(
sort
readdir
(
TESTDIR
)
)
{
my
$component_id
=
undef
;
my
$tname
=
undef
;
...
...
@@ -144,7 +147,9 @@ sub collect_test_cases ($) {
next
;
}
next
if
$::opt_do_test
and
!
defined
mtr_match_prefix
(
$elem
,
$::opt_do_test
);
# Skip tests that does not match the --do-test= filter
next
if
$::opt_do_test
and
!
defined
mtr_match_prefix
(
$elem
,
$::opt_do_test
);
collect_one_test_case
(
$testdir
,
$resdir
,
$tname
,
$elem
,
$cases
,
\%
disabled
,
$component_id
);
...
...
@@ -152,7 +157,7 @@ sub collect_test_cases ($) {
closedir
TESTDIR
;
}
# Reorder the test cases in an order that wil make them faster to run
# Reorder the test cases in an order that wil
l
make them faster to run
if
(
$::opt_reorder
)
{
...
...
@@ -306,40 +311,6 @@ sub collect_one_test_case($$$$$$$) {
$tinfo
->
{'
slave_num
'}
=
1
;
}
if
(
$::opt_with_ndbcluster
or
defined
mtr_match_substring
(
$tname
,"
ndb
")
)
{
# This is an ndb test or all tests should be run with ndb cluster started
$tinfo
->
{'
ndb_test
'}
=
1
;
if
(
!
$::opt_ndbcluster_supported
)
{
# Ndb is not supported, skip them
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
No ndbcluster support
";
return
;
}
elsif
(
$::opt_skip_ndbcluster
)
{
# All ndb test's should be skipped
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
No ndbcluster tests(--skip-ndbcluster)
";
return
;
}
}
else
{
# This is not a ndb test
$tinfo
->
{'
ndb_test
'}
=
0
;
if
(
$::opt_with_ndbcluster_only
)
{
# Only the ndb test should be run, all other should be skipped
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
Only ndbcluster tests(--with-ndbcluster-only)
";
return
;
}
}
# 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
";
...
...
@@ -550,6 +521,37 @@ sub collect_one_test_case($$$$$$$) {
$tinfo
->
{'
comment
'}
=
"
Test need debug binaries
";
return
;
}
if
(
$tinfo
->
{'
ndb_test
'}
)
{
# This is a NDB test
if
(
!
$::glob_ndbcluster_supported
)
{
# Ndb is not supported, skip it
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
No ndbcluster support
";
return
;
}
elsif
(
$::opt_skip_ndbcluster
)
{
# All ndb test's should be skipped
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
No ndbcluster tests(--skip-ndbcluster)
";
return
;
}
}
else
{
# This is not a ndb test
if
(
$::opt_with_ndbcluster_only
)
{
# Only the ndb test should be run, all other should be skipped
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
Only ndbcluster tests(--with-ndbcluster-only)
";
return
;
}
}
}
}
...
...
@@ -563,6 +565,7 @@ our @tags=
["
include/have_binlog_format_statement.inc
",
"
binlog_format
",
"
stmt
"],
["
include/big_test.inc
",
"
big_test
",
1
],
["
include/have_debug.inc
",
"
need_debug
",
1
],
["
include/have_ndb.inc
",
"
ndb_test
",
1
],
["
include/have_ndb_extra.inc
",
"
ndb_extra
",
1
],
["
require_manager
",
"
require_manager
",
1
],
);
...
...
mysql-test/lib/mtr_report.pl
View file @
09d069fa
...
...
@@ -130,16 +130,11 @@ sub mtr_report_test_failed ($) {
my
$tinfo
=
shift
;
$tinfo
->
{'
result
'}
=
'
MTR_RES_FAILED
';
if
(
$tinfo
->
{'
timeout
'}
)
if
(
defined
$tinfo
->
{'
timeout
'}
)
{
print
"
[ fail ] timeout
\n
";
return
;
}
elsif
(
$tinfo
->
{'
ndb_test
'}
and
$::cluster
->
[
0
]
->
{'
installed_ok
'}
eq
"
NO
")
{
print
"
[ fail ] ndbcluster start failure
\n
";
return
;
}
else
{
print
"
[ fail ]
\n
";
...
...
mysql-test/lib/mtr_timer.pl
View file @
09d069fa
...
...
@@ -4,23 +4,22 @@
# and is part of the translation of the Bourne shell script with the
# same name.
use
Carp
qw(cluck)
;
use
Socket
;
use
Errno
;
use
strict
;
#use POSIX ":sys_wait_h";
use
POSIX
'
WNOHANG
';
#
use POSIX 'WNOHANG';
sub
mtr_init_timers
();
sub
mtr_timer_start
($$$);
sub
mtr_timer_stop
($$);
sub
mtr_timer_stop_all
($);
sub
mtr_timer_waitpid
($$$);
##############################################################################
#
# Initiate
a
structure shared by all timers
# Initiate
the
structure shared by all timers
#
##############################################################################
...
...
@@ -35,17 +34,19 @@ sub mtr_init_timers () {
# Start, stop and poll a timer
#
# As alarm() isn't portable to Windows, we use separate processes to
# implement timers. That is why there is a mtr_timer_waitpid(), as this
# is where we catch a timeout.
# implement timers.
#
##############################################################################
sub
mtr_timer_start
($$$)
{
my
(
$timers
,
$name
,
$duration
)
=
@_
;
mtr_verbose
("
mtr_timer_start:
$name
,
$duration
");
if
(
exists
$timers
->
{'
timers
'}
->
{
$name
}
)
{
# We have an old running timer, kill it
mtr_verbose
("
There is an old timer running
");
mtr_timer_stop
(
$timers
,
$name
);
}
...
...
@@ -57,7 +58,7 @@ sub mtr_timer_start($$$) {
{
if
(
$!
==
$!
{
EAGAIN
}
)
# See "perldoc Errno"
{
mtr_
debu
g
("
Got EAGAIN from fork(), sleep 1 second and redo
");
mtr_
warnin
g
("
Got EAGAIN from fork(), sleep 1 second and redo
");
sleep
(
1
);
redo
FORK
;
}
...
...
@@ -70,6 +71,7 @@ sub mtr_timer_start($$$) {
if
(
$tpid
)
{
# Parent, record the information
mtr_verbose
("
timer parent, record info(
$name
,
$tpid
,
$duration
)
");
$timers
->
{'
timers
'}
->
{
$name
}
->
{'
pid
'}
=
$tpid
;
$timers
->
{'
timers
'}
->
{
$name
}
->
{'
duration
'}
=
$duration
;
$timers
->
{'
pids
'}
->
{
$tpid
}
=
$name
;
...
...
@@ -85,6 +87,7 @@ sub mtr_timer_start($$$) {
$SIG
{
INT
}
=
'
DEFAULT
';
$0
=
"
mtr_timer(timers,
$name
,
$duration
)
";
mtr_verbose
("
timer child
$name
, sleep
$duration
");
sleep
(
$duration
);
exit
(
0
);
}
...
...
@@ -95,9 +98,12 @@ sub mtr_timer_start($$$) {
sub
mtr_timer_stop
($$)
{
my
(
$timers
,
$name
)
=
@_
;
mtr_verbose
("
mtr_timer_stop:
$name
");
if
(
exists
$timers
->
{'
timers
'}
->
{
$name
}
)
{
my
$tpid
=
$timers
->
{'
timers
'}
->
{
$name
}
->
{'
pid
'};
mtr_verbose
("
Stopping timer with pid
$tpid
");
# FIXME as Cygwin reuses pids fast, maybe check that is
# the expected process somehow?!
...
...
@@ -114,7 +120,7 @@ sub mtr_timer_stop ($$) {
}
else
{
mtr_
debug
("
Asked to stop timer
\"
$name
\"
not started
");
mtr_
error
("
Asked to stop timer
\"
$name
\"
not started
");
return
0
;
}
}
...
...
@@ -138,7 +144,7 @@ sub mtr_timer_timeout ($$) {
# We got a timeout
my
$name
=
$timers
->
{'
pids
'}
->
{
$pid
};
mtr_timer_stop
(
$timers
,
$
timers
->
{'
timers
'}
->
{
$name
}
);
mtr_timer_stop
(
$timers
,
$
name
);
return
$name
;
}
...
...
mysql-test/mysql-test-run.pl
View file @
09d069fa
...
...
@@ -65,6 +65,7 @@ use IO::Socket;
use
IO::Socket::
INET
;
use
Data::
Dumper
;
use
strict
;
use
warnings
;
use
diagnostics
;
our
$glob_win32_perl
=
(
$^O
eq
"
MSWin32
");
# ActiveState Win32 Perl
...
...
@@ -277,7 +278,7 @@ our $opt_skip_ndbcluster= 0;
our
$opt_skip_ndbcluster_slave
=
0
;
our
$opt_with_ndbcluster
=
0
;
our
$opt_with_ndbcluster_only
=
0
;
our
$
opt
_ndbcluster_supported
=
0
;
our
$
glob
_ndbcluster_supported
=
0
;
our
$opt_ndb_extra_test
=
0
;
our
$opt_skip_master_binlog
=
0
;
our
$opt_skip_slave_binlog
=
0
;
...
...
@@ -391,6 +392,8 @@ sub main () {
my
(
$need_ndbcluster
,
$need_im
);
foreach
my
$test
(
@$tests
)
{
next
if
$test
->
{
skip
};
$need_ndbcluster
||=
$test
->
{
ndb_test
};
$need_im
||=
$test
->
{
component_id
}
eq
'
im
';
...
...
@@ -570,10 +573,10 @@ sub command_line_setup () {
'
compress
'
=>
\
$opt_compress
,
'
bench
'
=>
\
$opt_bench
,
'
small-bench
'
=>
\
$opt_small_bench
,
'
with-ndbcluster
'
=>
\
$opt_with_ndbcluster
,
# Control what test suites or cases to run
'
force
'
=>
\
$opt_force
,
'
with-ndbcluster
'
=>
\
$opt_with_ndbcluster
,
'
with-ndbcluster-only
'
=>
\
$opt_with_ndbcluster_only
,
'
skip-ndbcluster|skip-ndb
'
=>
\
$opt_skip_ndbcluster
,
'
skip-ndbcluster-slave|skip-ndb-slave
'
...
...
@@ -844,9 +847,9 @@ sub command_line_setup () {
# --------------------------------------------------------------------------
# Ndb cluster flags
# --------------------------------------------------------------------------
if
(
$opt_with_ndbcluster
and
$opt_skip_ndbcluster
)
if
(
$opt_with_ndbcluster
and
!
$opt_bench
)
{
mtr_error
("
Can
't specify both --with-ndbcluster and --skip-ndbcluster
");
mtr_error
("
Can
only use --with-ndbcluster togheter with --bench
");
}
if
(
$opt_ndbconnectstring
)
...
...
@@ -1483,7 +1486,7 @@ sub environment_setup () {
# --------------------------------------------------------------------------
# Add the path where libndbclient can be found
# --------------------------------------------------------------------------
if
(
$
opt
_ndbcluster_supported
)
if
(
$
glob
_ndbcluster_supported
)
{
push
(
@ld_library_paths
,
"
$glob_basedir
/storage/ndb/src/.libs
");
}
...
...
@@ -1868,6 +1871,8 @@ sub cleanup_stale_files () {
rmtree
(
readlink
(
$opt_vardir
));
# Remove the entire "var" dir
rmtree
("
$opt_vardir
/
");
# Remove the "var" symlink
unlink
(
$opt_vardir
);
}
else
{
...
...
@@ -2040,7 +2045,7 @@ sub check_ndbcluster_support ($) {
$opt_skip_ndbcluster_slave
=
1
;
return
;
}
$
opt
_ndbcluster_supported
=
1
;
$
glob
_ndbcluster_supported
=
1
;
mtr_report
("
Using ndbcluster when necessary, mysqld supports it
");
if
(
$mysql_version_id
<
50100
)
...
...
@@ -2057,11 +2062,6 @@ sub check_ndbcluster_support ($) {
sub
ndbcluster_start_install
($)
{
my
$cluster
=
shift
;
if
(
$opt_skip_ndbcluster
or
$glob_use_running_ndbcluster
)
{
return
0
;
}
mtr_report
("
Installing
$cluster
->{'name'} Cluster
");
mkdir
(
$cluster
->
{'
data_dir
'});
...
...
@@ -2475,11 +2475,24 @@ sub mysql_install_db () {
my
$cluster_started_ok
=
1
;
# Assume it can be started
if
(
ndbcluster_start_install
(
$clusters
->
[
0
])
||
(
$max_slave_num
&&
!
$opt_skip_ndbcluster_slave
&&
ndbcluster_start_install
(
$clusters
->
[
1
])))
if
(
$opt_skip_ndbcluster
||
$glob_use_running_ndbcluster
)
{
# Don't install master cluster
}
elsif
(
ndbcluster_start_install
(
$clusters
->
[
0
]))
{
mtr_warning
("
Failed to start install of
$clusters
->[0]->{name}
");
$cluster_started_ok
=
0
;
}
if
(
$max_slave_num
==
0
||
$opt_skip_ndbcluster_slave
||
$glob_use_running_ndbcluster_slave
)
{
# Don't install slave cluster
}
elsif
(
ndbcluster_start_install
(
$clusters
->
[
1
]))
{
mtr_warning
("
Failed to start install of
cluster
");
mtr_warning
("
Failed to start install of
$clusters
->[1]->{name}
");
$cluster_started_ok
=
0
;
}
...
...
@@ -2512,9 +2525,6 @@ sub mysql_install_db () {
}
}
# Stop clusters...
stop_all_servers
();
return
0
;
}
...
...
@@ -2753,10 +2763,9 @@ sub run_testcase_check_skip_test($)
# If test needs this cluster, check it was installed ok
if
(
!
$cluster
->
{'
installed_ok
'}
)
{
mtr_tofile
(
$path_timefile
,
"
Test marked as failed because
$cluster
->{'name'}
"
.
"
was not installed ok!
");
mtr_report_test_name
(
$tinfo
);
$tinfo
->
{
comment
}
=
"
Cluster
$cluster
->{'name'} was not installed ok
";
mtr_report_test_failed
(
$tinfo
);
return
1
;
}
...
...
@@ -2879,10 +2888,8 @@ sub run_testcase ($) {
# Can't restart a running server that may be in use
if
(
$glob_use_running_server
)
{
$tinfo
->
{'
skip
'}
=
1
;
$tinfo
->
{'
comment
'}
=
"
Can't restart a running server
";
mtr_report_test_name
(
$tinfo
);
$tinfo
->
{
comment
}
=
"
Can't restart a running server
";
mtr_report_test_skipped
(
$tinfo
);
return
;
}
...
...
@@ -2932,16 +2939,16 @@ sub run_testcase ($) {
$tinfo
->
{'
timeout
'}
=
1
;
# Mark as timeout
report_failure_and_restart
(
$tinfo
);
}
elsif
(
$res
==
1
)
{
# Test case failure reported by mysqltest
report_failure_and_restart
(
$tinfo
);
}
else
{
# Test case failed, if in control mysqltest returns 1
if
(
$res
!=
1
)
{
mtr_tofile
(
$path_timefile
,
"
mysqltest returned unexpected code
$res
,
"
.
"
it has probably crashed
");
}
# mysqltest failed, probably crashed
$tinfo
->
{
comment
}
=
"
mysqltest returned unexpected code
$res
, it has probably crashed
";
report_failure_and_restart
(
$tinfo
);
}
...
...
@@ -3593,14 +3600,14 @@ sub run_testcase_need_master_restart($)
mtr_verbose
("
Restart master: Restart forced with --force-restart
");
}
elsif
(
!
$opt_skip_ndbcluster
and
$tinfo
->
{'
ndb_test
'}
==
0
and
!
$tinfo
->
{'
ndb_test
'}
and
$clusters
->
[
0
]
->
{'
pid
'}
!=
0
)
{
$do_restart
=
1
;
# Restart without cluster
mtr_verbose
("
Restart master: Test does not need cluster
");
}
elsif
(
!
$opt_skip_ndbcluster
and
$tinfo
->
{'
ndb_test
'}
==
1
and
$tinfo
->
{'
ndb_test
'}
and
$clusters
->
[
0
]
->
{'
pid
'}
==
0
)
{
$do_restart
=
1
;
# Restart with cluster
...
...
@@ -4456,6 +4463,7 @@ Options to control what engine/variation to run
skip-ssl Dont start server with support for ssl connections
bench Run the benchmark suite
small-bench Run the benchmarks with --small-tests --small-tables
with-ndbcluster Use cluster as default table type for benchmark
Options to control directories to use
benchdir=DIR The directory where the benchmark suite is stored
...
...
@@ -4472,7 +4480,6 @@ Options to control directories to use
Options to control what test suites or cases to run
force Continue to run the suite after failure
with-ndbcluster Use cluster in all tests
with-ndbcluster-only Run only tests that include "ndb" in the filename
skip-ndb[cluster] Skip all tests that need cluster
skip-ndb[cluster]-slave Skip all tests that need a slave cluster
...
...
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