~percona-toolkit-dev/percona-toolkit/mysql-5.6-test-fixes

« back to all changes in this revision

Viewing changes to t/pt-archiver/file.t

  • Committer: Daniel Nichter
  • Date: 2011-06-24 22:02:05 UTC
  • Revision ID: daniel@percona.com-20110624220205-e779cao9hcwyly1w
Add forked Maatkit tools in bin/ and their tests in t/.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env perl
 
2
 
 
3
BEGIN {
 
4
   die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
 
5
      unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
 
6
   unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
 
7
};
 
8
 
 
9
use strict;
 
10
use warnings FATAL => 'all';
 
11
use English qw(-no_match_vars);
 
12
use Test::More;
 
13
 
 
14
use MaatkitTest;
 
15
use Sandbox;
 
16
require "$trunk/bin/pt-archiver";
 
17
 
 
18
my $dp  = new DSNParser(opts=>$dsn_opts);
 
19
my $sb  = new Sandbox(basedir => '/tmp', DSNParser => $dp);
 
20
my $dbh = $sb->get_dbh_for('master');
 
21
 
 
22
if ( !$dbh ) {
 
23
   plan skip_all => 'Cannot connect to sandbox master';
 
24
}
 
25
else {
 
26
   plan tests => 5;
 
27
}
 
28
 
 
29
my $output;
 
30
my $rows;
 
31
my $cnf = "/tmp/12345/my.sandbox.cnf";
 
32
my $cmd = "$trunk/bin/pt-archiver";
 
33
 
 
34
$sb->create_dbs($dbh, ['test']);
 
35
$sb->load_file('master', 't/pt-archiver/samples/table1.sql');
 
36
 
 
37
# Archive to a file.
 
38
`rm -f archive.test.table_1`;
 
39
$output = output(
 
40
   sub { mk_archiver::main(qw(--where 1=1), "--source", "D=test,t=table_1,F=$cnf", "--file", 'archive.%D.%t') },
 
41
);
 
42
is($output, '', 'No output for archiving to a file');
 
43
$output = `/tmp/12345/use -N -e "select count(*) from test.table_1"`;
 
44
is($output + 0, 0, 'Purged all rows ok');
 
45
ok(-f 'archive.test.table_1', 'Archive file written OK');
 
46
$output = `cat archive.test.table_1`;
 
47
is($output, <<EOF
 
48
1\t2\t3\t4
 
49
2\t\\N\t3\t4
 
50
3\t2\t3\t\\\t
 
51
4\t2\t3\t\\
 
52
 
 
53
EOF
 
54
, 'File has the right stuff');
 
55
`rm -f archive.test.table_1`;
 
56
 
 
57
# Archive to a file, but specify only some columns.
 
58
$sb->load_file('master', 't/pt-archiver/samples/table1.sql');
 
59
`rm -f archive.test.table_1`;
 
60
$output = output(
 
61
   sub { mk_archiver::main("-c", "b,c", qw(--where 1=1 --header), "--source", "D=test,t=table_1,F=$cnf", "--file", 'archive.%D.%t') },
 
62
);
 
63
$output = `cat archive.test.table_1`;
 
64
is($output, <<EOF
 
65
b\tc
 
66
2\t3
 
67
\\N\t3
 
68
2\t3
 
69
2\t3
 
70
EOF
 
71
, 'File has the right stuff with only some columns');
 
72
`rm -f archive.test.table_1`;
 
73
 
 
74
# #############################################################################
 
75
# Done.
 
76
# #############################################################################
 
77
$sb->wipe_clean($dbh);
 
78
exit;