From 490d95dee72f56443c5cdd1ada5ca029f6ea74cc Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Fri, 14 Jun 2013 21:22:55 -0700 Subject: [PATCH] Simplify and maybe fix crash in replace_special_vars(). --- bin/pt-agent | 14 ++------------ t/pt-agent/replace_special_vars.t | 11 +++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/bin/pt-agent b/bin/pt-agent index fd530d58..5d54828b 100755 --- a/bin/pt-agent +++ b/bin/pt-agent @@ -7201,17 +7201,8 @@ sub replace_special_vars { $new_cmd = join(' ', map { $word = $_; - if ( my ($runno) = $word =~ m/__RUN_(\d+)_OUTPUT__/ ) { - if ( $output_files->[$runno] ) { - $word = $output_files->[$runno]; - } - else { - die "Run$runno has no output for $word to access.\n"; - } - } - if ( my ($key) = $word =~ m/__STORE_([\w-]+)__/ ) { - $word = $store->{$key}; - } + $word =~ s/__RUN_(\d+)_OUTPUT__/$output_files->[$1]/g; + $word =~ s/__STORE_([\w-]+)__/$store->{$1}/g; $word =~ s/__TS__/$ts/g; $word =~ s/__LIB__/$lib_dir/g; $word =~ s/__META__/$meta_dir/g; @@ -7222,7 +7213,6 @@ sub replace_special_vars { $word =~ s/__BIN_DIR__/$bin_dir/g; $word =~ s/__TRASH_FILE__/$spool_dir\/.trash\/$service/g; $word =~ s/__ENV__/$env/g; - $word; } split(/\s+/, $cmd) diff --git a/t/pt-agent/replace_special_vars.t b/t/pt-agent/replace_special_vars.t index b8d26c9d..8cd52296 100644 --- a/t/pt-agent/replace_special_vars.t +++ b/t/pt-agent/replace_special_vars.t @@ -19,6 +19,7 @@ require "$trunk/bin/pt-agent"; Percona::Toolkit->import(qw(have_required_args Dumper)); my @output_files = (); +my $store = {}; sub test_replace { my (%args) = @_; @@ -36,6 +37,10 @@ sub test_replace { lib_dir => '/var/lib/pt-agent', meta_dir => '/var/lib/pt-agent/meta', stage_dir => '/var/spool/.tmp', + spool_dir => '/var/spool', + bin_dir => $trunk, + ts => '123', + store => $store, ); is( @@ -51,6 +56,12 @@ test_replace( expect => "pt-query-digest zero", ); +$store->{slow_query_log_file} = 'slow.log'; +test_replace( + cmd => "echo '__STORE_slow_query_log_file__' > /var/spool/pt-agent/.tmp/1371269644.rotate-slow-query-log-all-5.1.slow_query_log_file", + expect => "echo 'slow.log' > /var/spool/pt-agent/.tmp/1371269644.rotate-slow-query-log-all-5.1.slow_query_log_file", +); + # ############################################################################# # Done. # #############################################################################