mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-13 14:39:28 +00:00
74 lines
1.9 KiB
Perl
74 lines
1.9 KiB
Perl
#!/usr/bin/env perl
|
|
|
|
BEGIN {
|
|
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
|
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
|
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
|
};
|
|
|
|
use strict;
|
|
use warnings FATAL => 'all';
|
|
use English qw(-no_match_vars);
|
|
use Test::More;
|
|
use JSON;
|
|
use File::Temp qw(tempfile);
|
|
|
|
use Percona::Test;
|
|
use Percona::Test::Mock::AgentLogger;
|
|
require "$trunk/bin/pt-agent";
|
|
|
|
Percona::Toolkit->import(qw(have_required_args Dumper));
|
|
|
|
my @log;
|
|
my $logger = Percona::Test::Mock::AgentLogger->new(log => \@log);
|
|
pt_agent::_logger($logger);
|
|
|
|
my @output_files = ();
|
|
my $store = {};
|
|
|
|
sub test_replace {
|
|
my (%args) = @_;
|
|
have_required_args(\%args, qw(
|
|
cmd
|
|
expect
|
|
)) or die;
|
|
my $cmd = $args{cmd};
|
|
my $expect = $args{expect};
|
|
|
|
my $new_cmd = pt_agent::replace_special_vars(
|
|
cmd => $cmd,
|
|
output_files => \@output_files,
|
|
service => 'service-name',
|
|
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(
|
|
$new_cmd,
|
|
$expect,
|
|
$cmd,
|
|
);
|
|
};
|
|
|
|
@output_files = qw(zero one two);
|
|
test_replace(
|
|
cmd => "pt-query-digest __RUN_0_OUTPUT__",
|
|
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.
|
|
# #############################################################################
|
|
done_testing;
|