Commit a8a083f8 authored by unknown's avatar unknown

Set default valgrind options to "-v --show-reachable=yes" and make it possible...

Set default valgrind options to "-v --show-reachable=yes" and make it possible to override that with --valgrind-options 


mysql-test/mysql-test-run.pl:
  Make --valgrind-all a synonym for --valgrind.
  Set "-v --show-reachable=yes" as our default valgrind options. 
  Make --valgrind-options override the default options
  Update usage.
  Turn on valgrinding also when user specified --valgrind-path or --valgrind-options without --valgrind
parent a664c387
......@@ -286,7 +286,7 @@ our $opt_user_test;
our $opt_valgrind= 0;
our $opt_valgrind_mysqld= 0;
our $opt_valgrind_mysqltest= 0;
our $opt_valgrind_all= 0;
our $default_valgrind_options= "-v --show-reachable=yes";
our $opt_valgrind_options;
our $opt_valgrind_path;
......@@ -597,10 +597,9 @@ sub command_line_setup () {
# Coverage, profiling etc
'gcov' => \$opt_gcov,
'gprof' => \$opt_gprof,
'valgrind' => \$opt_valgrind,
'valgrind|valgrind-all' => \$opt_valgrind,
'valgrind-mysqltest' => \$opt_valgrind_mysqltest,
'valgrind-mysqld' => \$opt_valgrind_mysqld,
'valgrind-all' => \$opt_valgrind_all,
'valgrind-options=s' => \$opt_valgrind_options,
'valgrind-path=s' => \$opt_valgrind_path,
......@@ -807,20 +806,32 @@ sub command_line_setup () {
$opt_with_ndbcluster= 0;
}
# Turn on valgrinding of all executables if "valgrind" or "valgrind-all"
if ( $opt_valgrind or $opt_valgrind_all )
# Check valgrind arguments
if ( $opt_valgrind or $opt_valgrind_path or defined $opt_valgrind_options)
{
mtr_report("Turning on valgrind for all executables");
$opt_valgrind= 1;
$opt_valgrind_mysqld= 1;
$opt_valgrind_mysqltest= 1;
}
elsif ( $opt_valgrind_mysqld or $opt_valgrind_mysqltest )
elsif ( $opt_valgrind_mysqld )
{
# If test's are run for a specific executable, turn on
# verbose and show-reachable
mtr_report("Turning on valgrind for mysqld(s) only");
$opt_valgrind= 1;
$opt_valgrind_all= 1;
}
elsif ( $opt_valgrind_mysqltest )
{
mtr_report("Turning on valgrind for mysqltest only");
$opt_valgrind= 1;
}
if ( $opt_valgrind )
{
# Set valgrind_options to default unless already defined
$opt_valgrind_options=$default_valgrind_options
unless defined $opt_valgrind_options;
mtr_report("Running valgrind with options \"$opt_valgrind_options\"");
}
if ( ! $opt_testcase_timeout )
......@@ -3409,17 +3420,8 @@ sub valgrind_arguments {
mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir)
if -f "$glob_mysql_test_dir/valgrind.supp";
if ( $opt_valgrind_all )
{
mtr_add_arg($args, "-v");
mtr_add_arg($args, "--show-reachable=yes");
}
if ( $opt_valgrind_options )
{
mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
}
# Add valgrind options, can be overriden by user
mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
mtr_add_arg($args, $$exe);
......@@ -3519,12 +3521,12 @@ Options for coverage, profiling etc
gcov FIXME
gprof FIXME
valgrind Run the "mysqltest" and "mysqld" executables using valgrind
valgrind-all Same as "valgrind" but will also add "verbose" and "--show-reachable"
flags to valgrind
valgrind Run the "mysqltest" and "mysqld" executables using
valgrind with options($default_valgrind_options)
valgrind-all Synonym for --valgrind
valgrind-mysqltest Run the "mysqltest" executable with valgrind
valgrind-mysqld Run the "mysqld" executable with valgrind
valgrind-options=ARGS Extra options to give valgrind
valgrind-options=ARGS Options to give valgrind, replaces default options
valgrind-path=[EXE] Path to the valgrind executable
Misc options
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment