diff options
author | unknown <msvensson@neptunus.(none)> | 2005-12-09 17:52:29 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2005-12-09 17:52:29 +0100 |
commit | 9bf7a9ce148e240a72dad9566c1b175f43fff3ad (patch) | |
tree | 95594b4ce80e640a37477110a94095e23b035f58 /mysql-test/mysql-test-run.pl | |
parent | d8f7fb14259c24bb90d6b7368524e45e7a5ad409 (diff) | |
download | mariadb-git-9bf7a9ce148e240a72dad9566c1b175f43fff3ad.tar.gz |
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)
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index a1d051846ee..17cc470f1c3 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -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 |