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 
parent 4fcf3290
...@@ -286,7 +286,7 @@ our $opt_user_test; ...@@ -286,7 +286,7 @@ our $opt_user_test;
our $opt_valgrind= 0; our $opt_valgrind= 0;
our $opt_valgrind_mysqld= 0; our $opt_valgrind_mysqld= 0;
our $opt_valgrind_mysqltest= 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_options;
our $opt_valgrind_path; our $opt_valgrind_path;
...@@ -597,10 +597,9 @@ sub command_line_setup () { ...@@ -597,10 +597,9 @@ sub command_line_setup () {
# Coverage, profiling etc # Coverage, profiling etc
'gcov' => \$opt_gcov, 'gcov' => \$opt_gcov,
'gprof' => \$opt_gprof, 'gprof' => \$opt_gprof,
'valgrind' => \$opt_valgrind, 'valgrind|valgrind-all' => \$opt_valgrind,
'valgrind-mysqltest' => \$opt_valgrind_mysqltest, 'valgrind-mysqltest' => \$opt_valgrind_mysqltest,
'valgrind-mysqld' => \$opt_valgrind_mysqld, 'valgrind-mysqld' => \$opt_valgrind_mysqld,
'valgrind-all' => \$opt_valgrind_all,
'valgrind-options=s' => \$opt_valgrind_options, 'valgrind-options=s' => \$opt_valgrind_options,
'valgrind-path=s' => \$opt_valgrind_path, 'valgrind-path=s' => \$opt_valgrind_path,
...@@ -807,20 +806,32 @@ sub command_line_setup () { ...@@ -807,20 +806,32 @@ sub command_line_setup () {
$opt_with_ndbcluster= 0; $opt_with_ndbcluster= 0;
} }
# Turn on valgrinding of all executables if "valgrind" or "valgrind-all" # Check valgrind arguments
if ( $opt_valgrind or $opt_valgrind_all ) if ( $opt_valgrind or $opt_valgrind_path or defined $opt_valgrind_options)
{ {
mtr_report("Turning on valgrind for all executables"); mtr_report("Turning on valgrind for all executables");
$opt_valgrind= 1; $opt_valgrind= 1;
$opt_valgrind_mysqld= 1; $opt_valgrind_mysqld= 1;
$opt_valgrind_mysqltest= 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 mtr_report("Turning on valgrind for mysqld(s) only");
# verbose and show-reachable
$opt_valgrind= 1; $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 ) if ( ! $opt_testcase_timeout )
...@@ -3409,17 +3420,8 @@ sub valgrind_arguments { ...@@ -3409,17 +3420,8 @@ sub valgrind_arguments {
mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir) mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir)
if -f "$glob_mysql_test_dir/valgrind.supp"; if -f "$glob_mysql_test_dir/valgrind.supp";
if ( $opt_valgrind_all ) # Add valgrind options, can be overriden by user
{
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)); mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
}
mtr_add_arg($args, $$exe); mtr_add_arg($args, $$exe);
...@@ -3519,12 +3521,12 @@ Options for coverage, profiling etc ...@@ -3519,12 +3521,12 @@ Options for coverage, profiling etc
gcov FIXME gcov FIXME
gprof FIXME gprof FIXME
valgrind Run the "mysqltest" and "mysqld" executables using valgrind valgrind Run the "mysqltest" and "mysqld" executables using
valgrind-all Same as "valgrind" but will also add "verbose" and "--show-reachable" valgrind with options($default_valgrind_options)
flags to valgrind valgrind-all Synonym for --valgrind
valgrind-mysqltest Run the "mysqltest" executable with valgrind valgrind-mysqltest Run the "mysqltest" executable with valgrind
valgrind-mysqld Run the "mysqld" 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 valgrind-path=[EXE] Path to the valgrind executable
Misc options 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