@@ -7,8 +7,17 @@ ENGINE=INNODB;
77BEGIN;
88INSERT INTO t SET a=1;
99
10- evalp BACKUP SERVER TO '$MYSQLTEST_VARDIR/some_directory';
11- --rmdir $MYSQLTEST_VARDIR/some_directory
10+ --let $target_directory=/tmp/some_directory$MTR_COMBINATION_ARCHIVED
11+ # comment out the following line (and some more, including rmdir),
12+ # to test cross-filesystem copy
13+ --let $target_directory=$MYSQLTEST_VARDIR/some_directory
14+
15+ # Clean up after a previous failed test, in case we are retrying.
16+ --error 0,1
17+ --rmdir $target_directory
18+
19+ evalp BACKUP SERVER TO '$target_directory';
20+ --rmdir $target_directory
1221ROLLBACK;
1322# BACKUP SERVER will implicitly commit the current transaction
1423SELECT * FROM t;
@@ -19,31 +28,50 @@ DELETE FROM t;
1928--connect backup,localhost,root
2029if ($have_debug) {
2130SET DEBUG_SYNC='innodb_backup_start SIGNAL start WAIT_FOR resume';
22- --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
23- send_eval BACKUP SERVER TO '$MYSQLTEST_VARDIR/some_directory ';
31+ --replace_result $target_directory target_directory
32+ send_eval BACKUP SERVER TO '$target_directory ';
2433--connection default
2534SET DEBUG_SYNC='now WAIT_FOR start';
2635INSERT INTO t(a) SELECT * FROM seq_1_to_30000;
2736SET DEBUG_SYNC='now SIGNAL resume';
2837--connection backup
38+ # FIXME: outside PMEM we may get ER_ERROR_ON_RENAME
2939--reap
3040}
3141if (!$have_debug) {
32- --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
33- eval BACKUP SERVER TO '$MYSQLTEST_VARDIR/some_directory ';
42+ --replace_result $target_directory target_directory
43+ eval BACKUP SERVER TO '$target_directory ';
3444}
3545
3646--disconnect backup
3747--connection default
3848ROLLBACK;
3949SELECT * FROM t;
50+ DELETE FROM t;
4051
41- let $datadir=`SELECT @@datadir`;
42- --source include/shutdown_mysqld.inc
43- #--rmdir $datadir
44- #--move_file $MYSQLTEST_VARDIR/some_directory $datadir
45- --rmdir $MYSQLTEST_VARDIR/some_directory
46- --source include/start_mysqld.inc
52+ if ($MARIADB_UPGRADE_EXE) {
53+ let target_directory=$target_directory;
54+ perl;
55+ open IN, "<", "$ENV{MYSQLTEST_VARDIR}/my.cnf";
56+ open OUT, ">>", "$ENV{target_directory}/backup.cnf";
57+ print OUT while (<IN>);
58+ close(IN);
59+ close(OUT);
60+ EOF
61+ }
62+ if (!$MARIADB_UPGRADE_EXE) {
63+ --exec cat $MYSQLTEST_VARDIR/my.cnf >> $target_directory/backup.cnf
64+ }
65+ --let $restart_parameters=--defaults-file=$target_directory/backup.cnf --datadir=$target_directory
66+ --source include/restart_mysqld.inc
4767
68+ SELECT * FROM t;
69+ # we must have started up with nonzero innodb_log_recovery_target
70+ --error ER_OPEN_AS_READONLY
71+ DELETE FROM t;
72+ --let $restart_parameters=
73+ --source include/restart_mysqld.inc
4874SELECT * FROM t;
4975DROP TABLE t;
76+
77+ --rmdir $target_directory
0 commit comments