mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
93 lines
2.8 KiB
Perl
93 lines
2.8 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 PerconaTest;
|
|
|
|
my $cmd = "$trunk/bin/pt-query-digest";
|
|
my $help = qx{$cmd --help};
|
|
|
|
my $output;
|
|
|
|
# #############################################################################
|
|
# https://bugs.launchpad.net/percona-toolkit/+bug/885382
|
|
# pt-query-digest --embedded-attributes doesn't check cardinality
|
|
# #############################################################################
|
|
my $sample = "$trunk/t/lib/samples/slowlogs/";
|
|
|
|
my @options = qw(
|
|
--report-format=query_report
|
|
--limit 10
|
|
--group-by file
|
|
);
|
|
|
|
$output = `$cmd @options --embedded-attributes '-- .*' $sample.slow010.txt`;
|
|
|
|
like $output,
|
|
qr/\Q--embedded-attributes should be passed two comma-separated patterns, got 1/,
|
|
'Bug 885382: --embedded-attributes cardinality';
|
|
|
|
$output = `$cmd @options --embedded-attributes '-- .*,(?{1234})' $sample.slow010.txt`;
|
|
|
|
like $output,
|
|
qr/\Q--embedded-attributes Eval-group /,
|
|
"Bug 885382: --embedded-attributes rejects invalid patterns early";
|
|
|
|
$output = `$cmd @options --embedded-attributes '-- .*,(?*asdasd' $sample.slow010.txt`;
|
|
|
|
like $output,
|
|
qr/\Q--embedded-attributes Sequence (?*...) not recognized/,
|
|
"Bug 885382: --embedded-attributes rejects invalid patterns early";
|
|
|
|
$output = `$cmd @options --embedded-attributes '-- .*,[:alpha:]' $sample.slow010.txt`;
|
|
|
|
like $output,
|
|
qr/\Q--embedded-attributes POSIX syntax [: :] belongs inside character/,
|
|
"Bug 885382: --embedded-attributes rejects warning patterns early";;
|
|
|
|
|
|
# We removed --statistics, but they should still print out if we use PTDEBUG.
|
|
|
|
$output = qx{PTDEBUG=1 $cmd --no-report ${sample}slow002.txt 2>&1};
|
|
my $stats = load_file("t/pt-query-digest/samples/stats-slow002.txt");
|
|
|
|
like(
|
|
$output,
|
|
qr/\Q$stats\E/m,
|
|
'PTDEBUG shows --statistics for slow002.txt',
|
|
);
|
|
|
|
like(
|
|
$output,
|
|
qr/Pipeline profile/m,
|
|
'PTDEBUG shows --pipeline-profile'
|
|
);
|
|
|
|
# #############################################################################
|
|
# pt-query-digest help output mangled
|
|
# https://bugs.launchpad.net/percona-toolkit/+bug/831525
|
|
# #############################################################################
|
|
|
|
like(
|
|
$help,
|
|
qr/\Q--report-format=A\E\s*
|
|
\QPrint these sections of the query analysis\E\s*
|
|
\Qreport (default rusage\E,\s*date,\s*hostname,\s*files,\s*
|
|
header,\s*profile,\s*query_report,\s*prepared\)/x,
|
|
"Bug 831525: pt-query-digest help output mangled"
|
|
);
|
|
|
|
# #############################################################################
|
|
# Done.
|
|
# #############################################################################
|
|
done_testing;
|