Files
percona-toolkit/t/pt-query-advisor/parse_logs.t

68 lines
1.5 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;
require "$trunk/bin/pt-query-advisor";
my $output;
my @args = ();
my $sample = "$trunk/t/lib/samples/";
$output = output(
sub { pt_query_advisor::main(@args, "$sample/slowlogs/slow018.txt") },
);
like(
$output,
qr/COL.002/,
"Parse slowlog"
);
$output = output(
sub { pt_query_advisor::main(@args, qw(--type genlog),
"$sample/genlogs/genlog001.txt") },
);
like(
$output,
qr/CLA.005/,
"Parse genlog"
);
# #############################################################################
# pt-query-advisor hangs on big queries
# https://bugs.launchpad.net/percona-toolkit/+bug/823431
# #############################################################################
my $exit_status;
$output = output(
sub { $exit_status = pt_query_advisor::main(@args,
"$sample/bug_823431.log")
},
stderr => 1
);
ok(
!$exit_status,
"Bug 823431: ptqa doesn't hang on a big query"
);
is(
$output,
'',
"Bug 823431: ptqa doesn't hang on a big query and doesn't find an incorrect rule"
);
# #############################################################################
# Done.
# #############################################################################
done_testing;