=== modified file 'mysql-test/lib/My/SafeProcess.pm' --- mysql-test/lib/My/SafeProcess.pm 2010-08-16 06:46:21 +0000 +++ mysql-test/lib/My/SafeProcess.pm 2011-01-13 12:58:57 +0000 @@ -138,6 +138,7 @@ my $host = delete($opts{'host'}); my $shutdown = delete($opts{'shutdown'}); my $user_data= delete($opts{'user_data'}); + my $env = delete($opts{'env'}); # if (defined $host) { # $safe_script= "lib/My/SafeProcess/safe_process_cpcd.pl"; @@ -179,6 +180,7 @@ error => $error, append => $opts{append}, args => \@safe_args, + env => $env, ); my $name = delete($opts{'name'}) || "SafeProcess$pid"; === modified file 'mysql-test/lib/My/SafeProcess/Base.pm' --- mysql-test/lib/My/SafeProcess/Base.pm 2009-04-23 11:35:02 +0000 +++ mysql-test/lib/My/SafeProcess/Base.pm 2011-01-13 13:00:35 +0000 @@ -106,6 +106,7 @@ my $input = delete($opts{'input'}); my $output = delete($opts{'output'}); my $error = delete($opts{'error'}); + my $env = delete($opts{'env'}); my $open_mode= $opts{append} ? ">>" : ">"; @@ -178,6 +179,20 @@ return $pid; } + + if ( $env ) + { + my @envs= split("&", $env); + my $pair; + foreach $pair ( @envs ) + { + my $key; + my $val; + ($key, $val) = split("=", $pair); + $ENV{$key}= $val; + } + } + $SIG{INT}= 'DEFAULT'; # Make this process it's own process group to be able to kill === modified file 'mysql-test/mysql-test-run.pl' --- mysql-test/mysql-test-run.pl 2010-12-29 00:26:31 +0000 +++ mysql-test/mysql-test-run.pl 2011-01-13 12:58:24 +0000 @@ -179,6 +179,7 @@ our @opt_combinations; our @opt_extra_mysqld_opt; +our @opt_mysqld_environment; my $opt_compress; my $opt_ssl; @@ -963,6 +964,7 @@ # Extra options used when starting mysqld 'mysqld=s' => \@opt_extra_mysqld_opt, + 'mysqld-env=s' => \@opt_mysqld_environment, # Run test on running server 'extern=s' => \%opts_extern, # Append to hash @@ -4702,6 +4704,8 @@ # Remember data dir for gmon.out files if using gprof $gprof_dirs{$mysqld->value('datadir')}= 1 if $opt_gprof; + my $env= join("&", @opt_mysqld_environment); + if ( defined $exe ) { $mysqld->{'proc'}= My::SafeProcess->new @@ -4716,6 +4720,7 @@ nocore => $opt_skip_core, host => undef, shutdown => sub { mysqld_stop($mysqld) }, + env => $env, ); mtr_verbose("Started $mysqld->{proc}"); } @@ -5733,6 +5738,10 @@ Options that pass on options mysqld=ARGS Specify additional arguments to "mysqld" + mysqld-env Add the environment variables before starting mysqld. + Can be handy for using googles perftools, like: + --mysqld-env="LD_PRELOAD=/usr/lib/libtcmalloc.so.0" + --mysqld-env="HEAPPROFILE=/tmp/mysqld.hprof" Options to run test on running server