Blame t/34_online_backup.t

Packit 723767
#!/usr/bin/perl
Packit 723767
Packit 723767
use strict;
Packit 723767
use warnings;
Packit 723767
Packit 723767
use Test::More;
Packit 723767
use lib "t/lib";
Packit 723767
use SQLiteTest qw/connect_ok dbfile @CALL_FUNCS requires_sqlite/;
Packit 723767
Packit 723767
BEGIN { requires_sqlite('3.6.11') }
Packit 723767
Packit 723767
use Test::NoWarnings;
Packit 723767
use DBI;
Packit 723767
Packit 723767
plan tests => 6 * @CALL_FUNCS + 1;
Packit 723767
Packit 723767
foreach my $call_func (@CALL_FUNCS) {
Packit 723767
	# Connect to the test db and add some stuff:
Packit 723767
	my $foo = connect_ok( dbfile => 'foo', RaiseError => 1 );
Packit 723767
	my $dbfile = dbfile('foo');
Packit 723767
	$foo->do(
Packit 723767
	    'CREATE TABLE online_backup_test( id INTEGER PRIMARY KEY, foo INTEGER )'
Packit 723767
	);
Packit 723767
	$foo->do("INSERT INTO online_backup_test (foo) VALUES ($$)");
Packit 723767
Packit 723767
	# That should be in the "foo" database on disk now, so disconnect and try to
Packit 723767
	# back it up:
Packit 723767
Packit 723767
	$foo->disconnect;
Packit 723767
Packit 723767
	my $dbh = DBI->connect(
Packit 723767
	    'dbi:SQLite:dbname=:memory:',
Packit 723767
	    undef, undef,
Packit 723767
	    { RaiseError => 1 }
Packit 723767
	);
Packit 723767
Packit 723767
	ok($dbh->$call_func($dbfile, 'backup_from_file'));
Packit 723767
Packit 723767
	{
Packit 723767
	    my ($count) = $dbh->selectrow_array(
Packit 723767
	        "SELECT count(foo) FROM online_backup_test WHERE foo=$$"
Packit 723767
	    );
Packit 723767
	    is($count, 1, "Found our process ID in backed-up table");
Packit 723767
	}
Packit 723767
Packit 723767
	# Add more data then attempt to copy it back to file:
Packit 723767
	$dbh->do(
Packit 723767
	    'CREATE TABLE online_backup_test2 ( id INTEGER PRIMARY KEY, foo INTEGER )'
Packit 723767
	);
Packit 723767
	$dbh->do("INSERT INTO online_backup_test2 (foo) VALUES ($$)");
Packit 723767
Packit 723767
	# backup to file (foo):
Packit 723767
	ok($dbh->$call_func($dbfile, 'backup_to_file'));
Packit 723767
Packit 723767
	$dbh->disconnect;
Packit 723767
Packit 723767
	# Reconnect to foo db and check data made it over:
Packit 723767
	{
Packit 723767
	    my $foo = connect_ok( dbfile => 'foo', RaiseError => 1 );
Packit 723767
Packit 723767
	    my ($count) = $foo->selectrow_array(
Packit 723767
	        "SELECT count(foo) FROM online_backup_test2 WHERE foo=$$"
Packit 723767
	    );
Packit 723767
	    is($count, 1, "Found our process ID in table back on disk");
Packit 723767
Packit 723767
	    $foo->disconnect;
Packit 723767
	}
Packit 723767
	$dbh->disconnect;
Packit 723767
Packit 723767
	unlink $dbfile;
Packit 723767
}