mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
994132add6
Test failed on a certain Linux platform in automated environment. It turns out that this platform has an old version of Perl modules DBI and DBD::mysql installed, as well as the OS itself being relatively old. Allowing error code 11 to be returned from mysqlhotcopy on expected error seems harmless and will make the test pass also with older libraries.
135 lines
4.8 KiB
PHP
135 lines
4.8 KiB
PHP
# Test of mysqlhotcopy (perl script)
|
|
# Author: Horst Hunger
|
|
# Created: 2010-05-10
|
|
|
|
--source include/not_windows.inc
|
|
--source include/not_embedded.inc
|
|
--source include/have_dbi_dbd-mysql.inc
|
|
|
|
if (!$MYSQLHOTCOPY)
|
|
{
|
|
# Fail the test if the mysqlhotcopy script is missing.
|
|
# If the tool's location changes, mysql-test-run.pl must be updated to
|
|
# reflect this (look for "MYSQLHOTCOPY").
|
|
die due to missing mysqlhotcopy tool;
|
|
}
|
|
|
|
# NOTE (johnemb, 2011-01-26):
|
|
# In this test mysqlhotcopy (a perl script) is executed as a standalone
|
|
# executable, i.e. not necessarily using the perl interpreter in PATH,
|
|
# because that is how the documentation demonstrates it.
|
|
#
|
|
# We include have_dbi_dbd-mysql.inc above so that the test will
|
|
# be skipped if Perl modules required by the mysqlhotcopy tool are not
|
|
# found when the script is run this way.
|
|
|
|
|
|
let $MYSQLD_DATADIR= `SELECT @@datadir`;
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS hotcopy_test;
|
|
--enable_warnings
|
|
CREATE DATABASE hotcopy_test;
|
|
USE hotcopy_test;
|
|
eval CREATE TABLE t1 (c1 int, c2 varchar(20)) ENGINE=$engine;
|
|
eval CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=$engine;
|
|
eval CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=$engine;
|
|
|
|
INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
|
|
INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
|
|
INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb');
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_test
|
|
|
|
# backup into another database in the same directory
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save
|
|
|
|
USE hotcopy_save;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t2;
|
|
SELECT * FROM t3;
|
|
|
|
# restore data into the original database with mysqlhotcopy
|
|
if(`SELECT engine= 'MyISAM' FROM information_schema.tables WHERE table_name='t1'`)
|
|
{
|
|
USE hotcopy_test;
|
|
DELETE FROM t1;
|
|
SELECT * FROM t1;
|
|
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test
|
|
|
|
USE hotcopy_save;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t2;
|
|
SELECT * FROM t3;
|
|
}
|
|
|
|
USE hotcopy_test;
|
|
DROP TABLE t2;
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_test
|
|
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test
|
|
|
|
FLUSH TABLES;
|
|
SELECT * FROM t1;
|
|
SELECT * FROM t2;
|
|
SELECT * FROM t3;
|
|
|
|
# backup of db into a directory
|
|
USE hotcopy_test;
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test $MYSQLTEST_VARDIR/tmp
|
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
|
--list_files $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
|
#--exec rm -rf $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
|
--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/hotcopy_test *
|
|
--rmdir $MYSQLTEST_VARDIR/tmp/hotcopy_test
|
|
|
|
# backup without full index files
|
|
# reproduction of bug#53556, "--list_files" shows MYI files, which is wrong.
|
|
DROP DATABASE hotcopy_save;
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --noindices -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save
|
|
|
|
# test of option "allowold"
|
|
DROP DATABASE hotcopy_save;
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--error 9,11,2304
|
|
--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --allowold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save
|
|
|
|
# test of option "keepold"
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --keepold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save_old
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_save
|
|
|
|
# test of option "suffix"
|
|
--replace_result $MASTER_MYSOCK MASTER_MYSOCK
|
|
--exec $MYSQLHOTCOPY --quiet --suffix=_cpy -S $MASTER_MYSOCK -u root hotcopy_test
|
|
--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
|
|
--list_files $MYSQLD_DATADIR/hotcopy_test_cpy
|
|
DROP DATABASE hotcopy_test_cpy;
|
|
|
|
DROP DATABASE hotcopy_test;
|
|
DROP DATABASE hotcopy_save;
|
|
DROP DATABASE hotcopy_save_old;
|
|
|