34_online_backup.t [plain text]
use strict;
use warnings;
use Test::More;
use t::lib::Test qw/connect_ok @CALL_FUNCS/;
use Test::NoWarnings;
use DBI;
plan tests => 6 * @CALL_FUNCS + 1;
foreach my $call_func (@CALL_FUNCS) {
my $foo = connect_ok( dbfile => 'foo', RaiseError => 1 );
$foo->do(
'CREATE TABLE online_backup_test( id INTEGER PRIMARY KEY, foo INTEGER )'
);
$foo->do("INSERT INTO online_backup_test (foo) VALUES ($$)");
$foo->disconnect;
my $dbh = DBI->connect(
'dbi:SQLite:dbname=:memory:',
undef, undef,
{ RaiseError => 1 }
);
ok($dbh->$call_func('foo', 'backup_from_file'));
{
my ($count) = $dbh->selectrow_array(
"SELECT count(foo) FROM online_backup_test WHERE foo=$$"
);
is($count, 1, "Found our process ID in backed-up table");
}
$dbh->do(
'CREATE TABLE online_backup_test2 ( id INTEGER PRIMARY KEY, foo INTEGER )'
);
$dbh->do("INSERT INTO online_backup_test2 (foo) VALUES ($$)");
ok($dbh->$call_func('foo', 'backup_to_file'));
$dbh->disconnect;
{
my $foo = connect_ok( dbfile => 'foo', RaiseError => 1 );
my ($count) = $foo->selectrow_array(
"SELECT count(foo) FROM online_backup_test2 WHERE foo=$$"
);
is($count, 1, "Found our process ID in table back on disk");
$foo->disconnect;
}
$dbh->disconnect;
unlink 'foo';
}