mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-10-18 16:40:23 +00:00
Fix pt-table-sync/issue_1065.t from modifying sakila tables. Add util/diff-and-restart-sandbox.
This commit is contained in:
@@ -18,13 +18,17 @@ require "$trunk/bin/pt-table-sync";
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $master_dbh = $sb->get_dbh_for('master');
|
||||
my $slave_dbh = $sb->get_dbh_for('slave1');
|
||||
my $slave1_dbh = $sb->get_dbh_for('slave1');
|
||||
my $slave2_dbh = $sb->get_dbh_for('slave2');
|
||||
|
||||
if ( !$master_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox master';
|
||||
}
|
||||
elsif ( !$slave_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox slave';
|
||||
elsif ( !$slave1_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox slave1';
|
||||
}
|
||||
elsif ( !$slave1_dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox slave2';
|
||||
}
|
||||
else {
|
||||
plan tests => 2;
|
||||
@@ -32,19 +36,22 @@ else {
|
||||
|
||||
my $output;
|
||||
my @args = ('--sync-to-master', 'h=127.1,P=12346,u=msandbox,p=msandbox',
|
||||
qw(-t sakila.rental --print --execute --no-check-triggers));
|
||||
qw(-t test.it1 --print --execute --no-check-triggers));
|
||||
|
||||
# #############################################################################
|
||||
# Issue 1065: mk-table-sync --algorithm seems to be case-sensitive
|
||||
# #############################################################################
|
||||
$slave_dbh->do('delete from sakila.rental limit 1');
|
||||
$sb->load_file('master', "t/pt-table-sync/samples/simple-tbls.sql");
|
||||
PerconaTest::wait_for_table($slave1_dbh, "test.it1", "id=10");
|
||||
|
||||
$slave1_dbh->do("delete from test.it1 where id=1 limit 1");
|
||||
|
||||
$output = output(
|
||||
sub { pt_table_sync::main(@args, qw(--algo chunk)) },
|
||||
);
|
||||
like(
|
||||
$output,
|
||||
qr/REPLACE INTO `sakila`.`rental`/,
|
||||
qr/REPLACE INTO `test`.`it1`/,
|
||||
"Case-insensitive --algorithm"
|
||||
);
|
||||
|
||||
|
27
util/diff-and-restart-sandbox
Executable file
27
util/diff-and-restart-sandbox
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
die() {
|
||||
echo "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
port="$1"
|
||||
shift
|
||||
[ "$port" ] || die "Usage: $0 PORT TABLES"
|
||||
|
||||
for table in "$@"; do
|
||||
/tmp/$port/use -e "SELECT * FROM $table" > /tmp/$table-after
|
||||
done
|
||||
|
||||
$PERCONA_TOOLKIT_BRANCH/sandbox/test-env restart
|
||||
|
||||
for table in "$@"; do
|
||||
/tmp/$port/use -e "SELECT * FROM $table" > /tmp/$table-before
|
||||
echo "# diff -u /tmp/$table-before /tmp/$table-after"
|
||||
echo -n "# columns: "
|
||||
head -n 1 /tmp/$table-before
|
||||
diff -u /tmp/$table-before /tmp/$table-after
|
||||
echo
|
||||
done
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user