From: Bjorn Munch Date: January 27 2011 1:43pm Subject: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3159) Bug#59489 List-Archive: http://lists.mysql.com/commits/129767 X-Bug: 59489 Message-Id: <201101271343.p0RDhVsD011951@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0875007245==" --===============0875007245== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/bm136801/my/menv-55/ based on revid:bjorn.munch@stripped 3159 Bjorn Munch 2011-01-27 Bug #59489 Enable setting of env. variables for mysqld from mtr Added --mysqld-env option, propagate via safe_process Simplified: should be safe to set in parent safe_process after it's started Addendum: catch cases of --mysqld-env w/o value, assume env.var name never begins with "--" modified: mysql-test/lib/My/SafeProcess.pm mysql-test/lib/My/SafeProcess/safe_process.cc mysql-test/lib/My/SafeProcess/safe_process_win.cc mysql-test/mysql-test-run.pl === modified file 'mysql-test/lib/My/SafeProcess.pm' --- a/mysql-test/lib/My/SafeProcess.pm 2011-01-18 10:21:37 +0000 +++ b/mysql-test/lib/My/SafeProcess.pm 2011-01-27 13:42:08 +0000 @@ -1,5 +1,5 @@ # -*- cperl -*- -# Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public @@ -139,6 +139,7 @@ sub new { my $host = delete($opts{'host'}); my $shutdown = delete($opts{'shutdown'}); my $user_data= delete($opts{'user_data'}); + my $envs = delete($opts{'envs'}); # if (defined $host) { # $safe_script= "lib/My/SafeProcess/safe_process_cpcd.pl"; @@ -161,6 +162,13 @@ sub new { # Point the safe_process at the right parent if running on cygwin push(@safe_args, "--parent-pid=".Cygwin::pid_to_winpid($$)) if IS_CYGWIN; + foreach my $env_var (@$envs) { + croak("Missing = in env string") unless $env_var =~ /=/; + croak("Env string $env_var seen, probably missing value for --mysqld-env") + if $env_var =~ /^--/; + push @safe_args, "--env $env_var"; + } + push(@safe_args, "--"); push(@safe_args, $path); # The program safe_process should execute === modified file 'mysql-test/lib/My/SafeProcess/safe_process.cc' --- a/mysql-test/lib/My/SafeProcess/safe_process.cc 2011-01-18 10:03:44 +0000 +++ b/mysql-test/lib/My/SafeProcess/safe_process.cc 2011-01-27 13:42:08 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 MySQL AB, 2009 Sun Microsystems, Inc. +/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -175,7 +175,7 @@ int main(int argc, char* const argv[] ) } else { if ( strcmp(arg, "--verbose") == 0 ) verbose++; - else if ( strncmp(arg, "--parent-pid", 10) == 0 ) + else if ( strncmp(arg, "--parent-pid", 12) == 0 ) { /* Override parent_pid with a value provided by user */ const char* start; @@ -184,10 +184,15 @@ int main(int argc, char* const argv[] ) start++; /* Step past = */ if ((parent_pid= atoi(start)) == 0) die("Invalid value '%s' passed to --parent-id", start); - } else if ( strcmp(arg, "--nocore") == 0 ) + } + else if ( strcmp(arg, "--nocore") == 0 ) { nocore = true; // Don't allow the process to dump core } + else if ( strncmp (arg, "--env ", 6) == 0 ) + { + putenv(strdup(arg+6)); + } else die("Unknown option: %s", arg); } === modified file 'mysql-test/lib/My/SafeProcess/safe_process_win.cc' --- a/mysql-test/lib/My/SafeProcess/safe_process_win.cc 2011-01-18 10:21:37 +0000 +++ b/mysql-test/lib/My/SafeProcess/safe_process_win.cc 2011-01-27 13:42:08 +0000 @@ -1,4 +1,4 @@ -/* Copyright (C) 2008 MySQL AB, 2009 Sun Microsystems, Inc. +/* Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -220,6 +220,10 @@ int main(int argc, const char** argv ) { nocore= TRUE; } + else if ( strncmp (arg, "--env ", 6) == 0 ) + { + putenv(strdup(arg+6)); + } else die("Unknown option: %s", arg); } === modified file 'mysql-test/mysql-test-run.pl' --- a/mysql-test/mysql-test-run.pl 2011-01-24 10:09:53 +0000 +++ b/mysql-test/mysql-test-run.pl 2011-01-27 13:42:08 +0000 @@ -176,6 +176,7 @@ our $opt_big_test= 0; our @opt_combinations; our @opt_extra_mysqld_opt; +our @opt_mysqld_envs; my $opt_compress; my $opt_ssl; @@ -962,6 +963,7 @@ sub command_line_setup { # Extra options used when starting mysqld 'mysqld=s' => \@opt_extra_mysqld_opt, + 'mysqld-env=s' => \@opt_mysqld_envs, # Run test on running server 'extern=s' => \%opts_extern, # Append to hash @@ -4710,6 +4712,7 @@ sub mysqld_start ($$) { nocore => $opt_skip_core, host => undef, shutdown => sub { mysqld_stop($mysqld) }, + envs => \@opt_mysqld_envs, ); mtr_verbose("Started $mysqld->{proc}"); } @@ -5724,9 +5727,10 @@ Options for test case authoring check-testcases Check testcases for sideeffects mark-progress Log line number and elapsed time to .progress -Options that pass on options +Options that pass on options (these may be repeated) mysqld=ARGS Specify additional arguments to "mysqld" + mysqld-env=VAR=VAL Specify additional environment settings for "mysqld" Options to run test on running server --===============0875007245== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/bjorn.munch@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: bjorn.munch@stripped # target_branch: file:///home/bm136801/my/menv-55/ # testament_sha1: 61ee340d5d30f09dde3cb51fb939aaca1e7fdae1 # timestamp: 2011-01-27 14:43:31 +0100 # base_revision_id: bjorn.munch@stripped\ # ehlju2rbff3973hw # # Begin bundle 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 4u5IpwoSFrIkKKA= --===============0875007245==--