mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Made it easier to valgrind mysqltest
mysql-test/mysql-test-run.pl: Append mysqltest-time to mysqltest.log at the end of each test case, thus making it possibel to run the whole testsuite with --valgrind-mysqltest and then check the valgrind ouput in mysqltest.log Don't valgrind mysqld when only --valgrind-mysqltest is specified Fix usage --valgrind, will only valgrind mysqld(that's how it was, I didn't change)
This commit is contained in:
@ -151,6 +151,7 @@ our $path_client_bindir;
|
||||
our $path_language;
|
||||
our $path_timefile;
|
||||
our $path_manager_log; # Used by mysqldadmin
|
||||
our $path_mysqltest_log;
|
||||
our $path_slave_load_tmpdir; # What is this?!
|
||||
our $path_my_basedir;
|
||||
our $opt_vardir; # A path but set directly on cmd line
|
||||
@ -270,6 +271,7 @@ our $opt_user;
|
||||
our $opt_user_test;
|
||||
|
||||
our $opt_valgrind;
|
||||
our $opt_valgrind_mysqld;
|
||||
our $opt_valgrind_mysqltest;
|
||||
our $opt_valgrind_all;
|
||||
our $opt_valgrind_options;
|
||||
@ -742,6 +744,7 @@ sub command_line_setup () {
|
||||
# "somestring" option is name/path of valgrind executable
|
||||
|
||||
# Take executable path from any of them, if any
|
||||
$opt_valgrind_mysqld= $opt_valgrind;
|
||||
$opt_valgrind= $opt_valgrind_mysqltest if $opt_valgrind_mysqltest;
|
||||
$opt_valgrind= $opt_valgrind_all if $opt_valgrind_all;
|
||||
|
||||
@ -885,6 +888,7 @@ sub command_line_setup () {
|
||||
}
|
||||
|
||||
$path_timefile= "$opt_vardir/log/mysqltest-time";
|
||||
$path_mysqltest_log= "$opt_vardir/log/mysqltest.log";
|
||||
}
|
||||
|
||||
|
||||
@ -929,7 +933,19 @@ sub executable_setup () {
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
if ( $opt_valgrind_mysqltest )
|
||||
{
|
||||
# client/mysqltest might be a libtool .sh script, so look for real exe
|
||||
# to avoid valgrinding bash ;)
|
||||
$exe_mysqltest=
|
||||
mtr_exe_exists("$path_client_bindir/.libs/lt-mysqltest",
|
||||
"$path_client_bindir/.libs/mysqltest",
|
||||
"$path_client_bindir/mysqltest");
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqltest= mtr_exe_exists("$path_client_bindir/mysqltest");
|
||||
}
|
||||
$exe_mysql_client_test=
|
||||
mtr_exe_exists("$glob_basedir/tests/mysql_client_test",
|
||||
"/usr/bin/false");
|
||||
@ -1859,6 +1875,11 @@ sub run_testcase ($) {
|
||||
}
|
||||
report_failure_and_restart($tinfo);
|
||||
}
|
||||
# Save info from this testcase run to mysqltest.log
|
||||
mtr_tofile($path_mysqltest_log,"CURRENT TEST $tname\n");
|
||||
my $testcase_log= mtr_fromfile($path_timefile);
|
||||
mtr_tofile($path_mysqltest_log,
|
||||
$testcase_log);
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
@ -2019,7 +2040,7 @@ sub mysqld_arguments ($$$$$) {
|
||||
mtr_add_arg($args, "%s--language=%s", $prefix, $path_language);
|
||||
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
|
||||
|
||||
if ( defined $opt_valgrind )
|
||||
if ( defined $opt_valgrind_mysqld )
|
||||
{
|
||||
mtr_add_arg($args, "%s--skip-safemalloc", $prefix);
|
||||
mtr_add_arg($args, "%s--skip-bdb", $prefix);
|
||||
@ -2245,7 +2266,7 @@ sub mysqld_start ($$$$) {
|
||||
|
||||
mtr_init_args(\$args);
|
||||
|
||||
if ( defined $opt_valgrind )
|
||||
if ( defined $opt_valgrind_mysqld )
|
||||
{
|
||||
valgrind_arguments($args, \$exe);
|
||||
}
|
||||
@ -2699,6 +2720,7 @@ sub valgrind_arguments {
|
||||
mtr_add_arg($args, split(' ', $opt_valgrind_options));
|
||||
}
|
||||
|
||||
|
||||
mtr_add_arg($args, $$exe);
|
||||
|
||||
$$exe= $opt_valgrind || "valgrind";
|
||||
@ -2778,9 +2800,8 @@ Options for coverage, profiling etc
|
||||
|
||||
gcov FIXME
|
||||
gprof FIXME
|
||||
valgrind[=EXE] Run the "mysqltest" executable as well as the "mysqld"
|
||||
server using valgrind, optionally specifying the
|
||||
executable path/name
|
||||
valgrind[=EXE] Run the "mysqld" server using valgrind, optionally
|
||||
specifying the executable path/name
|
||||
valgrind-mysqltest[=EXE] In addition, run the "mysqltest" executable with valgrind
|
||||
valgrind-all[=EXE] Adds verbose flag, and --show-reachable to valgrind
|
||||
valgrind-options=ARGS Extra options to give valgrind
|
||||
|
Reference in New Issue
Block a user