mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-03 19:15:54 +00:00
Fix Bash tests. Add basic pt-align tests.
This commit is contained in:
@@ -698,9 +698,9 @@ sub check_usage {
|
||||
"t/lib/samples/OptionParser/$file",
|
||||
cmd_output => 1,
|
||||
sed => [
|
||||
"-i -e 's/ $prog_name/ \$PROGRAM_NAME/g'",
|
||||
"-i -e 's/$trunk_esc/\$trunk/g'",
|
||||
"-i -e 's/$home_esc/\$ENV\{HOME\}/g'",
|
||||
"'s/ $prog_name/ \$PROGRAM_NAME/g'",
|
||||
"'s/$trunk_esc/\$trunk/g'",
|
||||
"'s/$home_esc/\$ENV\{HOME\}/g'",
|
||||
],
|
||||
),
|
||||
}
|
||||
|
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# ##########################################################################
|
||||
# This is a magic test file that is designed to be run manually.
|
||||
# ##########################################################################
|
||||
|
||||
# This program is copyright (c) 2007 Baron Schwartz.
|
||||
# Feedback and improvements are welcome.
|
||||
#
|
||||
# THIS PROGRAM IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
# 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 the Free Software
|
||||
# Foundation, version 2; OR the Perl Artistic License. On UNIX and similar
|
||||
# systems, you can issue `man perlgpl' or `man perlartistic' to read these
|
||||
# licenses.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
|
||||
use Test::More qw(no_plan);
|
||||
use English qw(-no_match_vars);
|
||||
use DBI;
|
||||
|
||||
require "../TableParser.pm";
|
||||
require "../MySQLFind.pm";
|
||||
require "../MySQLDump.pm";
|
||||
require "../Quoter.pm";
|
||||
|
||||
my $p = new TableParser();
|
||||
my $q = new Quoter();
|
||||
my $d = new MySQLDump();
|
||||
my $t;
|
||||
|
||||
# This part of the test inspects every table in the local MySQL server, if a
|
||||
# connection can be made. It checks that parsing produces the same columns
|
||||
# and types and nullability etc as reported by SHOW COLUMNS.
|
||||
|
||||
my $dbh;
|
||||
eval {
|
||||
$dbh = DBI->connect(
|
||||
"DBI:mysql:;mysql_read_default_group=mysql", undef, undef,
|
||||
{ PrintError => 0, RaiseError => 1 })
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
diag "Cannot connect";
|
||||
exit(0);
|
||||
}
|
||||
|
||||
my $f = new MySQLFind(
|
||||
dbh => $dbh,
|
||||
quoter => $q,
|
||||
engines => {
|
||||
views => 0,
|
||||
},
|
||||
);
|
||||
|
||||
foreach my $database ( $f->find_databases() ) {
|
||||
foreach my $table ( $f->find_tables(database => $database) ) {
|
||||
my $ddl = $d->get_create_table($dbh, $q, $database, $table);
|
||||
my $str = $p->parse($ddl);
|
||||
my $cols = $d->get_columns($dbh, $q, $database, $table);
|
||||
|
||||
is_deeply(
|
||||
$str->{cols},
|
||||
[ map { $_->{field} } @$cols ],
|
||||
"Columns for $database.$table",
|
||||
);
|
||||
|
||||
is_deeply(
|
||||
$str->{type_for},
|
||||
{ map {
|
||||
my $t = $_->{type};
|
||||
$t =~ s/\W.*$//;
|
||||
$_->{field} => $t;
|
||||
} @$cols },
|
||||
"Column types for $database.$table",
|
||||
);
|
||||
|
||||
is_deeply(
|
||||
$str->{null_cols},
|
||||
[ map { $_->{field} } grep { $_->{null} eq 'YES' } @$cols ],
|
||||
"Nullability for $database.$table",
|
||||
);
|
||||
|
||||
}
|
||||
}
|
@@ -9,16 +9,26 @@ BEGIN {
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More tests => 1;
|
||||
use Test::More tests => 2;
|
||||
|
||||
use PerconaTest;
|
||||
|
||||
my $sample = "$trunk/t/pt-align/samples/";
|
||||
|
||||
like(
|
||||
`perl -c $trunk/bin/pt-align 2>&1`,
|
||||
qr/syntax OK/,
|
||||
'syntax OK'
|
||||
);
|
||||
|
||||
ok(
|
||||
no_diff(
|
||||
"$trunk/bin/pt-align $sample/vmstat-01.in",
|
||||
"t/pt-align/samples/vmstat-01.out",
|
||||
),
|
||||
"vmstat-01"
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
|
7
t/pt-align/samples/vmstat-01.in
Normal file
7
t/pt-align/samples/vmstat-01.in
Normal file
@@ -0,0 +1,7 @@
|
||||
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
|
||||
r b swpd free buff cache si so bi bo in cs us sy id wa
|
||||
0 0 6736 117044 39936 147128 0 2 109 159 56 152 3 6 91 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 41 173 1 4 95 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 37 155 0 5 95 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 31 148 0 2 98 0
|
||||
0 0 6736 117004 39944 147136 0 0 0 68 37 125 0 4 96 0
|
6
t/pt-align/samples/vmstat-01.out
Normal file
6
t/pt-align/samples/vmstat-01.out
Normal file
@@ -0,0 +1,6 @@
|
||||
r b swpd free buff cache si so bi bo in cs us sy id wa
|
||||
0 0 6736 117044 39936 147128 0 2 109 159 56 152 3 6 91 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 41 173 1 4 95 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 37 155 0 5 95 0
|
||||
0 0 6736 117044 39936 147132 0 0 0 0 31 148 0 2 98 0
|
||||
0 0 6736 117004 39944 147136 0 0 0 68 37 125 0 4 96 0
|
@@ -14,7 +14,7 @@ use Test::More tests => 1;
|
||||
use PerconaTest;
|
||||
|
||||
like(
|
||||
`$trunk/bin/pt-collect --help`,
|
||||
`$trunk/bin/pt-collect --help 2>&1`,
|
||||
qr/Usage:/,
|
||||
'It runs'
|
||||
);
|
||||
|
@@ -42,7 +42,7 @@ ok(
|
||||
no_diff(
|
||||
"$cmd -d issue_1192 --no-summary",
|
||||
"t/pt-duplicate-key-checker/samples/issue_1192.txt",
|
||||
sed => ["-i -e 's/ (/ (/g'"],
|
||||
sed => ["'s/ (/ (/g'"],
|
||||
),
|
||||
"Keys are sorted lc so left-prefix magic works (issue 1192)"
|
||||
);
|
||||
|
@@ -31,8 +31,10 @@ $sb->create_dbs($dbh, ['test']);
|
||||
my $output;
|
||||
my $cnf = '/tmp/12345/my.sandbox.cnf';
|
||||
my $cmd = "$trunk/bin/pt-heartbeat -F $cnf ";
|
||||
my $pid_file = "/tmp/__mk-heartbeat-test.pid";
|
||||
my $ps_grep_cmd = "ps x | grep mk-heartbeat | grep daemonize | grep -v grep";
|
||||
my $pid_file = "/tmp/__pt-heartbeat-test.pid";
|
||||
my $ps_grep_cmd = "ps x | grep pt-heartbeat | grep daemonize | grep -v grep";
|
||||
|
||||
`rm /tmp/pt-heartbeat-sentinel 2>/dev/null`;
|
||||
|
||||
$dbh->do('drop table if exists test.heartbeat');
|
||||
$dbh->do(q{CREATE TABLE test.heartbeat (
|
||||
@@ -40,7 +42,7 @@ $dbh->do(q{CREATE TABLE test.heartbeat (
|
||||
ts datetime NOT NULL
|
||||
) ENGINE=MEMORY});
|
||||
|
||||
# Issue: mk-heartbeat should check that the heartbeat table has a row
|
||||
# Issue: pt-heartbeat should check that the heartbeat table has a row
|
||||
$output = `$cmd -D test --check --no-insert-heartbeat-row 2>&1`;
|
||||
like($output, qr/heartbeat table is empty/ms, 'Dies on empty heartbeat table with --check (issue 45)');
|
||||
|
||||
@@ -100,8 +102,8 @@ like($output, qr/Successfully created/, 'Created sentinel');
|
||||
sleep(2);
|
||||
$output = `$ps_grep_cmd`;
|
||||
unlike($output, qr/$cmd/, 'It is not running');
|
||||
ok(-f '/tmp/mk-heartbeat-sentinel', 'Sentinel file is there');
|
||||
unlink('/tmp/mk-heartbeat-sentinel');
|
||||
ok(-f '/tmp/pt-heartbeat-sentinel', 'Sentinel file is there');
|
||||
unlink('/tmp/pt-heartbeat-sentinel');
|
||||
$dbh->do('drop table if exists test.heartbeat'); # This will kill it
|
||||
|
||||
# #############################################################################
|
||||
|
25
t/pt-mext/pt-mext.t
Normal file
25
t/pt-mext/pt-mext.t
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/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 tests => 1;
|
||||
|
||||
use PerconaTest;
|
||||
|
||||
like(
|
||||
`$trunk/bin/pt-mext 2>&1`,
|
||||
qr/Usage:/,
|
||||
'It runs'
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
exit;
|
@@ -3,4 +3,4 @@
|
||||
|
||||
echo /tmp/12346/my.sandbox.cnf > $1
|
||||
|
||||
cp samples/ps-mysqld-001.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-001.txt /tmp/percona-toolkit
|
||||
|
@@ -3,4 +3,4 @@
|
||||
|
||||
echo /var/lib/mysql/my.cnf > $1
|
||||
|
||||
cp samples/ps-mysqld-004.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-004.txt /tmp/percona-toolkit
|
||||
|
@@ -3,4 +3,4 @@
|
||||
|
||||
echo /var/lib/mysql/my.cnf > $1
|
||||
|
||||
cp samples/ps-mysqld-004.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-004.txt /tmp/percona-toolkit
|
||||
|
@@ -3,4 +3,4 @@
|
||||
|
||||
echo /tmp/12345/my.sandbox.cnf > $1
|
||||
|
||||
cp samples/ps-mysqld-001.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-001.txt /tmp/percona-toolkit
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#format_innodb_status /tmp/aspersa-innodb-status
|
||||
#format_innodb_status /tmp/percona-toolkit-innodb-status
|
||||
|
||||
cat <<EOF > $1
|
||||
Checkpoint Age | 619k
|
||||
@@ -49,4 +49,4 @@ Mutexes/Locks Waited For
|
||||
1 lock on RW-latch at 0x7f4bd0a8c8d0 '&block->lock'
|
||||
EOF
|
||||
|
||||
cp samples/innodb-status.001.txt /tmp/aspersa-innodb-status
|
||||
cp samples/innodb-status.001.txt /tmp/percona-toolkit-innodb-status
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#format_innodb_status /tmp/aspersa-innodb-status
|
||||
#format_innodb_status /tmp/percona-toolkit-innodb-status
|
||||
|
||||
cat <<'EOF' > $1
|
||||
Checkpoint Age | 348M
|
||||
@@ -32,4 +32,4 @@ Mutexes/Locks Waited For
|
||||
1 Mutex at 0x2abf68b6c0d0 '&log_sys->mutex'
|
||||
EOF
|
||||
|
||||
cp samples/innodb-status.002.txt /tmp/aspersa-innodb-status
|
||||
cp samples/innodb-status.002.txt /tmp/percona-toolkit-innodb-status
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#format_innodb_status /tmp/aspersa-innodb-status
|
||||
#format_innodb_status /tmp/percona-toolkit-innodb-status
|
||||
|
||||
cat <<'EOF' > $1
|
||||
Checkpoint Age | 0k
|
||||
@@ -16,4 +16,4 @@ Tables Locked
|
||||
1 `test`.`t`
|
||||
EOF
|
||||
|
||||
cp samples/innodb-status.003.txt /tmp/aspersa-innodb-status
|
||||
cp samples/innodb-status.003.txt /tmp/percona-toolkit-innodb-status
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#format_innodb_status /tmp/aspersa-innodb-status
|
||||
#format_innodb_status /tmp/percona-toolkit-innodb-status
|
||||
|
||||
cat <<'EOF' > $1
|
||||
Checkpoint Age | 93M
|
||||
@@ -26,4 +26,4 @@ Mutexes/Locks Waited For
|
||||
1 lock on RW-latch at 0x2ab2c679a550 created in file buf/buf0buf.c line 550
|
||||
EOF
|
||||
|
||||
cp samples/innodb-status.004.txt /tmp/aspersa-innodb-status
|
||||
cp samples/innodb-status.004.txt /tmp/percona-toolkit-innodb-status
|
||||
|
@@ -90,4 +90,4 @@ Uptime 90000 1 1
|
||||
Uptime_since_flush_status 90000 1
|
||||
EOF
|
||||
|
||||
join samples/mysql-status-00{1,2}.txt > /tmp/aspersa
|
||||
join samples/mysql-status-00{1,2}.txt > /tmp/percona-toolkit
|
||||
|
@@ -3,4 +3,4 @@
|
||||
|
||||
echo EDT > $1
|
||||
|
||||
cp samples/mysql-variables-001.txt /tmp/aspersa-mysql-variables
|
||||
cp samples/mysql-variables-001.txt /tmp/percona-toolkit-mysql-variables
|
||||
|
@@ -5,5 +5,5 @@ cat <<EOF > $1
|
||||
2010-05-27 11:38 (up 0+02:08:52)
|
||||
EOF
|
||||
|
||||
cp samples/mysql-status-001.txt /tmp/aspersa-mysql-status
|
||||
echo "2010-05-27 11:38" > /tmp/aspersa
|
||||
cp samples/mysql-status-001.txt /tmp/percona-toolkit-mysql-status
|
||||
echo "2010-05-27 11:38" > /tmp/percona-toolkit
|
||||
|
@@ -6,4 +6,4 @@ cat <<EOF > $1
|
||||
Built On | debian-linux-gnu i486
|
||||
EOF
|
||||
|
||||
cp samples/mysql-variables-001.txt /tmp/aspersa-mysql-variables
|
||||
cp samples/mysql-variables-001.txt /tmp/percona-toolkit-mysql-variables
|
||||
|
@@ -30,4 +30,4 @@ cat <<EOF > $1
|
||||
|
||||
EOF
|
||||
|
||||
cp samples/mysql-schema-001.txt /tmp/aspersa-mysqldump
|
||||
cp samples/mysql-schema-001.txt /tmp/percona-toolkit-mysqldump
|
||||
|
@@ -24,4 +24,4 @@ cat <<EOF > $1
|
||||
|
||||
EOF
|
||||
|
||||
cp samples/mysql-schema-002.txt /tmp/aspersa-mysqldump
|
||||
cp samples/mysql-schema-002.txt /tmp/percona-toolkit-mysqldump
|
||||
|
@@ -6,4 +6,4 @@ cat <<EOF > $1
|
||||
binlog_ignore_db | mysql,test
|
||||
EOF
|
||||
|
||||
cp samples/mysql-show-master-status-001.txt /tmp/aspersa
|
||||
cp samples/mysql-show-master-status-001.txt /tmp/percona-toolkit
|
||||
|
@@ -9,4 +9,4 @@ cat <<EOF > $1
|
||||
12346 /tmp/12346/data /tmp/12346/mysql_sandbox12346.sock
|
||||
EOF
|
||||
|
||||
cp samples/ps-mysqld-001.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-001.txt /tmp/percona-toolkit
|
||||
|
@@ -7,4 +7,4 @@ cat <<EOF > $1
|
||||
/var/lib/mysql /var/lib/mysql/mysql.sock
|
||||
EOF
|
||||
|
||||
cp samples/ps-mysqld-002.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-002.txt /tmp/percona-toolkit
|
||||
|
@@ -7,4 +7,4 @@ cat <<EOF > $1
|
||||
3306 /mnt/data-store/mysql/data /tmp/mysql.sock
|
||||
EOF
|
||||
|
||||
cp samples/ps-mysqld-003.txt /tmp/aspersa
|
||||
cp samples/ps-mysqld-003.txt /tmp/percona-toolkit
|
||||
|
@@ -58,4 +58,4 @@ cat <<EOF > $1
|
||||
|
||||
EOF
|
||||
|
||||
cp samples/processlist-001.txt /tmp/aspersa-mysql-processlist
|
||||
cp samples/processlist-001.txt /tmp/percona-toolkit-mysql-processlist
|
||||
|
@@ -34,4 +34,4 @@ pid-file = /var/run/mysqld/mysqld.pid
|
||||
target-dir = /data/backup
|
||||
EOF
|
||||
|
||||
cp samples/my.cnf-001.txt /tmp/aspersa
|
||||
cp samples/my.cnf-001.txt /tmp/percona-toolkit
|
||||
|
@@ -7,4 +7,4 @@ cat <<EOF > $1
|
||||
Total Size | 6.5G
|
||||
EOF
|
||||
|
||||
cp samples/mysql-master-logs-001.txt /tmp/aspersa
|
||||
cp samples/mysql-master-logs-001.txt /tmp/percona-toolkit
|
||||
|
@@ -189,6 +189,6 @@ check_ids('mkosc', 'a', 'i', get_ids());
|
||||
# Done.
|
||||
# #############################################################################
|
||||
diag(`rm -rf $query_table_stop`);
|
||||
#diag(`echo > $query_table_output`);
|
||||
#$sb->wipe_clean($dbh);
|
||||
diag(`rm -rf $query_table_output`);
|
||||
$sb->wipe_clean($dbh);
|
||||
exit;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 0 /tmp/aspersa
|
||||
#aggregate_stacktrace 0 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
187 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,open_table,open_tables,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 0 /tmp/aspersa
|
||||
#aggregate_stacktrace 0 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
2387 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,execute_sqlcom_select,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread,clone
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 0 /tmp/aspersa
|
||||
#aggregate_stacktrace 0 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
35 pthread_cond_wait,end_thread,handle_one_connection,start_thread,clone
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 2 /tmp/aspersa
|
||||
#aggregate_stacktrace 2 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
35 pthread_cond_wait,end_thread
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 0 /tmp/aspersa
|
||||
#aggregate_stacktrace 0 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
33 pthread_cond_wait,boost::condition_variable::wait,Queue::pop,Worker::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy,start_thread,clone,??
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
#aggregate_stacktrace 0 /tmp/aspersa
|
||||
#aggregate_stacktrace 0 /tmp/percona-toolkit
|
||||
|
||||
cat > $1 <<EOF
|
||||
32 read,vio_read_buff,libmysqlclient::??,my_net_read,cli_safe_read,libmysqlclient::??,mysql_real_query,Connection::run,Worker::work,thread_proxy,start_thread,clone,??
|
||||
|
@@ -24,14 +24,14 @@ my $output;
|
||||
# #########################################################################
|
||||
# Issue 391: Add --pid option to all scripts
|
||||
# #########################################################################
|
||||
`touch /tmp/mk-script.pid`;
|
||||
$output = `$trunk/bin/pt-query-digest $trunk/commont/t/samples/slow002.txt --pid /tmp/mk-script.pid 2>&1`;
|
||||
`touch /tmp/pt-script.pid`;
|
||||
$output = `$trunk/bin/pt-query-digest $trunk/commont/t/samples/slow002.txt --pid /tmp/pt-script.pid 2>&1`;
|
||||
like(
|
||||
$output,
|
||||
qr{PID file /tmp/mk-script.pid already exists},
|
||||
qr{PID file /tmp/pt-script.pid already exists},
|
||||
'Dies if PID file already exists (--pid without --daemonize) (issue 391)'
|
||||
);
|
||||
`rm -rf /tmp/mk-script.pid`;
|
||||
`rm -rf /tmp/pt-script.pid`;
|
||||
|
||||
# #########################################################################
|
||||
# Daemonizing and pid creation
|
||||
@@ -39,21 +39,22 @@ like(
|
||||
SKIP: {
|
||||
skip "Cannot connect to sandbox master", 5 unless $dbh;
|
||||
|
||||
`$trunk/bin/pt-query-digest --daemonize --pid /tmp/mk-query-digest.pid --processlist h=127.1,P=12345,u=msandbox,p=msandbox --log /dev/null`;
|
||||
$output = `ps -eaf | grep mk-query-digest | grep daemonize`;
|
||||
like($output, qr/$trunk\/mk-query-digest\/mk-query-digest/, 'It is running');
|
||||
ok(-f '/tmp/mk-query-digest.pid', 'PID file created');
|
||||
my $cmd = "$trunk/bin/pt-query-digest --daemonize --pid /tmp/pt-query-digest.pid --processlist h=127.1,P=12345,u=msandbox,p=msandbox --log /dev/null";
|
||||
`$cmd`;
|
||||
$output = `ps -eaf | grep -v grep | grep pt-query-digest`;
|
||||
like($output, qr/$cmd/, 'It is running');
|
||||
ok(-f '/tmp/pt-query-digest.pid', 'PID file created');
|
||||
|
||||
my ($pid) = $output =~ /\s+(\d+)\s+/;
|
||||
$output = `cat /tmp/mk-query-digest.pid`;
|
||||
$output = `cat /tmp/pt-query-digest.pid`;
|
||||
is($output, $pid, 'PID file has correct PID');
|
||||
|
||||
kill 15, $pid;
|
||||
sleep 1;
|
||||
$output = `ps -eaf | grep mk-query-digest | grep daemonize`;
|
||||
unlike($output, qr/$trunk\/mk-query-digest\/mk-query-digest/, 'It is not running');
|
||||
$output = `ps -eaf | grep pt-query-digest | grep daemonize`;
|
||||
unlike($output, qr/$trunk\/pt-query-digest\/pt-query-digest/, 'It is not running');
|
||||
ok(
|
||||
!-f '/tmp/mk-query-digest.pid',
|
||||
!-f '/tmp/pt-query-digest.pid',
|
||||
'Removes its PID file'
|
||||
);
|
||||
};
|
||||
|
@@ -51,7 +51,7 @@ ok(
|
||||
no_diff(
|
||||
sub { pt_query_digest::main(@args, '--execute', $cnf,
|
||||
"$trunk/t/lib/samples/slowlogs/slow018.txt") },
|
||||
't/pt-query-digest/samples/slow018_execute_report_1.txt'
|
||||
't/pt-query-digest/samples/slow018_execute_report_1.txt',
|
||||
),
|
||||
'--execute without database'
|
||||
);
|
||||
@@ -76,7 +76,7 @@ ok(
|
||||
sub { pt_query_digest::main(@args, '--execute', $cnf,
|
||||
"$trunk/t/lib/samples/slowlogs/slow018.txt") },
|
||||
't/pt-query-digest/samples/slow018_execute_report_2.txt',
|
||||
trf => 'tail -n 26',
|
||||
trf => 'tail -n 30',
|
||||
),
|
||||
'--execute with default database'
|
||||
);
|
||||
|
@@ -30,8 +30,12 @@
|
||||
# SHOW CREATE TABLE `foo`\G
|
||||
INSERT INTO `foo` VALUES (1, 2, 3) /*... omitted ...*/\G
|
||||
|
||||
# Statistic Value
|
||||
# =================== =====
|
||||
# execute_error 1
|
||||
# execute_executed 1
|
||||
# execute_no_database 1
|
||||
# Statistic Count %/Events
|
||||
# ====================================== ===== ========
|
||||
# events_read 1 100.00
|
||||
# events_parsed 1 100.00
|
||||
# events_aggregated 1 100.00
|
||||
# execute_error 1 100.00
|
||||
# execute_executed 1 100.00
|
||||
# execute_no_database 1 100.00
|
||||
# pipeline_restarted_after_SlowLogParser 1 100.00
|
||||
|
@@ -21,6 +21,10 @@
|
||||
# SHOW CREATE TABLE `foo`\G
|
||||
INSERT INTO `foo` VALUES (1, 2, 3) /*... omitted ...*/\G
|
||||
|
||||
# Statistic Value
|
||||
# ================ =====
|
||||
# execute_executed 1
|
||||
# Statistic Count %/Events
|
||||
# ====================================== ===== ========
|
||||
# events_read 1 100.00
|
||||
# events_parsed 1 100.00
|
||||
# events_aggregated 1 100.00
|
||||
# execute_executed 1 100.00
|
||||
# pipeline_restarted_after_SlowLogParser 1 100.00
|
||||
|
@@ -42,34 +42,34 @@ my $output = `/tmp/12346/use -e 'show slave status'`;
|
||||
like($output, qr/Table 'test.t' doesn't exist'/, 'It is busted');
|
||||
|
||||
# Start an instance
|
||||
diag(`$trunk/bin/pt-slave-restart --max-sleep .25 -h 127.0.0.1 -P 12346 -u msandbox -p msandbox --daemonize --pid /tmp/mk-slave-restart.pid --log /tmp/mk-slave-restart.log`);
|
||||
$output = `ps -eaf | grep 'mk-slave-restart \-\-max\-sleep ' | grep -v grep | grep -v mk-slave-restart.t`;
|
||||
like($output, qr/mk-slave-restart --max/, 'It lives');
|
||||
diag(`$trunk/bin/pt-slave-restart --max-sleep .25 -h 127.0.0.1 -P 12346 -u msandbox -p msandbox --daemonize --pid /tmp/pt-slave-restart.pid --log /tmp/pt-slave-restart.log`);
|
||||
$output = `ps -eaf | grep 'pt-slave-restart \-\-max\-sleep ' | grep -v grep | grep -v pt-slave-restart.t`;
|
||||
like($output, qr/pt-slave-restart --max/, 'It lives');
|
||||
|
||||
unlike($output, qr/Table 'test.t' doesn't exist'/, 'It is not busted');
|
||||
|
||||
ok(-f '/tmp/mk-slave-restart.pid', 'PID file created');
|
||||
ok(-f '/tmp/mk-slave-restart.log', 'Log file created');
|
||||
ok(-f '/tmp/pt-slave-restart.pid', 'PID file created');
|
||||
ok(-f '/tmp/pt-slave-restart.log', 'Log file created');
|
||||
|
||||
my ($pid) = $output =~ /\s+(\d+)\s+/;
|
||||
$output = `cat /tmp/mk-slave-restart.pid`;
|
||||
$output = `cat /tmp/pt-slave-restart.pid`;
|
||||
is($output, $pid, 'PID file has correct PID');
|
||||
|
||||
diag(`$trunk/bin/pt-slave-restart --stop -q`);
|
||||
sleep 1;
|
||||
$output = `ps -eaf | grep mk-slave-restart | grep -v grep`;
|
||||
unlike($output, qr/mk-slave-restart --max/, 'It is dead');
|
||||
$output = `ps -eaf | grep pt-slave-restart | grep -v grep`;
|
||||
unlike($output, qr/pt-slave-restart --max/, 'It is dead');
|
||||
|
||||
diag(`rm -f /tmp/mk-slave-re*`);
|
||||
ok(! -f '/tmp/mk-slave-restart.pid', 'PID file removed');
|
||||
diag(`rm -f /tmp/pt-slave-re*`);
|
||||
ok(! -f '/tmp/pt-slave-restart.pid', 'PID file removed');
|
||||
|
||||
# #############################################################################
|
||||
# Issue 118: mk-slave-restart --error-numbers option is broken
|
||||
# Issue 118: pt-slave-restart --error-numbers option is broken
|
||||
# #############################################################################
|
||||
$output = `$trunk/bin/pt-slave-restart --stop --sentinel /tmp/mk-slave-restartup --error-numbers=1205,1317`;
|
||||
like($output, qr{Successfully created file /tmp/mk-slave-restartup}, '--error-numbers works (issue 118)');
|
||||
$output = `$trunk/bin/pt-slave-restart --stop --sentinel /tmp/pt-slave-restartup --error-numbers=1205,1317`;
|
||||
like($output, qr{Successfully created file /tmp/pt-slave-restartup}, '--error-numbers works (issue 118)');
|
||||
|
||||
diag(`rm -f /tmp/mk-slave-re*`);
|
||||
diag(`rm -f /tmp/pt-slave-re*`);
|
||||
|
||||
# #############################################################################
|
||||
# Issue 459: mk-slave-restart --error-text is broken
|
||||
@@ -99,14 +99,14 @@ unlike(
|
||||
# ###########################################################################
|
||||
# Issue 391: Add --pid option to all scripts
|
||||
# ###########################################################################
|
||||
`touch /tmp/mk-script.pid`;
|
||||
$output = `$trunk/bin/pt-slave-restart --max-sleep .25 -h 127.0.0.1 -P 12346 -u msandbox -p msandbox --pid /tmp/mk-script.pid 2>&1`;
|
||||
`touch /tmp/pt-script.pid`;
|
||||
$output = `$trunk/bin/pt-slave-restart --max-sleep .25 -h 127.0.0.1 -P 12346 -u msandbox -p msandbox --pid /tmp/pt-script.pid 2>&1`;
|
||||
like(
|
||||
$output,
|
||||
qr{PID file /tmp/mk-script.pid already exists},
|
||||
qr{PID file /tmp/pt-script.pid already exists},
|
||||
'Dies if PID file already exists (--pid without --daemonize) (issue 391)'
|
||||
);
|
||||
`rm -rf /tmp/mk-script.pid`;
|
||||
`rm -rf /tmp/pt-script.pid`;
|
||||
|
||||
# #############################################################################
|
||||
# Issue 662: Option maxlength does not exist
|
||||
@@ -131,7 +131,7 @@ is(
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
diag(`rm -f /tmp/mk-slave-re*`);
|
||||
diag(`rm -f /tmp/pt-slave-re*`);
|
||||
$sb->wipe_clean($master_dbh);
|
||||
$sb->wipe_clean($slave_dbh);
|
||||
exit;
|
||||
|
@@ -35,9 +35,9 @@ result() {
|
||||
|
||||
# All variables are named GL_whatever so they don't get overwritten with stuff
|
||||
# that happens in the functions sourced.
|
||||
GL_input="/tmp/aspersa"
|
||||
GL_expected="/tmp/aspersa-reference"
|
||||
GL_result="/tmp/aspersa-result"
|
||||
GL_input="/tmp/percona-toolkit"
|
||||
GL_expected="/tmp/percona-toolkit-reference"
|
||||
GL_result="/tmp/percona-toolkit-result"
|
||||
|
||||
run_test() {
|
||||
t=$1 # test file name, e.g. "group-by-all-01" for pt-diskstats
|
||||
@@ -66,7 +66,7 @@ run_test() {
|
||||
result $?
|
||||
|
||||
# Clean up
|
||||
rm -f /tmp/aspersa*
|
||||
rm -f /tmp/percona-toolkit*
|
||||
}
|
||||
|
||||
load_tests() {
|
||||
|
Reference in New Issue
Block a user