~percona-toolkit-dev/percona-toolkit/2.0

« back to all changes in this revision

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

Merge test-pt-archiver-sql-log-bug-903387-2.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
my $dp  = new DSNParser(opts=>$dsn_opts);
20
20
my $sb  = new Sandbox(basedir => '/tmp', DSNParser => $dp);
21
 
my $dbh = $sb->get_dbh_for('master');
 
21
my $master_dbh = $sb->get_dbh_for('master');
 
22
my $slave1_dbh = $sb->get_dbh_for('slave1');
22
23
 
23
 
if ( !$dbh ) {
 
24
if ( !$master_dbh ) {
24
25
   plan skip_all => 'Cannot connect to sandbox master';
25
26
}
 
27
elsif ( !$slave1_dbh ) {
 
28
   plan skip_all => 'Cannot connect to sandbox slave1';
 
29
}
26
30
 
27
31
my $output;
28
32
my $rows;
30
34
my $cmd = "$trunk/bin/pt-archiver";
31
35
 
32
36
# Make sure load works.
33
 
$sb->create_dbs($dbh, ['test']);
 
37
$sb->create_dbs($master_dbh, ['test']);
34
38
$sb->load_file('master', 't/pt-archiver/samples/tables1-4.sql');
35
 
$rows = $dbh->selectrow_arrayref('select count(*) from test.table_1')->[0];
 
39
$rows = $master_dbh->selectrow_arrayref('select count(*) from test.table_1')->[0];
36
40
if ( ($rows || 0) != 4 ) {
37
41
   plan skip_all => 'Failed to load tables1-4.sql';
38
42
}
39
43
else {
40
 
   plan tests => 25;
 
44
   plan tests => 28;
41
45
}
42
46
 
43
47
my @args = qw(--dry-run --where 1=1);
186
190
);
187
191
 
188
192
# #############################################################################
 
193
# Bug 903387: pt-archiver doesn't honor b=1 flag to create SQL_LOG_BIN statement
 
194
# #############################################################################
 
195
 
 
196
$sb->load_file('master', "t/pt-archiver/samples/bulk_regular_insert.sql");
 
197
PerconaTest::wait_for_table($slave1_dbh, "bri.t", "id=10");
 
198
 
 
199
my $original_rows = $slave1_dbh->selectall_arrayref("SELECT * FROM bri.t ORDER BY id");
 
200
is_deeply(
 
201
   $original_rows,
 
202
   [
 
203
      [1, 'aa', '11:11:11'],
 
204
      [2, 'bb', '11:11:12'],
 
205
      [3, 'cc', '11:11:13'],
 
206
      [4, 'dd', '11:11:14'],
 
207
      [5, 'ee', '11:11:15'],
 
208
      [6, 'ff', '11:11:16'],
 
209
      [7, 'gg', '11:11:17'],
 
210
      [8, 'hh', '11:11:18'],
 
211
      [9, 'ii', '11:11:19'],
 
212
      [10,'jj', '11:11:10'],
 
213
   ],
 
214
   "Bug 903387: slave has rows"
 
215
);
 
216
 
 
217
$output = output(
 
218
   sub { pt_archiver::main(
 
219
      '--source', "D=bri,t=t,F=$cnf,b=1",
 
220
      '--dest',   "D=bri,t=t_arch",
 
221
      qw(--where 1=1 --replace --commit-each --bulk-insert --bulk-delete),
 
222
      qw(--limit 10)) },
 
223
);
 
224
 
 
225
$rows = $master_dbh->selectall_arrayref("SELECT * FROM bri.t ORDER BY id");
 
226
is_deeply(
 
227
   $rows,
 
228
   [
 
229
      [10,'jj', '11:11:10'],
 
230
   ],
 
231
   "Bug 903387: rows deleted on master"
 
232
) or diag(Dumper($rows));
 
233
 
 
234
$rows = $slave1_dbh->selectall_arrayref("SELECT * FROM bri.t ORDER BY id");
 
235
is_deeply(
 
236
   $rows,
 
237
   $original_rows,
 
238
   "Bug 903387: slave still has rows"
 
239
) or diag(Dumper($rows));
 
240
 
 
241
# #############################################################################
189
242
# Done.
190
243
# #############################################################################
191
 
$sb->wipe_clean($dbh);
 
244
$sb->wipe_clean($master_dbh);
192
245
exit;