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
aea5775c
Commit
aea5775c
authored
Jan 20, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge kboortz@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/Users/kent/mysql/bk/mysql-4.1-perl
parents
9241e345
aa2eb4e0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
192 additions
and
88 deletions
+192
-88
mysql-test/lib/mtr_io.pl
mysql-test/lib/mtr_io.pl
+61
-2
mysql-test/lib/mtr_process.pl
mysql-test/lib/mtr_process.pl
+59
-20
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+72
-66
No files found.
mysql-test/lib/mtr_io.pl
View file @
aea5775c
...
@@ -35,13 +35,72 @@ sub mtr_get_opts_from_file ($) {
...
@@ -35,13 +35,72 @@ sub mtr_get_opts_from_file ($) {
while
(
<
FILE
>
)
while
(
<
FILE
>
)
{
{
chomp
;
chomp
;
s/\$MYSQL_TEST_DIR/$::glob_mysql_test_dir/g
;
push
(
@args
,
split
('
',
$_
));
# --set-variable=init_connect=set @a='a\\0c'
s/^\s+//
;
# Remove leading space
s/\s+$//
;
# Remove ending space
# This is strange, but we need to fill whitespace inside
# quotes with something, to remove later. We do this to
# be able to split on space. Else, we have trouble with
# options like
#
# --someopt="--insideopt1 --insideopt2"
#
# But still with this, we are not 100% sure it is right,
# we need a shell to do it right.
# print STDERR "\n";
# print STDERR "AAA: $_\n";
s/\'([^\'\"]*)\'/unspace($1,"\x0a")/g
e
;
s/\"([^\'\"]*)\"/unspace($1,"\x0b")/g
e
;
s/\'([^\'\"]*)\'/unspace($1,"\x0a")/g
e
;
s/\"([^\'\"]*)\"/unspace($1,"\x0b")/g
e
;
# print STDERR "BBB: $_\n";
# foreach my $arg (/(--?\w.*?)(?=\s+--?\w|$)/)
# FIXME ENV vars should be expanded!!!!
foreach
my
$arg
(
split
(
/[ \t]+/
))
{
$arg
=~
tr/\x11\x0a\x0b/ \'\"/
;
# Put back real chars
# The outermost quotes has to go
$arg
=~
s/^([^\'\"]*)\'(.*)\'([^\'\"]*)$/$1$2$3/
or
$arg
=~
s/^([^\'\"]*)\"(.*)\"([^\'\"]*)$/$1$2$3/
;
$arg
=~
s/\\\\/\\/g
;
$arg
=~
s/\$\{(\w+)\}/envsubst($1)/g
e
;
$arg
=~
s/\$(\w+)/envsubst($1)/g
e
;
# print STDERR "ARG: $arg\n";
push
(
@args
,
$arg
);
}
}
}
close
FILE
;
close
FILE
;
return
\
@args
;
return
\
@args
;
}
}
sub
envsubst
{
my
$string
=
shift
;
if
(
!
defined
$ENV
{
$string
}
)
{
mtr_error
("
opt file referense
\
$
$string
that is unknown
");
}
return
$ENV
{
$string
};
}
sub
unspace
{
my
$string
=
shift
;
my
$quote
=
shift
;
$string
=~
s/[ \t]/\x11/g
;
return
"
$quote$string$quote
";
}
sub
mtr_fromfile
($)
{
sub
mtr_fromfile
($)
{
my
$file
=
shift
;
my
$file
=
shift
;
...
...
mysql-test/lib/mtr_process.pl
View file @
aea5775c
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
# and is part of the translation of the Bourne shell script with the
# and is part of the translation of the Bourne shell script with the
# same name.
# same name.
use
Carp
qw(cluck)
;
#
use Carp qw(cluck);
use
strict
;
use
strict
;
use
POSIX
"
:sys_wait_h
";
use
POSIX
"
:sys_wait_h
";
...
@@ -64,18 +64,6 @@ sub spawn_impl ($$$$$$$) {
...
@@ -64,18 +64,6 @@ sub spawn_impl ($$$$$$$) {
my
$error
=
shift
;
my
$error
=
shift
;
my
$pid_file
=
shift
;
# FIXME
my
$pid_file
=
shift
;
# FIXME
# FIXME really needing a PATH???
# $ENV{'PATH'}= "/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}";
$ENV
{'
TZ
'}
=
"
GMT-3
";
# for UNIX_TIMESTAMP tests to work
$ENV
{'
LC_COLLATE
'}
=
"
C
";
$ENV
{'
MYSQL_TEST_DIR
'}
=
$::glob_mysql_test_dir
;
$ENV
{'
MASTER_MYPORT
'}
=
$::opt_master_myport
;
$ENV
{'
SLAVE_MYPORT
'}
=
$::opt_slave_myport
;
# $ENV{'MYSQL_TCP_PORT'}= '@MYSQL_TCP_PORT@'; # FIXME
$ENV
{'
MYSQL_TCP_PORT
'}
=
3306
;
$ENV
{'
MASTER_MYSOCK
'}
=
$::master
->
[
0
]
->
{'
path_mysock
'};
if
(
$::opt_script_debug
)
if
(
$::opt_script_debug
)
{
{
print
STDERR
"
\n
";
print
STDERR
"
\n
";
...
@@ -85,17 +73,21 @@ sub spawn_impl ($$$$$$$) {
...
@@ -85,17 +73,21 @@ sub spawn_impl ($$$$$$$) {
print
STDERR
"
####
",
"
STDERR
$error
\n
"
if
$error
;
print
STDERR
"
####
",
"
STDERR
$error
\n
"
if
$error
;
if
(
$join
)
if
(
$join
)
{
{
print
STDERR
"
####
",
"
run
";
print
STDERR
"
####
",
"
RUN
";
}
}
else
else
{
{
print
STDERR
"
####
",
"
spawn
";
print
STDERR
"
####
",
"
SPAWN
";
}
}
print
STDERR
"
$path
",
join
("
",
@$arg_list_t
),
"
\n
";
print
STDERR
"
$path
",
join
("
",
@$arg_list_t
),
"
\n
";
print
STDERR
"
####
",
"
-
"
x
78
,
"
\n
";
print
STDERR
"
####
",
"
-
"
x
78
,
"
\n
";
}
}
my
$pid
=
fork
();
my
$pid
=
fork
();
if
(
!
defined
$pid
)
{
mtr_error
("
$path
(
$pid
) can't be forked
");
}
if
(
$pid
)
if
(
$pid
)
{
{
...
@@ -104,17 +96,22 @@ sub spawn_impl ($$$$$$$) {
...
@@ -104,17 +96,22 @@ sub spawn_impl ($$$$$$$) {
{
{
# We run a command and wait for the result
# We run a command and wait for the result
# FIXME this need to be improved
# FIXME this need to be improved
waitpid
(
$pid
,
0
);
my
$res
=
waitpid
(
$pid
,
0
);
if
(
$res
==
-
1
)
{
mtr_error
("
$path
(
$pid
) got lost somehow
");
}
my
$exit_value
=
$?
>>
8
;
my
$exit_value
=
$?
>>
8
;
my
$signal_num
=
$?
&
127
;
my
$signal_num
=
$?
&
127
;
my
$dumped_core
=
$?
&
128
;
my
$dumped_core
=
$?
&
128
;
if
(
$signal_num
)
if
(
$signal_num
)
{
{
mtr_error
("
spawn
got signal
$signal_num
");
mtr_error
("
$path
(
$pid
)
got signal
$signal_num
");
}
}
if
(
$dumped_core
)
if
(
$dumped_core
)
{
{
mtr_error
("
spawn
dumped core
");
mtr_error
("
$path
(
$pid
)
dumped core
");
}
}
return
$exit_value
;
return
$exit_value
;
}
}
...
@@ -326,7 +323,8 @@ sub mtr_stop_mysqld_servers ($$) {
...
@@ -326,7 +323,8 @@ sub mtr_stop_mysqld_servers ($$) {
mtr_init_args
(
\
$args
);
mtr_init_args
(
\
$args
);
mtr_add_arg
(
$args
,
"
--no-defaults
");
mtr_add_arg
(
$args
,
"
--no-defaults
");
mtr_add_arg
(
$args
,
"
-uroot
");
mtr_add_arg
(
$args
,
"
--user=%s
",
$::opt_user
);
mtr_add_arg
(
$args
,
"
--password=
");
if
(
-
e
$srv
->
{'
sockfile
'}
)
if
(
-
e
$srv
->
{'
sockfile
'}
)
{
{
mtr_add_arg
(
$args
,
"
--socket=%s
",
$srv
->
{'
sockfile
'});
mtr_add_arg
(
$args
,
"
--socket=%s
",
$srv
->
{'
sockfile
'});
...
@@ -336,7 +334,8 @@ sub mtr_stop_mysqld_servers ($$) {
...
@@ -336,7 +334,8 @@ sub mtr_stop_mysqld_servers ($$) {
mtr_add_arg
(
$args
,
"
--port=%s
",
$srv
->
{'
port
'});
mtr_add_arg
(
$args
,
"
--port=%s
",
$srv
->
{'
port
'});
}
}
mtr_add_arg
(
$args
,
"
--connect_timeout=5
");
mtr_add_arg
(
$args
,
"
--connect_timeout=5
");
mtr_add_arg
(
$args
,
"
--shutdown_timeout=70
");
mtr_add_arg
(
$args
,
"
--shutdown_timeout=20
");
mtr_add_arg
(
$args
,
"
--protocol=tcp
");
# FIXME new thing, will it help?!
mtr_add_arg
(
$args
,
"
shutdown
");
mtr_add_arg
(
$args
,
"
shutdown
");
# We don't wait for termination of mysqladmin
# We don't wait for termination of mysqladmin
mtr_spawn
(
$::exe_mysqladmin
,
$args
,
mtr_spawn
(
$::exe_mysqladmin
,
$args
,
...
@@ -361,6 +360,10 @@ sub mtr_stop_mysqld_servers ($$) {
...
@@ -361,6 +360,10 @@ sub mtr_stop_mysqld_servers ($$) {
{
{
last
PIDSOCKFILEREMOVED
;
last
PIDSOCKFILEREMOVED
;
}
}
if
(
$loop
%
20
==
1
)
{
mtr_warning
("
Still processes alive after 10 seconds, retrying for
$loop
seconds...
");
}
mtr_debug
("
Sleep for 1 second waiting for pid and socket file removal
");
mtr_debug
("
Sleep for 1 second waiting for pid and socket file removal
");
sleep
(
1
);
# One second
sleep
(
1
);
# One second
}
}
...
@@ -464,4 +467,40 @@ sub stop_reap_all {
...
@@ -464,4 +467,40 @@ sub stop_reap_all {
$SIG
{
CHLD
}
=
'
DEFAULT
';
$SIG
{
CHLD
}
=
'
DEFAULT
';
}
}
##############################################################################
#
# Wait for a file to be created
#
##############################################################################
sub
sleep_until_file_created
($$)
{
my
$pidfile
=
shift
;
my
$timeout
=
shift
;
my
$loop
=
$timeout
;
while
(
$loop
--
)
{
if
(
-
r
$pidfile
)
{
return
;
}
mtr_debug
("
Sleep for 1 second waiting for creation of
$pidfile
");
if
(
$loop
%
20
==
1
)
{
mtr_warning
("
Waiting for
$pidfile
to be created, still trying for
$loop
seconds...
");
}
sleep
(
1
);
}
if
(
!
-
r
$pidfile
)
{
mtr_error
("
No
$pidfile
was created
");
}
}
1
;
1
;
mysql-test/mysql-test-run.pl
View file @
aea5775c
...
@@ -232,6 +232,8 @@ our $opt_local_master;
...
@@ -232,6 +232,8 @@ our $opt_local_master;
our
$master
;
# Will be struct in C
our
$master
;
# Will be struct in C
our
$slave
;
our
$slave
;
our
$opt_master_myport
;
our
$opt_slave_myport
;
our
$opt_ndbcluster_port
;
our
$opt_ndbcluster_port
;
our
$opt_ndbconnectstring
;
our
$opt_ndbconnectstring
;
...
@@ -248,16 +250,10 @@ our $opt_skip_rpl;
...
@@ -248,16 +250,10 @@ our $opt_skip_rpl;
our
$opt_skip_test
;
our
$opt_skip_test
;
our
$opt_sleep
;
our
$opt_sleep
;
our
$opt_ps_protocol
;
our
$opt_ps_protocol
;
# FIXME all of the sleep time handling needs cleanup
our
$opt_sleep_time_after_restart
=
1
;
our
$opt_sleep_time_after_restart
=
1
;
our
$opt_sleep_time_for_delete
=
10
;
our
$opt_sleep_time_for_delete
=
10
;
our
$opt_sleep_time_for_first_master
=
400
;
# enough time create innodb tables
our
$opt_sleep_time_for_second_master
=
400
;
our
$opt_sleep_time_for_first_slave
=
400
;
our
$opt_sleep_time_for_second_slave
=
30
;
our
$opt_socket
;
our
$opt_socket
;
...
@@ -270,7 +266,7 @@ our $opt_strace_client;
...
@@ -270,7 +266,7 @@ our $opt_strace_client;
our
$opt_timer
;
our
$opt_timer
;
our
$opt_user
;
our
$opt_user_test
;
our
$opt_user_test
;
our
$opt_valgrind
;
our
$opt_valgrind
;
...
@@ -299,6 +295,7 @@ sub main ();
...
@@ -299,6 +295,7 @@ sub main ();
sub
initial_setup
();
sub
initial_setup
();
sub
command_line_setup
();
sub
command_line_setup
();
sub
executable_setup
();
sub
executable_setup
();
sub
environment_setup
();
sub
kill_and_cleanup
();
sub
kill_and_cleanup
();
sub
collect_test_cases
($);
sub
collect_test_cases
($);
sub
sleep_until_file_created
($$);
sub
sleep_until_file_created
($$);
...
@@ -332,6 +329,7 @@ sub main () {
...
@@ -332,6 +329,7 @@ sub main () {
initial_setup
();
initial_setup
();
command_line_setup
();
command_line_setup
();
executable_setup
();
executable_setup
();
environment_setup
();
signal_setup
();
signal_setup
();
if
(
$opt_gcov
)
if
(
$opt_gcov
)
...
@@ -449,12 +447,9 @@ sub command_line_setup () {
...
@@ -449,12 +447,9 @@ sub command_line_setup () {
$path_manager_log
=
"
$glob_mysql_test_dir
/var/log/manager.log
";
$path_manager_log
=
"
$glob_mysql_test_dir
/var/log/manager.log
";
$opt_current_test
=
"
$glob_mysql_test_dir
/var/log/current_test
";
$opt_current_test
=
"
$glob_mysql_test_dir
/var/log/current_test
";
my
$opt_master_myport
=
9306
;
$opt_master_myport
=
9306
;
my
$opt_slave_myport
=
9308
;
$opt_slave_myport
=
9308
;
$opt_ndbcluster_port
=
9350
;
$opt_ndbcluster_port
=
9350
;
$opt_sleep_time_for_delete
=
10
;
my
$opt_user
;
# Read the command line
# Read the command line
# Note: Keep list, and the order, in sync with usage at end of this file
# Note: Keep list, and the order, in sync with usage at end of this file
...
@@ -545,6 +540,7 @@ sub command_line_setup () {
...
@@ -545,6 +540,7 @@ sub command_line_setup () {
$master
->
[
0
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/master.pid
";
$master
->
[
0
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/master.pid
";
$master
->
[
0
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/master.sock
";
$master
->
[
0
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/master.sock
";
$master
->
[
0
]
->
{'
path_myport
'}
=
$opt_master_myport
;
$master
->
[
0
]
->
{'
path_myport
'}
=
$opt_master_myport
;
$master
->
[
0
]
->
{'
start_timeout
'}
=
400
;
# enough time create innodb tables
$master
->
[
1
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/master1-data
";
$master
->
[
1
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/master1-data
";
$master
->
[
1
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/master1.err
";
$master
->
[
1
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/master1.err
";
...
@@ -552,6 +548,7 @@ sub command_line_setup () {
...
@@ -552,6 +548,7 @@ sub command_line_setup () {
$master
->
[
1
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/master1.pid
";
$master
->
[
1
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/master1.pid
";
$master
->
[
1
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/master1.sock
";
$master
->
[
1
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/master1.sock
";
$master
->
[
1
]
->
{'
path_myport
'}
=
$opt_master_myport
+
1
;
$master
->
[
1
]
->
{'
path_myport
'}
=
$opt_master_myport
+
1
;
$master
->
[
1
]
->
{'
start_timeout
'}
=
400
;
# enough time create innodb tables
$slave
->
[
0
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave-data
";
$slave
->
[
0
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave-data
";
$slave
->
[
0
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave.err
";
$slave
->
[
0
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave.err
";
...
@@ -559,6 +556,7 @@ sub command_line_setup () {
...
@@ -559,6 +556,7 @@ sub command_line_setup () {
$slave
->
[
0
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave.pid
";
$slave
->
[
0
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave.pid
";
$slave
->
[
0
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave.sock
";
$slave
->
[
0
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave.sock
";
$slave
->
[
0
]
->
{'
path_myport
'}
=
$opt_slave_myport
;
$slave
->
[
0
]
->
{'
path_myport
'}
=
$opt_slave_myport
;
$slave
->
[
0
]
->
{'
start_timeout
'}
=
400
;
$slave
->
[
1
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave1-data
";
$slave
->
[
1
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave1-data
";
$slave
->
[
1
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave1.err
";
$slave
->
[
1
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave1.err
";
...
@@ -566,6 +564,7 @@ sub command_line_setup () {
...
@@ -566,6 +564,7 @@ sub command_line_setup () {
$slave
->
[
1
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave1.pid
";
$slave
->
[
1
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave1.pid
";
$slave
->
[
1
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave1.sock
";
$slave
->
[
1
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave1.sock
";
$slave
->
[
1
]
->
{'
path_myport
'}
=
$opt_slave_myport
+
1
;
$slave
->
[
1
]
->
{'
path_myport
'}
=
$opt_slave_myport
+
1
;
$slave
->
[
1
]
->
{'
start_timeout
'}
=
30
;
$slave
->
[
2
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave2-data
";
$slave
->
[
2
]
->
{'
path_myddir
'}
=
"
$glob_mysql_test_dir
/var/slave2-data
";
$slave
->
[
2
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave2.err
";
$slave
->
[
2
]
->
{'
path_myerr
'}
=
"
$glob_mysql_test_dir
/var/log/slave2.err
";
...
@@ -573,6 +572,7 @@ sub command_line_setup () {
...
@@ -573,6 +572,7 @@ sub command_line_setup () {
$slave
->
[
2
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave2.pid
";
$slave
->
[
2
]
->
{'
path_mypid
'}
=
"
$glob_mysql_test_dir
/var/run/slave2.pid
";
$slave
->
[
2
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave2.sock
";
$slave
->
[
2
]
->
{'
path_mysock
'}
=
"
$opt_tmpdir
/slave2.sock
";
$slave
->
[
2
]
->
{'
path_myport
'}
=
$opt_slave_myport
+
2
;
$slave
->
[
2
]
->
{'
path_myport
'}
=
$opt_slave_myport
+
2
;
$slave
->
[
2
]
->
{'
start_timeout
'}
=
30
;
# Do sanity checks of command line arguments
# Do sanity checks of command line arguments
...
@@ -594,16 +594,6 @@ sub command_line_setup () {
...
@@ -594,16 +594,6 @@ sub command_line_setup () {
$master
->
[
0
]
->
{'
path_mysock
'}
=
$opt_socket
;
$master
->
[
0
]
->
{'
path_mysock
'}
=
$opt_socket
;
}
}
# --------------------------------------------------------------------------
# Set LD_LIBRARY_PATH if we are using shared libraries
# --------------------------------------------------------------------------
$ENV
{'
LD_LIBRARY_PATH
'}
=
"
$glob_basedir
/lib:
$glob_basedir
/libmysql/.libs
"
.
(
$ENV
{'
LD_LIBRARY_PATH
'}
?
"
:
$ENV
{'LD_LIBRARY_PATH'}
"
:
"");
$ENV
{'
DYLD_LIBRARY_PATH
'}
=
"
$glob_basedir
/lib:
$glob_basedir
/libmysql/.libs
"
.
(
$ENV
{'
DYLD_LIBRARY_PATH
'}
?
"
:
$ENV
{'DYLD_LIBRARY_PATH'}
"
:
"");
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
# Look at the command line options and set script flags
# Look at the command line options and set script flags
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
...
@@ -741,7 +731,7 @@ sub executable_setup () {
...
@@ -741,7 +731,7 @@ sub executable_setup () {
}
}
else
else
{
{
mtr_error
("
Can
no
t find embedded server 'mysqltest'
");
mtr_error
("
Can
'
t find embedded server 'mysqltest'
");
}
}
$path_tests_bindir
=
"
$glob_basedir
/libmysqld/examples
";
$path_tests_bindir
=
"
$glob_basedir
/libmysqld/examples
";
}
}
...
@@ -831,6 +821,41 @@ sub executable_setup () {
...
@@ -831,6 +821,41 @@ sub executable_setup () {
}
}
##############################################################################
#
# Set environment to be used by childs of this process
#
##############################################################################
# Note that some env is setup in spawn/run, in "mtr_process.pl"
sub
environment_setup
()
{
# --------------------------------------------------------------------------
# Set LD_LIBRARY_PATH if we are using shared libraries
# --------------------------------------------------------------------------
$ENV
{'
LD_LIBRARY_PATH
'}
=
"
$glob_basedir
/lib:
$glob_basedir
/libmysql/.libs
"
.
(
$ENV
{'
LD_LIBRARY_PATH
'}
?
"
:
$ENV
{'LD_LIBRARY_PATH'}
"
:
"");
$ENV
{'
DYLD_LIBRARY_PATH
'}
=
"
$glob_basedir
/lib:
$glob_basedir
/libmysql/.libs
"
.
(
$ENV
{'
DYLD_LIBRARY_PATH
'}
?
"
:
$ENV
{'DYLD_LIBRARY_PATH'}
"
:
"");
# --------------------------------------------------------------------------
# Also command lines in .opt files may contain env vars
# --------------------------------------------------------------------------
$ENV
{'
LC_COLLATE
'}
=
"
C
";
$ENV
{'
MYSQL_TEST_DIR
'}
=
$glob_mysql_test_dir
;
$ENV
{'
MASTER_MYPORT
'}
=
$opt_master_myport
;
$ENV
{'
SLAVE_MYPORT
'}
=
$opt_slave_myport
;
# $ENV{'MYSQL_TCP_PORT'}= '@MYSQL_TCP_PORT@'; # FIXME
$ENV
{'
MYSQL_TCP_PORT
'}
=
3306
;
$ENV
{'
MASTER_MYSOCK
'}
=
$master
->
[
0
]
->
{'
path_mysock
'};
}
##############################################################################
##############################################################################
#
#
# If we get a ^C, we try to clean up before termination
# If we get a ^C, we try to clean up before termination
...
@@ -922,6 +947,7 @@ sub collect_test_cases ($) {
...
@@ -922,6 +947,7 @@ sub collect_test_cases ($) {
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
$tinfo
->
{'
path
'}
=
$path
;
$tinfo
->
{'
path
'}
=
$path
;
$tinfo
->
{'
timezone
'}
=
"
GMT-3
";
# for UNIX_TIMESTAMP tests to work
if
(
defined
mtr_match_prefix
(
$tname
,"
rpl
")
)
if
(
defined
mtr_match_prefix
(
$tname
,"
rpl
")
)
{
{
...
@@ -967,7 +993,7 @@ sub collect_test_cases ($) {
...
@@ -967,7 +993,7 @@ sub collect_test_cases ($) {
if
(
defined
$value
)
if
(
defined
$value
)
{
{
$
ENV
{'
TZ
'}
=
$value
;
# FIXME pass this on somehow....
$
tinfo
->
{'
timezone
'}
=
$value
;
$extra_master_opt
=
[]
;
$extra_master_opt
=
[]
;
$tinfo
->
{'
master_restart
'}
=
0
;
$tinfo
->
{'
master_restart
'}
=
0
;
last
;
last
;
...
@@ -1071,6 +1097,7 @@ sub kill_and_cleanup () {
...
@@ -1071,6 +1097,7 @@ sub kill_and_cleanup () {
# leftovers from previous runs.
# leftovers from previous runs.
mtr_report
("
Killing Possible Leftover Processes
");
mtr_report
("
Killing Possible Leftover Processes
");
mkpath
("
$glob_mysql_test_dir
/var/log
");
# Needed for mysqladmin log
mtr_kill_leftovers
();
mtr_kill_leftovers
();
}
}
...
@@ -1092,52 +1119,28 @@ sub kill_and_cleanup () {
...
@@ -1092,52 +1119,28 @@ sub kill_and_cleanup () {
mkpath
("
$glob_mysql_test_dir
/var/tmp
");
mkpath
("
$glob_mysql_test_dir
/var/tmp
");
mkpath
(
$opt_tmpdir
);
mkpath
(
$opt_tmpdir
);
# FIXME do we really need to create these all, or are they
# created for us when tables are created?
rmtree
("
$master
->[0]->{'path_myddir'}
");
rmtree
("
$master
->[0]->{'path_myddir'}
");
mkpath
("
$master
->[0]->{'path_myddir'}/mysql
");
# Need to create subdir?!
mkpath
("
$master
->[0]->{'path_myddir'}/mysql
");
mkpath
("
$master
->[0]->{'path_myddir'}/test
");
mkpath
("
$master
->[0]->{'path_myddir'}/test
");
rmtree
("
$master
->[1]->{'path_myddir'}
");
rmtree
("
$master
->[1]->{'path_myddir'}
");
mkpath
("
$master
->[1]->{'path_myddir'}/mysql
");
# Need to create subdir?!
mkpath
("
$master
->[1]->{'path_myddir'}/mysql
");
mkpath
("
$master
->[1]->{'path_myddir'}/test
");
mkpath
("
$master
->[1]->{'path_myddir'}/test
");
rmtree
("
$slave
->[0]->{'path_myddir'}
");
rmtree
("
$slave
->[0]->{'path_myddir'}
");
mkpath
("
$slave
->[0]->{'path_myddir'}/mysql
");
# Need to create subdir?!
mkpath
("
$slave
->[0]->{'path_myddir'}/mysql
");
mkpath
("
$slave
->[0]->{'path_myddir'}/test
");
mkpath
("
$slave
->[0]->{'path_myddir'}/test
");
rmtree
("
$slave
->[1]->{'path_myddir'}
");
rmtree
("
$slave
->[1]->{'path_myddir'}
");
mkpath
("
$slave
->[1]->{'path_myddir'}/mysql
");
# Need to create subdir?!
mkpath
("
$slave
->[1]->{'path_myddir'}/mysql
");
mkpath
("
$slave
->[1]->{'path_myddir'}/test
");
mkpath
("
$slave
->[1]->{'path_myddir'}/test
");
rmtree
("
$slave
->[2]->{'path_myddir'}
");
rmtree
("
$slave
->[2]->{'path_myddir'}
");
mkpath
("
$slave
->[2]->{'path_myddir'}/mysql
");
# Need to create subdir?!
mkpath
("
$slave
->[2]->{'path_myddir'}/mysql
");
mkpath
("
$slave
->[2]->{'path_myddir'}/test
");
mkpath
("
$slave
->[2]->{'path_myddir'}/test
");
$opt_wait_for_master
=
$opt_sleep_time_for_first_master
;
$opt_wait_for_slave
=
$opt_sleep_time_for_first_slave
;
}
# FIXME
sub
sleep_until_file_created
($$)
{
my
$pidfile
=
shift
;
my
$timeout
=
shift
;
my
$loop
=
$timeout
*
2
;
while
(
$loop
--
)
{
if
(
-
r
$pidfile
)
{
return
;
}
mtr_debug
("
Sleep for 1 second waiting for creation of
$pidfile
");
sleep
(
1
);
}
if
(
!
-
r
$pidfile
)
{
mtr_error
("
No
$pidfile
was created
");
}
}
}
...
@@ -1251,11 +1254,11 @@ sub run_suite () {
...
@@ -1251,11 +1254,11 @@ sub run_suite () {
mtr_print_thick_line
();
mtr_print_thick_line
();
mtr_report
("
Finding Tests in
$suite
suite
");
mtr_report
("
Finding Tests in
the '
$suite
'
suite
");
my
$tests
=
collect_test_cases
(
$suite
);
my
$tests
=
collect_test_cases
(
$suite
);
mtr_report
("
Starting Tests in
$suite
suite
");
mtr_report
("
Starting Tests in
the '
$suite
'
suite
");
mtr_print_header
();
mtr_print_header
();
...
@@ -1412,6 +1415,8 @@ sub run_testcase ($) {
...
@@ -1412,6 +1415,8 @@ sub run_testcase ($) {
# the preparation.
# the preparation.
# ----------------------------------------------------------------------
# ----------------------------------------------------------------------
$ENV
{'
TZ
'}
=
$tinfo
->
{'
timezone
'};
mtr_report_test_name
(
$tinfo
);
mtr_report_test_name
(
$tinfo
);
mtr_tofile
(
$master
->
[
0
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
mtr_tofile
(
$master
->
[
0
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
...
@@ -1778,6 +1783,7 @@ sub mysqld_arguments ($$$$$) {
...
@@ -1778,6 +1783,7 @@ sub mysqld_arguments ($$$$$) {
}
}
# FIXME strange,.....
# FIXME strange,.....
# FIXME MYSQL_MYPORT is not set anythere?!
if
(
$opt_local_master
)
if
(
$opt_local_master
)
{
{
mtr_add_arg
(
$args
,
"
%s--host=127.0.0.1
",
$prefix
);
mtr_add_arg
(
$args
,
"
%s--host=127.0.0.1
",
$prefix
);
...
@@ -1888,8 +1894,7 @@ sub mysqld_start ($$$$) {
...
@@ -1888,8 +1894,7 @@ sub mysqld_start ($$$$) {
$master
->
[
$idx
]
->
{'
path_myerr
'},
"")
)
$master
->
[
$idx
]
->
{'
path_myerr
'},
"")
)
{
{
sleep_until_file_created
(
$master
->
[
$idx
]
->
{'
path_mypid
'},
sleep_until_file_created
(
$master
->
[
$idx
]
->
{'
path_mypid
'},
$opt_wait_for_master
);
$master
->
[
$idx
]
->
{'
start_timeout
'});
$opt_wait_for_master
=
$opt_sleep_time_for_second_master
;
return
$pid
;
return
$pid
;
}
}
}
}
...
@@ -1901,8 +1906,7 @@ sub mysqld_start ($$$$) {
...
@@ -1901,8 +1906,7 @@ sub mysqld_start ($$$$) {
$slave
->
[
$idx
]
->
{'
path_myerr
'},
"")
)
$slave
->
[
$idx
]
->
{'
path_myerr
'},
"")
)
{
{
sleep_until_file_created
(
$slave
->
[
$idx
]
->
{'
path_mypid
'},
sleep_until_file_created
(
$slave
->
[
$idx
]
->
{'
path_mypid
'},
$opt_wait_for_slave
);
$master
->
[
$idx
]
->
{'
start_timeout
'});
$opt_wait_for_slave
=
$opt_sleep_time_for_second_slave
;
return
$pid
;
return
$pid
;
}
}
}
}
...
@@ -1970,7 +1974,6 @@ sub run_mysqltest ($$) {
...
@@ -1970,7 +1974,6 @@ sub run_mysqltest ($$) {
my
$tinfo
=
shift
;
my
$tinfo
=
shift
;
my
$master_opts
=
shift
;
my
$master_opts
=
shift
;
# FIXME set where????
my
$cmdline_mysqldump
=
"
$exe_mysqldump
--no-defaults -uroot
"
.
my
$cmdline_mysqldump
=
"
$exe_mysqldump
--no-defaults -uroot
"
.
"
--socket=
$master
->[0]->{'path_mysock'} --password=
";
"
--socket=
$master
->[0]->{'path_mysock'} --password=
";
if
(
$opt_debug
)
if
(
$opt_debug
)
...
@@ -1992,6 +1995,9 @@ sub run_mysqltest ($$) {
...
@@ -1992,6 +1995,9 @@ sub run_mysqltest ($$) {
"
$exe_mysql
--host=localhost --port=
$master
->[0]->{'path_myport'}
"
.
"
$exe_mysql
--host=localhost --port=
$master
->[0]->{'path_myport'}
"
.
"
--socket=
$master
->[0]->{'path_mysock'} --user=root --password=
";
"
--socket=
$master
->[0]->{'path_mysock'} --user=root --password=
";
# FIXME really needing a PATH???
# $ENV{'PATH'}= "/bin:/usr/bin:/usr/local/bin:/usr/bsd:/usr/X11R6/bin:/usr/openwin/bin:/usr/bin/X11:$ENV{'PATH'}";
$ENV
{'
MYSQL
'}
=
$exe_mysql
;
$ENV
{'
MYSQL
'}
=
$exe_mysql
;
$ENV
{'
MYSQL_DUMP
'}
=
$cmdline_mysqldump
;
$ENV
{'
MYSQL_DUMP
'}
=
$cmdline_mysqldump
;
$ENV
{'
MYSQL_BINLOG
'}
=
$exe_mysqlbinlog
;
$ENV
{'
MYSQL_BINLOG
'}
=
$exe_mysqlbinlog
;
...
...
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