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
e010add5
Commit
e010add5
authored
Jan 05, 2005
by
wax@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
795736fa
de85fdb7
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
510 additions
and
273 deletions
+510
-273
Build-tools/Bootstrap
Build-tools/Bootstrap
+1
-1
VC++Files/client/mysqldump.dsp
VC++Files/client/mysqldump.dsp
+6
-6
VC++Files/client/mysqltest.dsp
VC++Files/client/mysqltest.dsp
+8
-8
VC++Files/mysql-test/mysql_test_run_new.dsp
VC++Files/mysql-test/mysql_test_run_new.dsp
+2
-2
mysql-test/lib/mtr_process.pl
mysql-test/lib/mtr_process.pl
+204
-158
mysql-test/lib/mtr_report.pl
mysql-test/lib/mtr_report.pl
+6
-1
mysql-test/my_manage.c
mysql-test/my_manage.c
+9
-1
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+228
-54
mysql-test/mysql_test_run_new.c
mysql-test/mysql_test_run_new.c
+2
-1
mysys/mf_keycaches.c
mysys/mf_keycaches.c
+1
-1
ndb/include/ndb_global.h.in
ndb/include/ndb_global.h.in
+36
-0
ndb/include/ndb_types.h
ndb/include/ndb_types.h
+1
-35
scripts/mysqld_safe.sh
scripts/mysqld_safe.sh
+2
-2
sql-bench/crash-me.sh
sql-bench/crash-me.sh
+1
-1
sql-common/client.c
sql-common/client.c
+3
-2
No files found.
Build-tools/Bootstrap
View file @
e010add5
...
...
@@ -252,7 +252,7 @@ if (defined $opt_changelog)
$msg
=
"
Adding
$target_dir
/ChangeLog
";
$msg
.=
"
(down to revision
$opt_changelog
)
"
if
$opt_changelog
ne
"";
&
logger
(
$msg
);
$command
=
"
bk changes -
m
v
";
$command
=
"
bk changes -v
";
$command
.=
"
-r
"
if
(
$opt_changelog
ne
""
||
$opt_revision
);
$command
.=
$opt_changelog
if
$opt_changelog
ne
"";
$command
.=
"
..
"
if
(
$opt_changelog
ne
""
&&
!
$opt_revision
);
...
...
VC++Files/client/mysqldump.dsp
View file @
e010add5
...
...
@@ -51,8 +51,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\"
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /machine:I386
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\"
!ELSEIF "$(CFG)" == "mysqldump - Win32 Debug"
...
...
@@ -76,8 +76,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"../client_debug/mysqldump.exe" /pdbtype:sept /libpath:"..\lib_debug\\"
!ELSEIF "$(CFG)" == "mysqldump - Win32 classic"
...
...
@@ -103,8 +103,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=xilink6.exe
# ADD BASE LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\"
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"../client_classic/mysqldump.exe" /libpath:"..\lib_release\\"
# ADD BASE LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /machine:I386 /out:"../client_release/mysqldump.exe" /libpath:"..\lib_release\\"
# ADD LINK32 mysqlclient.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
mysys.lib
/nologo /subsystem:console /machine:I386 /out:"../client_classic/mysqldump.exe" /libpath:"..\lib_release\\"
!ENDIF
...
...
VC++Files/client/mysqltest.dsp
View file @
e010add5
...
...
@@ -67,8 +67,8 @@ LINK32=link.exe
# PROP Output_Dir ".\classic"
# PROP Intermediate_Dir ".\classic"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /I "../include" /I "../
" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
# ADD CPP /nologo /MT /I "../include" /I "../
" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
# ADD BASE CPP /nologo /MT /I "../include" /I "../
regex" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
# ADD CPP /nologo /MT /I "../include" /I "../
regex" /I "../" /W3 /Ob1 /G6 /D "_CONSOLE" /D "_WINDOWS" /D "LICENSE=Commercial" /D "DBUG_OFF" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\classic/mysqltest.pch" /Fo".\classic/" /Fd".\classic/" /c /GX
# ADD BASE MTL /nologo /tlb".\classic\mysqltest.tlb" /win32
# ADD MTL /nologo /tlb".\classic\mysqltest.tlb" /win32
# ADD BASE RSC /l 1033 /d "NDEBUG"
...
...
@@ -77,8 +77,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib
mysys.lib regex.lib
/nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib
mysys.lib regex.lib
/nologo /out:"..\client_classic\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\classic\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
!ELSEIF "$(CFG)" == "mysqltest - Win32 Release"
...
...
@@ -92,8 +92,8 @@ LINK32=link.exe
# PROP Output_Dir ".\release"
# PROP Intermediate_Dir ".\release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /I "../include" /I "../
" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
# ADD CPP /nologo /MT /I "../include" /I "../
" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
# ADD BASE CPP /nologo /MT /I "../include" /I "../
regex" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
# ADD CPP /nologo /MT /I "../include" /I "../
regex" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_CONSOLE" /D "_WINDOWS" /D "NDEBUG" /D "_MBCS" /GF /Gy /Fp".\release/mysqltest.pch" /Fo".\release/" /Fd".\release/" /c /GX
# ADD BASE MTL /nologo /tlb".\release\mysqltest.tlb" /win32
# ADD MTL /nologo /tlb".\release\mysqltest.tlb" /win32
# ADD BASE RSC /l 1033 /d "NDEBUG"
...
...
@@ -102,8 +102,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib /nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib
mysys.lib regex.lib
/nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib
mysys.lib regex.lib
/nologo /out:"..\client_release\mysqltest.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\release\mysqltest.pdb" /pdbtype:sept /subsystem:console /MACHINE:I386
!ENDIF
...
...
VC++Files/mysql-test/mysql_test_run_new.dsp
View file @
e010add5
...
...
@@ -76,8 +76,8 @@ BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:
windows
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:
windows
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:
console
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:
console
!ENDIF
...
...
mysql-test/lib/mtr_process.pl
View file @
e010add5
...
...
@@ -4,13 +4,14 @@
# and is part of the translation of the Bourne shell script with the
# same name.
use
Carp
qw(cluck)
;
use
strict
;
use
POSIX
"
:sys_wait_h
";
sub
mtr_run
($$$$$$);
sub
mtr_spawn
($$$$$$);
sub
mtr_stop_
servers
(
$);
sub
mtr_stop_
mysqld_servers
($
$);
sub
mtr_kill_leftovers
();
# static in C
...
...
@@ -77,13 +78,21 @@ sub spawn_impl ($$$$$$$) {
if
(
$::opt_script_debug
)
{
print
STDERR
"
-
"
x
78
,
"
\n
";
print
STDERR
"
STDIN
$input
\n
"
if
$input
;
print
STDERR
"
STDOUT
$output
\n
"
if
$output
;
print
STDERR
"
STDERR
$error
\n
"
if
$error
;
print
STDERR
"
DAEMON
\n
"
if
!
$join
;
print
STDERR
"
EXEC
$path
",
join
("
",
@$arg_list_t
),
"
\n
";
print
STDERR
"
-
"
x
78
,
"
\n
";
print
STDERR
"
\n
";
print
STDERR
"
####
",
"
-
"
x
78
,
"
\n
";
print
STDERR
"
####
",
"
STDIN
$input
\n
"
if
$input
;
print
STDERR
"
####
",
"
STDOUT
$output
\n
"
if
$output
;
print
STDERR
"
####
",
"
STDERR
$error
\n
"
if
$error
;
if
(
$join
)
{
print
STDERR
"
####
",
"
run
";
}
else
{
print
STDERR
"
####
",
"
spawn
";
}
print
STDERR
"
$path
",
join
("
",
@$arg_list_t
),
"
\n
";
print
STDERR
"
####
",
"
-
"
x
78
,
"
\n
";
}
my
$pid
=
fork
();
...
...
@@ -101,11 +110,11 @@ sub spawn_impl ($$$$$$$) {
my
$dumped_core
=
$?
&
128
;
if
(
$signal_num
)
{
die
("
spawn got signal
$signal_num
");
mtr_error
("
spawn got signal
$signal_num
");
}
if
(
$dumped_core
)
{
die
("
spawn dumped core
");
mtr_error
("
spawn dumped core
");
}
return
$exit_value
;
}
...
...
@@ -127,22 +136,34 @@ sub spawn_impl ($$$$$$$) {
if
(
$output
)
{
open
(
STDOUT
,"
>
",
$output
)
or
die
"
Can't redirect STDOUT to
\"
$output
\"
: $!
";
if
(
!
open
(
STDOUT
,"
>
",
$output
)
)
{
mtr_error
("
can't redirect STDOUT to
\"
$output
\"
: $!
");
}
}
if
(
$error
)
{
if
(
$output
eq
$error
)
{
open
(
STDERR
,"
>&STDOUT
")
or
die
"
Can't dup STDOUT: $!
";
if
(
!
open
(
STDERR
,"
>&STDOUT
")
)
{
mtr_error
("
can't dup STDOUT: $!
");
}
}
else
{
open
(
STDERR
,"
>
",
$error
)
or
die
"
Can't redirect STDERR to
\"
$output
\"
: $!
";
if
(
!
open
(
STDERR
,"
>
",
$error
)
)
{
mtr_error
("
can't redirect STDERR to
\"
$output
\"
: $!
");
}
}
}
if
(
$input
)
{
open
(
STDIN
,"
<
",
$input
)
or
die
"
Can't redirect STDIN to
\"
$input
\"
: $!
";
if
(
!
open
(
STDIN
,"
<
",
$input
)
)
{
mtr_error
("
can't redirect STDIN to
\"
$input
\"
: $!
");
}
}
exec
(
$path
,
@$arg_list_t
);
}
...
...
@@ -163,27 +184,25 @@ sub mtr_kill_leftovers () {
for
(
my
$idx
;
$idx
<
2
;
$idx
++
)
{
# if ( $::master->[$idx]->{'pid'} )
# {
push
(
@args
,
$::master
->
[
$idx
]
->
{'
path_mypid
'},
$::master
->
[
$idx
]
->
{'
path_mysock
'},
);
# }
push
(
@args
,{
pid
=>
0
,
# We don't know the PID
pidfile
=>
$::master
->
[
$idx
]
->
{'
path_mypid
'},
sockfile
=>
$::master
->
[
$idx
]
->
{'
path_mysock
'},
port
=>
$::master
->
[
$idx
]
->
{'
path_myport
'},
});
}
for
(
my
$idx
;
$idx
<
3
;
$idx
++
)
{
# if ( $::slave->[$idx]->{'pid'} )
# {
push
(
@args
,
$::slave
->
[
$idx
]
->
{'
path_mypid
'},
$::slave
->
[
$idx
]
->
{'
path_mysock
'},
);
# }
push
(
@args
,{
pid
=>
0
,
# We don't know the PID
pidfile
=>
$::slave
->
[
$idx
]
->
{'
path_mypid
'},
sockfile
=>
$::slave
->
[
$idx
]
->
{'
path_mysock
'},
port
=>
$::slave
->
[
$idx
]
->
{'
path_myport
'},
});
}
mtr_stop_
servers
(
\
@args
);
mtr_stop_
mysqld_servers
(
\
@args
,
1
);
# We scan the "var/run/" directory for other process id's to kill
my
$rundir
=
"
$::glob_mysql_test_dir/var/run
";
# FIXME $path_run_dir or something
...
...
@@ -211,17 +230,29 @@ sub mtr_kill_leftovers () {
}
closedir
(
RUNDIR
);
my
$retries
=
10
;
# 10 seconds
do
{
kill
(
9
,
@pids
);
}
while
(
$retries
--
and
kill
(
0
,
@pids
)
);
start_reap_all
();
if
(
kill
(
0
,
@pids
)
)
if
(
$::glob_cygwin_perl
)
{
mtr_error
("
can't kill processes
"
.
join
("
",
@pids
));
# We have no (easy) way of knowing the Cygwin controlling
# process, in the PID file we only have the Windows process id.
system
("
kill -f
"
.
join
("
",
@pids
));
# Hope for the best....
}
else
{
my
$retries
=
10
;
# 10 seconds
do
{
kill
(
9
,
@pids
);
}
while
(
$retries
--
and
kill
(
0
,
@pids
)
);
if
(
kill
(
0
,
@pids
)
)
{
mtr_error
("
can't kill processes
"
.
join
("
",
@pids
));
}
}
stop_reap_all
();
}
}
...
...
@@ -237,185 +268,200 @@ sub mtr_kill_leftovers () {
# This is not perfect, there could still be other server processes
# left.
sub
mtr_stop_servers
($)
{
my
$spec
=
shift
;
# Force flag is to be set only for killing mysqld servers this script
# didn't create in this run, i.e. initial cleanup before we start working.
# If force flag is set, we try to kill all with mysqladmin, and
# give up if we have no PIDs.
# First try nice normal shutdown using 'mysqladmin'
# FIXME On some operating systems, $srv->{'pid'} and $srv->{'pidfile'}
# will not be the same PID. We need to try to kill both I think.
{
my
@args
=
@$spec
;
while
(
@args
)
{
my
$pidfile
=
shift
@args
;
# FIXME not used here....
my
$sockfile
=
shift
@args
;
if
(
-
f
$sockfile
)
{
sub
mtr_stop_mysqld_servers
($$)
{
my
$spec
=
shift
;
my
$force
=
shift
;
# FIXME wrong log.....
# FIXME, stderr.....
# Shutdown time must be high as slave may be in reconnect
my
$opts
=
[
"
--no-defaults
",
"
-uroot
",
"
--socket=
$sockfile
",
"
--connect_timeout=5
",
"
--shutdown_timeout=70
",
"
shutdown
",
];
# We don't wait for termination of mysqladmin
mtr_spawn
(
$::exe_mysqladmin
,
$opts
,
"",
$::path_manager_log
,
$::path_manager_log
,
"");
}
}
}
# ----------------------------------------------------------------------
# If the process was not started from this file, we got no PID,
# we try to find it in the PID file.
# ----------------------------------------------------------------------
# Wait for them all to remove their socket file
my
$any_pid
=
0
;
# If we have any PIDs
SOCKREMOVED:
for
(
my
$loop
=
$::opt_sleep_time_for_delete
;
$loop
;
$loop
--
)
foreach
my
$srv
(
@$spec
)
{
my
$sockfiles_left
=
0
;
my
@args
=
@$spec
;
while
(
@args
)
if
(
!
$srv
->
{'
pid
'}
and
-
f
$srv
->
{'
pidfile
'}
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$sockfile
or
-
f
$pidfile
)
{
$sockfiles_left
++
;
# Could be that pidfile is left
}
$srv
->
{'
pid
'}
=
mtr_get_pid_from_file
(
$srv
->
{'
pidfile
'});
}
if
(
!
$sockfiles_left
)
if
(
$srv
->
{'
pid
'}
)
{
last
SOCKREMOVED
;
}
if
(
$loop
>
1
)
{
sleep
(
1
);
# One second
$any_pid
=
1
;
}
}
# We may have killed all that left a socket, but we are not sure we got
# them all killed. We now check the PID file, if any
# If the processes where started from this script, and we know
# no PIDs, then we don't have to do anything.
if
(
!
$any_pid
and
!
$force
)
{
# cluck "This is how we got here!";
return
;
}
# Try nice kill with SIG_TERM
# ----------------------------------------------------------------------
# First try nice normal shutdown using 'mysqladmin'
# ----------------------------------------------------------------------
start_reap_all
();
# Don't require waitpid() of children
foreach
my
$srv
(
@$spec
)
{
my
@args
=
@$spec
;
while
(
@args
)
if
(
-
e
$srv
->
{'
sockfile
'}
or
$srv
->
{'
port
'}
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$pidfile
)
# FIXME wrong log.....
# FIXME, stderr.....
# Shutdown time must be high as slave may be in reconnect
my
$args
;
mtr_init_args
(
\
$args
);
mtr_add_arg
(
$args
,
"
--no-defaults
");
mtr_add_arg
(
$args
,
"
-uroot
");
if
(
-
e
$srv
->
{'
sockfile
'}
)
{
my
$pid
=
mtr_get_pid_from_file
(
$pidfile
);
mtr_warning
("
process
$pid
not cooperating with mysqladmin,
"
.
"
will send TERM signal to process
");
kill
(
15
,
$pid
);
# SIG_TERM
mtr_add_arg
(
$args
,
"
--socket=%s
",
$srv
->
{'
sockfile
'});
}
if
(
$srv
->
{'
port
'}
)
{
mtr_add_arg
(
$args
,
"
--port=%s
",
$srv
->
{'
port
'});
}
mtr_add_arg
(
$args
,
"
--connect_timeout=5
");
mtr_add_arg
(
$args
,
"
--shutdown_timeout=70
");
mtr_add_arg
(
$args
,
"
shutdown
");
# We don't wait for termination of mysqladmin
mtr_spawn
(
$::exe_mysqladmin
,
$args
,
"",
$::path_manager_log
,
$::path_manager_log
,
"");
}
}
# Wait for them all to
di
e
# Wait for them all to
remove their pid and socket fil
e
PIDSOCKFILEREMOVED:
for
(
my
$loop
=
$::opt_sleep_time_for_delete
;
$loop
;
$loop
--
)
{
my
$pidfiles_left
=
0
;
my
@args
=
@$spec
;
while
(
@args
)
my
$pidsockfiles_left
=
0
;
foreach
my
$srv
(
@$spec
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$pidfile
)
if
(
-
e
$srv
->
{'
sockfile
'}
or
-
f
$srv
->
{'
pidfile
'}
)
{
$pid
files_left
++
;
$pid
sockfiles_left
++
;
# Could be that pidfile is left
}
}
if
(
!
$pidfiles_left
)
if
(
!
$pid
sock
files_left
)
{
return
;
}
if
(
$loop
>
1
)
{
sleep
(
1
);
# One second
last
PIDSOCKFILEREMOVED
;
}
mtr_debug
("
Sleep for 1 second waiting for pid and socket file removal
");
sleep
(
1
);
# One second
}
# Try hard kill with SIG_KILL
# ----------------------------------------------------------------------
# If no known PIDs, we have nothing more to try
# ----------------------------------------------------------------------
if
(
!
$any_pid
)
{
my
@args
=
@$spec
;
while
(
@args
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$pidfile
)
{
my
$pid
=
mtr_get_pid_from_file
(
$pidfile
);
mtr_warning
("
$pid
did not die from TERM signal,
",
"
will send KILL signal to process
");
kill
(
9
,
$pid
);
}
}
stop_reap_all
();
return
;
}
# We check with Perl "kill 0" if process still exists
# ----------------------------------------------------------------------
# We may have killed all that left a socket, but we are not sure we got
# them all killed. If we suspect it lives, try nice kill with SIG_TERM.
# Note that for true Win32 processes, kill(0,$pid) will not return 1.
# ----------------------------------------------------------------------
PIDFILES
:
for
(
my
$loop
=
$::opt_sleep_time_for_delete
;
$loop
;
$loop
--
)
SIGNAL
:
for
each
my
$sig
(
15
,
9
)
{
my
$not_terminated
=
0
;
my
@args
=
@$spec
;
while
(
@args
)
my
$process_left
=
0
;
foreach
my
$srv
(
@$spec
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$pidfile
)
if
(
$srv
->
{'
pid
'}
and
(
-
f
$srv
->
{'
pidfile
'}
or
kill
(
0
,
$srv
->
{'
pid
'})
)
)
{
my
$pid
=
mtr_get_pid_from_file
(
$pidfile
);
if
(
!
kill
(
0
,
$pid
)
)
{
$not_terminated
++
;
mtr_warning
("
could't kill
$pid
");
}
$process_left
++
;
mtr_warning
("
process
$srv
->{'pid'} not cooperating,
"
.
"
will send signal
$sig
to process
");
kill
(
$sig
,
$srv
->
{'
pid
'});
# SIG_TERM
}
if
(
!
$process_left
)
{
last
SIGNAL
;
}
}
if
(
!
$not_terminated
)
{
last
PIDFILES
;
}
if
(
$loop
>
1
)
{
sleep
(
1
);
# One second
}
mtr_debug
("
Sleep for 5 seconds waiting for processes to die
");
sleep
(
5
);
# We wait longer than usual
}
# ----------------------------------------------------------------------
# Now, we check if all we can find using kill(0,$pid) are dead,
# and just assume the rest are. We cleanup socket and PID files.
# ----------------------------------------------------------------------
{
my
$pidfiles_left
=
0
;
my
@args
=
@$spec
;
while
(
@args
)
my
$errors
=
0
;
foreach
my
$srv
(
@$spec
)
{
my
$pidfile
=
shift
@args
;
my
$sockfile
=
shift
@args
;
if
(
-
f
$pidfile
)
if
(
$srv
->
{'
pid
'}
)
{
if
(
!
unlink
(
$pidfile
)
)
if
(
kill
(
0
,
$srv
->
{'
pid
'})
)
{
# FIXME In Cygwin there seem to be some fast reuse
# of PIDs, so dying may not be the right thing to do.
$errors
++
;
mtr_warning
("
can't kill process
$srv
->{'pid'}
");
}
else
{
$pidfiles_left
++
;
mtr_warning
("
could't delete
$pidfile
");
# We managed to kill it at last
# FIXME In Cygwin, we will get here even if the process lives.
# Not needed as we know the process is dead, but to be safe
# we unlink and check success in two steps. We first unlink
# without checking the error code, and then check if the
# file still exists.
foreach
my
$file
(
$srv
->
{'
pidfile
'},
$srv
->
{'
sockfile
'})
{
unlink
(
$file
);
if
(
-
e
$file
)
{
$errors
++
;
mtr_warning
("
couldn't delete
$file
");
}
}
}
}
}
if
(
$
pidfiles_left
)
if
(
$
errors
)
{
mtr_error
("
one or more pid files could not be deleted
");
# We are in trouble, just die....
mtr_error
("
we could not kill or clean up all processes
");
}
}
stop_reap_all
();
# FIXME We just assume they are all dead, we don't know....
}
sub
start_reap_all
{
$SIG
{
CHLD
}
=
'
IGNORE
';
# FIXME is this enough?
}
sub
stop_reap_all
{
$SIG
{
CHLD
}
=
'
DEFAULT
';
}
1
;
mysql-test/lib/mtr_report.pl
View file @
e010add5
...
...
@@ -14,6 +14,7 @@ sub mtr_report_test_skipped($);
sub
mtr_show_failed_diff
($);
sub
mtr_report_stats
($);
sub
mtr_print_line
();
sub
mtr_print_thick_line
();
sub
mtr_print_header
();
sub
mtr_report
(@);
sub
mtr_warning
(@);
...
...
@@ -214,6 +215,10 @@ sub mtr_print_line () {
print
'
-
'
x
55
,
"
\n
";
}
sub
mtr_print_thick_line
()
{
print
'
=
'
x
55
,
"
\n
";
}
sub
mtr_print_header
()
{
print
"
\n
";
if
(
$::opt_timer
)
...
...
@@ -250,7 +255,7 @@ sub mtr_error (@) {
sub
mtr_debug
(@)
{
if
(
$::opt_script_debug
)
{
print
"
mysql-test-run: DEBUG
:
",
join
("
",
@_
),"
\n
";
print
STDERR
"
####
:
",
join
("
",
@_
),"
\n
";
}
}
...
...
mysql-test/my_manage.c
View file @
e010add5
...
...
@@ -327,7 +327,7 @@ int spawn(char *path, arg_list_t *al, int join, char *input,
int
spawn
(
char
*
path
,
arg_list_t
*
al
,
int
join
,
char
*
input
,
char
*
output
,
char
*
error
,
HANDLE
*
pid
)
{
intptr_t
result
;
bool
result
;
int
i
;
STARTUPINFO
startup_info
;
PROCESS_INFORMATION
process_information
;
...
...
@@ -665,7 +665,11 @@ void del_tree(char *dir)
rmdir
(
dir
);
#else
struct
_finddata_t
parent
;
#if defined(_MSC_VER) && _MSC_VER > 1200
intptr_t
handle
;
#else
long
handle
;
#endif
/* _MSC_VER && _MSC_VER > 1200 */
char
temp
[
FN_REFLEN
];
char
mask
[
FN_REFLEN
];
...
...
@@ -728,7 +732,11 @@ int removef(const char *format, ...)
va_list
ap
;
char
path
[
FN_REFLEN
];
struct
_finddata_t
parent
;
#if defined(_MSC_VER) && _MSC_VER > 1200
intptr_t
handle
;
#else
long
handle
;
#endif
/* _MSC_VER && _MSC_VER > 1200 */
char
temp
[
FN_REFLEN
];
char
*
p
;
...
...
mysql-test/mysql-test-run.pl
View file @
e010add5
...
...
@@ -67,6 +67,11 @@
# is to use the Devel::Trace package found at
# "http://www.plover.com/~mjd/perl/Trace/" and run this script like
# "perl -d:Trace mysql-test-run.pl"
#
# FIXME Save a PID file from this code as well, to record the process
# id we think it has. In Cygwin, a fork creates one Cygwin process,
# and then the real Win32 process. Cygwin Perl can only kill Cygwin
# processes. And "mysqld --bootstrap ..." doesn't save a PID file.
$
Devel::Trace::
TRACE
=
0
;
# Don't trace boring init stuff
...
...
@@ -147,7 +152,9 @@ our @mysqld_src_dirs=
# Misc global variables
our
$glob_win32
=
0
;
our
$glob_win32
=
0
;
# OS and native Win32 executables
our
$glob_win32_perl
=
0
;
# ActiveState Win32 Perl
our
$glob_cygwin_perl
=
0
;
# Cygwin Perl
our
$glob_mysql_test_dir
=
undef
;
our
$glob_mysql_bench_dir
=
undef
;
our
$glob_hostname
=
undef
;
...
...
@@ -172,6 +179,9 @@ our $path_slave_load_tmpdir; # What is this?!
our
$path_my_basedir
;
our
$opt_tmpdir
;
# A path but set directly on cmd line
our
$opt_usage
;
our
$opt_suite
;
our
$opt_netware
;
our
$opt_script_debug
=
0
;
# Script debugging, enable with --script-debug
...
...
@@ -290,6 +300,7 @@ sub initial_setup ();
sub
command_line_setup
();
sub
executable_setup
();
sub
kill_and_cleanup
();
sub
collect_test_cases
($);
sub
sleep_until_file_created
($$);
sub
ndbcluster_start
();
sub
ndbcluster_stop
();
...
...
@@ -306,6 +317,7 @@ sub stop_masters_slaves ();
sub
stop_masters
();
sub
stop_slaves
();
sub
run_mysqltest
($$);
sub
usage
($);
######################################################################
#
...
...
@@ -378,7 +390,9 @@ sub initial_setup () {
$glob_scriptname
=
basename
(
$0
);
$glob_win32
=
(
$^O
eq
"
MSWin32
");
$glob_win32_perl
=
(
$^O
eq
"
MSWin32
");
$glob_cygwin_perl
=
(
$^O
eq
"
cygwin
");
$glob_win32
=
(
$glob_win32_perl
or
$glob_cygwin_perl
);
# We require that we are in the "mysql-test" directory
# to run mysql-test-run
...
...
@@ -399,6 +413,12 @@ sub initial_setup () {
# 'basedir' is always parent of "mysql-test" directory
$glob_mysql_test_dir
=
cwd
();
if
(
$glob_cygwin_perl
)
{
# Windows programs like 'mysqld' needs Windows paths
$glob_mysql_test_dir
=
`
cygpath -m
$glob_mysql_test_dir
`;
chomp
(
$glob_mysql_test_dir
);
}
$glob_basedir
=
dirname
(
$glob_mysql_test_dir
);
$glob_mysql_bench_dir
=
"
$glob_basedir
/mysql-bench
";
# FIXME make configurable
...
...
@@ -423,6 +443,7 @@ sub command_line_setup () {
# These are defaults for things that are set on the command line
$opt_suite
=
"
main
";
# Special default suite
$opt_tmpdir
=
"
$glob_mysql_test_dir
/var/tmp
";
# FIXME maybe unneded?
$path_manager_log
=
"
$glob_mysql_test_dir
/var/log/manager.log
";
...
...
@@ -436,61 +457,85 @@ sub command_line_setup () {
my
$opt_user
;
# Read the command line
# Note: Keep list, and the order, in sync with usage at end of this file
GetOptions
(
'
bench
'
=>
\
$opt_bench
,
'
big-test
'
=>
\
$opt_big_test
,
'
client-gdb
'
=>
\
$opt_client_gdb
,
'
compress
'
=>
\
$opt_compress
,
'
ddd
'
=>
\
$opt_ddd
,
'
debug
'
=>
\
$opt_debug
,
'
do-test=s
'
=>
\
$opt_do_test
,
# Control what engine/variation to run
'
embedded-server
'
=>
\
$opt_embedded_server
,
'
ps-protocol
'
=>
\
$opt_ps_protocol
,
'
extern
'
=>
\
$opt_extern
,
'
fast
'
=>
\
$opt_fast
,
'
bench
'
=>
\
$opt_bench
,
'
small-bench
'
=>
\
$opt_small_bench
,
'
no-manager
'
=>
\
$opt_no_manager
,
# Control what test suites or cases to run
'
force
'
=>
\
$opt_force
,
'
gcov
'
=>
\
$opt_gcov
,
'
with-ndbcluster
'
=>
\
$opt_with_ndbcluster
,
'
do-test=s
'
=>
\
$opt_do_test
,
'
suite=s
'
=>
\
$opt_suite
,
'
skip-rpl
'
=>
\
$opt_skip_rpl
,
'
skip-test=s
'
=>
\
$opt_skip_test
,
# Specify ports
'
master_port=i
'
=>
\
$opt_master_myport
,
'
slave_port=i
'
=>
\
$opt_slave_myport
,
'
ndbcluster_port=i
'
=>
\
$opt_ndbcluster_port
,
# Test case authoring
'
record
'
=>
\
$opt_record
,
# ???
'
mysqld=s
'
=>
\
$opt_extra_mysqld_opt
,
# Run test on running server
'
extern
'
=>
\
$opt_extern
,
'
ndbconnectstring=s
'
=>
\
$opt_ndbconnectstring
,
# Debugging
'
gdb
'
=>
\
$opt_gdb
,
'
manual-gdb
'
=>
\
$opt_manual_gdb
,
'
client-gdb
'
=>
\
$opt_client_gdb
,
'
ddd
'
=>
\
$opt_ddd
,
'
strace-client
'
=>
\
$opt_strace_client
,
'
master-binary=s
'
=>
\
$exe_master_mysqld
,
'
slave-binary=s
'
=>
\
$exe_slave_mysqld
,
# Coverage, profiling etc
'
gcov
'
=>
\
$opt_gcov
,
'
gprof
'
=>
\
$opt_gprof
,
'
valgrind
'
=>
\
$opt_valgrind
,
'
valgrind-all
'
=>
\
$opt_valgrind_all
,
'
valgrind-options=s
'
=>
\
$opt_valgrind_options
,
# Misc
'
big-test
'
=>
\
$opt_big_test
,
'
compress
'
=>
\
$opt_compress
,
'
debug
'
=>
\
$opt_debug
,
'
fast
'
=>
\
$opt_fast
,
'
local
'
=>
\
$opt_local
,
'
local-master
'
=>
\
$opt_local_master
,
'
manual-gdb
'
=>
\
$opt_manual_gdb
,
'
master-binary=s
'
=>
\
$exe_master_mysqld
,
'
master_port=i
'
=>
\
$opt_master_myport
,
'
mysqld=s
'
=>
\
$opt_extra_mysqld_opt
,
'
ndbcluster_port=i
'
=>
\
$opt_ndbcluster_port
,
'
ndbconnectstring=s
'
=>
\
$opt_ndbconnectstring
,
'
netware
'
=>
\
$opt_netware
,
'
no-manager
'
=>
\
$opt_no_manager
,
'
old-master
'
=>
\
$opt_old_master
,
'
ps-protocol
'
=>
\
$opt_ps_protocol
,
'
record
'
=>
\
$opt_record
,
'
script-debug
'
=>
\
$opt_script_debug
,
'
skip-rpl
'
=>
\
$opt_skip_rpl
,
'
skip-test=s
'
=>
\
$opt_skip_test
,
'
slave-binary=s
'
=>
\
$exe_slave_mysqld
,
'
slave_port=i
'
=>
\
$opt_slave_myport
,
'
sleep=i
'
=>
\
$opt_sleep
,
'
small-bench
'
=>
\
$opt_small_bench
,
'
socket=s
'
=>
\
$opt_socket
,
'
start-and-exit
'
=>
\
$opt_start_and_exit
,
'
start-from=s
'
=>
\
$opt_start_from
,
'
strace-client
'
=>
\
$opt_strace_client
,
'
timer
'
=>
\
$opt_timer
,
'
tmpdir=s
'
=>
\
$opt_tmpdir
,
'
user-test=s
'
=>
\
$opt_user_test
,
'
user=s
'
=>
\
$opt_user
,
'
valgrind
'
=>
\
$opt_valgrind
,
'
valgrind-all
'
=>
\
$opt_valgrind_all
,
'
valgrind-options=s
'
=>
\
$opt_valgrind_options
,
'
verbose
'
=>
\
$opt_verbose
,
'
wait-timeout=i
'
=>
\
$opt_wait_timeout
,
'
warnings|log-warnings
'
=>
\
$opt_warnings
,
'
with-ndbcluster
'
=>
\
$opt_with_ndbcluster
,
'
with-openssl
'
=>
\
$opt_with_openssl
,
'
help|h
'
=>
\
$opt_usage
,
)
or
usage
("
Can't read options
");
if
(
$opt_usage
)
{
usage
("");
}
# Put this into a hash, will be a C struct
...
...
@@ -593,7 +638,7 @@ sub command_line_setup () {
if
(
$opt_sleep
)
{
$opt_sleep_time_after_restart
=
$opt_sleep
;
$opt_sleep_time_after_restart
=
$opt_sleep
;
}
if
(
$opt_gcov
and
!
$opt_source_dist
)
...
...
@@ -811,8 +856,22 @@ sub handle_int_signal () {
#
##############################################################################
sub
collect_test_cases
()
{
my
$testdir
=
"
$glob_mysql_test_dir
/t
";
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
@tests
;
# Array of hash, will be array of C struct
...
...
@@ -839,7 +898,7 @@ sub collect_test_cases () {
my
$tinfo
=
{};
$tinfo
->
{'
name
'}
=
$tname
;
$tinfo
->
{'
result_file
'}
=
"
r/
$tname
.result
";
$tinfo
->
{'
result_file
'}
=
"
$resdi
r
/
$tname
.result
";
push
(
@tests
,
$tinfo
);
if
(
$opt_skip_test
and
defined
mtr_match_prefix
(
$tname
,
$opt_skip_test
)
)
...
...
@@ -947,7 +1006,7 @@ sub collect_test_cases () {
if
(
-
f
$master_sh
)
{
if
(
$glob_win32
)
if
(
$glob_win32
_perl
)
{
$tinfo
->
{'
skip
'}
=
1
;
}
...
...
@@ -960,7 +1019,7 @@ sub collect_test_cases () {
if
(
-
f
$slave_sh
)
{
if
(
$glob_win32
)
if
(
$glob_win32
_perl
)
{
$tinfo
->
{'
skip
'}
=
1
;
}
...
...
@@ -1071,6 +1130,7 @@ sub sleep_until_file_created ($$) {
{
return
;
}
mtr_debug
("
Sleep for 1 second waiting for creation of
$pidfile
");
sleep
(
1
);
}
...
...
@@ -1180,13 +1240,22 @@ sub run_benchmarks ($) {
#
##############################################################################
# FIXME how to specify several suites to run? Comma separated list?
sub
run_tests
()
{
run_suite
(
$opt_suite
);
}
mtr_report
("
Finding Tests
");
sub
run_suite
()
{
my
$suite
=
shift
;
m
y
$tests
=
collect_test_cases
();
m
tr_print_thick_line
();
mtr_report
("
Starting Tests
");
mtr_report
("
Finding Tests in
$suite
suite
");
my
$tests
=
collect_test_cases
(
$suite
);
mtr_report
("
Starting Tests in
$suite
suite
");
mtr_print_header
();
...
...
@@ -1343,6 +1412,8 @@ sub run_testcase ($) {
# the preparation.
# ----------------------------------------------------------------------
mtr_report_test_name
(
$tinfo
);
mtr_tofile
(
$master
->
[
0
]
->
{'
path_myerr
'},"
CURRENT_TEST:
$tname
\n
");
do_before_start_master
(
$tname
,
$tinfo
->
{'
master_sh
'});
...
...
@@ -1350,8 +1421,6 @@ sub run_testcase ($) {
# Start masters
# ----------------------------------------------------------------------
mtr_report_test_name
(
$tinfo
);
if
(
!
$glob_use_running_server
and
!
$glob_use_embedded_server
)
{
# FIXME give the args to the embedded server?!
...
...
@@ -1861,15 +1930,17 @@ sub stop_masters () {
# the mysqld process from being killed
if
(
$master
->
[
$idx
]
->
{'
pid
'}
)
{
push
(
@args
,
$master
->
[
$idx
]
->
{'
path_mypid
'},
$master
->
[
$idx
]
->
{'
path_mysock
'},
);
$master
->
[
$idx
]
->
{'
pid
'}
=
0
;
push
(
@args
,{
pid
=>
$master
->
[
$idx
]
->
{'
pid
'},
pidfile
=>
$master
->
[
$idx
]
->
{'
path_mypid
'},
sockfile
=>
$master
->
[
$idx
]
->
{'
path_mysock
'},
port
=>
$master
->
[
$idx
]
->
{'
path_myport
'},
});
$master
->
[
$idx
]
->
{'
pid
'}
=
0
;
# Assume we are done with it
}
}
mtr_stop_
servers
(
\
@args
);
mtr_stop_
mysqld_servers
(
\
@args
,
0
);
}
sub
stop_slaves
()
{
...
...
@@ -1881,15 +1952,17 @@ sub stop_slaves () {
{
if
(
$slave
->
[
$idx
]
->
{'
pid
'}
)
{
push
(
@args
,
$slave
->
[
$idx
]
->
{'
path_mypid
'},
$slave
->
[
$idx
]
->
{'
path_mysock
'},
);
$slave
->
[
$idx
]
->
{'
pid
'}
=
0
;
push
(
@args
,{
pid
=>
$slave
->
[
$idx
]
->
{'
pid
'},
pidfile
=>
$slave
->
[
$idx
]
->
{'
path_mypid
'},
sockfile
=>
$slave
->
[
$idx
]
->
{'
path_mysock
'},
port
=>
$slave
->
[
$idx
]
->
{'
path_myport
'},
});
$slave
->
[
$idx
]
->
{'
pid
'}
=
0
;
# Assume we are done with it
}
}
mtr_stop_
servers
(
\
@args
);
mtr_stop_
mysqld_servers
(
\
@args
,
0
);
}
...
...
@@ -2006,3 +2079,104 @@ sub run_mysqltest ($$) {
return
mtr_run
(
$exe_mysqltest
,
$args
,
$tinfo
->
{'
path
'},"",
$path_timefile
,"");
}
##############################################################################
#
# Usage
#
##############################################################################
sub
usage
($)
{
print
STDERR
<<HERE;
mysql-test-run [ OPTIONS ] [ TESTCASE ]
FIXME when is TESTCASE arg used or not?!
Options to control what engine/variation to run
embedded-server Use the embedded server, i.e. no mysqld daemons
ps-protocol Use the binary protocol between client and server
bench Run the benchmark suite FIXME
small-bench FIXME
no-manager Use the istanse manager (currently disabled)
Options to control what test suites or cases to run
force Continue to run the suite after failure
with-ndbcluster Use cluster, and enable test cases that requres it
do-test=PREFIX Run test cases which name are prefixed with PREFIX
start-from=PREFIX Run test cases starting from test prefixed with PREFIX
suite=NAME Run the test suite named NAME. The default is "main"
skip-rpl Skip the replication test cases.
skip-test=PREFIX Skip test cases which name are prefixed with PREFIX
Options that specify ports
master_port=PORT Specify the port number used by the first master
slave_port=PORT Specify the port number used by the first slave
ndbcluster_port=i Specify the port number used by cluster FIXME
Options for test case authoring
record TESTNAME (Re)genereate the result file for TESTNAME
Options that pass on options
mysqld=ARGS Specify additional arguments to "mysqld"
Options to run test on running server
extern Use running server for tests FIXME DANGEROUS
ndbconnectstring=STR Use running cluster, and connect using STR
user=USER The databse user name
Options for debugging the product
gdb FIXME
manual-gdb FIXME
client-gdb FIXME
ddd FIXME
strace-client FIXME
master-binary=PATH Specify the master "mysqld" to use
slave-binary=PATH Specify the slave "mysqld" to use
Options for coverage, profiling etc
gcov FIXME
gprof FIXME
valgrind FIXME
valgrind-all FIXME
valgrind-options=ARGS Extra options to give valgrind
Misc options
verbose Verbose output from this script
script-debug Debug this script itself
compress Use the compressed protocol between client and server
timer Show test case execution time
start-and-exit Only initiate and start the "mysqld" servers
fast Don't try to cleanup from earlier runs
help Get this help text
Options not yet described, or that I want to look into more
big-test
debug
local
local-master
netware
old-master
sleep=SECONDS
socket=PATH
tmpdir=DIR
user-test=s
wait-timeout=SECONDS
warnings
log-warnings
with-openssl
HERE
exit
(
1
);
}
mysql-test/mysql_test_run_new.c
View file @
e010add5
...
...
@@ -37,7 +37,8 @@
#include <sys/mode.h>
#endif
#ifdef __WIN__
#include <Shlwapi.h>
#include <windows.h>
#include <shlwapi.h>
#include <direct.h>
#endif
...
...
mysys/mf_keycaches.c
View file @
e010add5
...
...
@@ -235,7 +235,7 @@ static my_bool safe_hash_set(SAFE_HASH *hash, const byte *key, uint length,
if
(
my_hash_insert
(
&
hash
->
hash
,
(
byte
*
)
entry
))
{
/* This can only happen if hash got out of memory */
my_
delet
e
((
char
*
)
entry
,
MYF
(
0
));
my_
fre
e
((
char
*
)
entry
,
MYF
(
0
));
error
=
1
;
goto
end
;
}
...
...
ndb/include/ndb_global.h.in
View file @
e010add5
...
...
@@ -31,12 +31,48 @@
#define HAVE_STRCASECMP
#define strcasecmp _strcmpi
#pragma warning(disable: 4503 4786)
typedef unsigned __int64 Uint64;
typedef signed __int64 Int64;
#else
#undef NDB_WIN32
#define DIR_SEPARATOR "/"
typedef unsigned long long Uint64;
typedef signed long long Int64;
#endif
#include <my_global.h>
typedef signed char Int8;
typedef unsigned char Uint8;
typedef signed short Int16;
typedef unsigned short Uint16;
typedef signed int Int32;
typedef unsigned int Uint32;
typedef unsigned int UintR;
#ifdef __SIZE_TYPE__
typedef __SIZE_TYPE__ UintPtr;
#elif SIZEOF_CHARP == 4
typedef Uint32 UintPtr;
#elif SIZEOF_CHARP == 8
typedef Uint64 UintPtr;
#else
#error "Unknown size of (char *)"
#endif
#if ! (SIZEOF_CHAR == 1)
#error "Invalid define for Uint8"
#endif
#if ! (SIZEOF_INT == 4)
#error "Invalid define for Uint32"
#endif
#if ! (SIZEOF_LONG_LONG == 8)
#error "Invalid define for Uint64"
#endif
#include <my_alarm.h>
#ifdef _AIX
...
...
ndb/include/ndb_types.h
View file @
e010add5
...
...
@@ -21,40 +21,6 @@
#ifndef NDB_TYPES_H
#define NDB_TYPES_H
typedef
signed
char
Int8
;
typedef
unsigned
char
Uint8
;
typedef
signed
short
Int16
;
typedef
unsigned
short
Uint16
;
typedef
signed
int
Int32
;
typedef
unsigned
int
Uint32
;
typedef
unsigned
int
UintR
;
#ifdef __SIZE_TYPE__
typedef
__SIZE_TYPE__
UintPtr
;
#else
#include <ndb_global.h>
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_INTTYPES_H
#include <inttypes.h>
#endif
#if defined(WIN32) || defined(NDB_WIN32)
typedef
Uint32
UintPtr
;
#else
typedef
uintptr_t
UintPtr
;
#endif
#endif
#if defined(WIN32) || defined(NDB_WIN32)
typedef
unsigned
__int64
Uint64
;
typedef
signed
__int64
Int64
;
typedef
UintPtr
ssize_t
;
#else
typedef
unsigned
long
long
Uint64
;
typedef
signed
long
long
Int64
;
#endif
#include "ndb_global.h"
#endif
scripts/mysqld_safe.sh
View file @
e010add5
...
...
@@ -322,13 +322,13 @@ do
# but should work for the rest of the servers.
# The only thing is ps x => redhat 5 gives warnings when using ps -x.
# kill -9 is used or the process won't react on the kill.
numofproces
=
`
ps xa |
grep
-v
"grep"
|
grep
"
$ledir
/
$MYSQLD
\>
"
|
grep
-c
"pid-file=
$pid_file
"
`
numofproces
=
`
ps xa
ww
|
grep
-v
"grep"
|
grep
"
$ledir
/
$MYSQLD
\>
"
|
grep
-c
"pid-file=
$pid_file
"
`
echo
-e
"
\n
Number of processes running now:
$numofproces
"
|
tee
-a
$err_log
I
=
1
while
test
"
$I
"
-le
"
$numofproces
"
do
PROC
=
`
ps xa |
grep
"
$ledir
/
$MYSQLD
\>
"
|
grep
-v
"grep"
|
grep
"pid-file=
$pid_file
"
|
sed
-n
'$p'
`
PROC
=
`
ps xa
ww
|
grep
"
$ledir
/
$MYSQLD
\>
"
|
grep
-v
"grep"
|
grep
"pid-file=
$pid_file
"
|
sed
-n
'$p'
`
for
T
in
$PROC
do
...
...
sql-bench/crash-me.sh
View file @
e010add5
...
...
@@ -1039,7 +1039,7 @@ try_and_report("Automatic row id", "automatic_rowid",
[
"MATCH UNIQUE"
,
"match_unique"
,
"1 match unique (select a from crash_me)"
,1,0],
[
"MATCH"
,
"match"
,
"1 match (select a from crash_me)"
,1,0],
[
"MATCHES"
,
"matches"
,
"b matc
j
hes 'a*'"
,1,0],
[
"MATCHES"
,
"matches"
,
"b matches 'a*'"
,1,0],
[
"NOT BETWEEN"
,
"not_between"
,
"7 not between 4 and 6"
,1,0],
[
"NOT EXISTS"
,
"not_exists"
,
"not exists (select * from crash_me where a = 2)"
,1,0],
...
...
sql-common/client.c
View file @
e010add5
...
...
@@ -882,7 +882,7 @@ static const char *default_options[]=
"connect-timeout"
,
"local-infile"
,
"disable-local-infile"
,
"replication-probe"
,
"enable-reads-from-master"
,
"repl-parse-query"
,
"ssl-cipher"
,
"max-allowed-packet"
,
"protocol"
,
"shared-memory-base-name"
,
"multi-results"
,
"multi-queries"
,
"secure-auth"
,
"multi-results"
,
"multi-
statements"
,
"multi-
queries"
,
"secure-auth"
,
NullS
};
...
...
@@ -1088,9 +1088,10 @@ void mysql_read_default_options(struct st_mysql_options *options,
options
->
client_flag
|=
CLIENT_MULTI_RESULTS
;
break
;
case
31
:
case
32
:
options
->
client_flag
|=
CLIENT_MULTI_STATEMENTS
|
CLIENT_MULTI_RESULTS
;
break
;
case
3
2
:
/* secure-auth */
case
3
3
:
/* secure-auth */
options
->
secure_auth
=
TRUE
;
break
;
default:
...
...
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