Added tests for the backup calls
This commit is contained in:
@@ -10,7 +10,8 @@
|
||||
-define(DB2, "./test/dbs/temp_db2.db").
|
||||
|
||||
open_single_database_test() ->
|
||||
{ok, _C1} = esqlite3:open("test.db"),
|
||||
cleanup(),
|
||||
{ok, _C1} = esqlite3:open(?DB1),
|
||||
ok.
|
||||
|
||||
close_test() ->
|
||||
@@ -29,13 +30,19 @@ close_test() ->
|
||||
ok.
|
||||
|
||||
open_multiple_same_databases_test() ->
|
||||
cleanup(),
|
||||
|
||||
{ok, _C1} = esqlite3:open(?DB1),
|
||||
{ok, _C2} = esqlite3:open(?DB1),
|
||||
|
||||
cleanup(),
|
||||
ok.
|
||||
|
||||
open_multiple_different_databases_test() ->
|
||||
cleanup(),
|
||||
{ok, _C1} = esqlite3:open(?DB1),
|
||||
{ok, _C2} = esqlite3:open(?DB2),
|
||||
cleanup(),
|
||||
ok.
|
||||
|
||||
get_autocommit_test() ->
|
||||
@@ -444,6 +451,8 @@ prepare_and_close_connection_test() ->
|
||||
ok.
|
||||
|
||||
backup_test() ->
|
||||
cleanup(),
|
||||
|
||||
{ok, Dest} = esqlite3:open(?DB1),
|
||||
{ok, Source} = esqlite3:open(?DB2),
|
||||
|
||||
@@ -452,8 +461,53 @@ backup_test() ->
|
||||
{ok, 0} = esqlite3:backup_pagecount(Backup),
|
||||
done = esqlite3:backup_step(Backup, 1),
|
||||
|
||||
cleanup(),
|
||||
|
||||
ok.
|
||||
|
||||
backup1_test() ->
|
||||
cleanup(),
|
||||
|
||||
{ok, Dest} = esqlite3:open(?DB1),
|
||||
{ok, Source} = esqlite3:open(?DB2),
|
||||
|
||||
[] = esqlite3:q("create table test(one, two)", Source),
|
||||
[] = esqlite3:q("begin;", Source),
|
||||
[] = esqlite3:q("insert into test values(randomblob(10000), randomblob(10000));", Source),
|
||||
[] = esqlite3:q("insert into test values(randomblob(10000), randomblob(10000));", Source),
|
||||
[] = esqlite3:q("insert into test values(randomblob(10000), randomblob(10000));", Source),
|
||||
[] = esqlite3:q("insert into test values(randomblob(10000), randomblob(10000));", Source),
|
||||
[] = esqlite3:q("insert into test values(randomblob(10000), randomblob(10000));", Source),
|
||||
[] = esqlite3:q("commit;", Source),
|
||||
|
||||
[{5}] = esqlite3:q("select count(*) from test", Source),
|
||||
{error, {sqlite_error, "no such table: test"}} = esqlite3:q("select count(*) from test", Dest),
|
||||
|
||||
{ok, Backup} = esqlite3:backup_init(Dest, "main", Source, "main"),
|
||||
|
||||
{ok, 0} = esqlite3:backup_remaining(Backup),
|
||||
{ok, 0} = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
%% Backup 1 page.
|
||||
ok = esqlite3:backup_step(Backup, 1),
|
||||
|
||||
{ok, 26} = esqlite3:backup_remaining(Backup),
|
||||
{ok, 27} = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
%% Do all the remaining pages.
|
||||
done = esqlite3:backup_step(Backup, -1),
|
||||
|
||||
{ok, 0} = esqlite3:backup_remaining(Backup),
|
||||
{ok, 27} = esqlite3:backup_pagecount(Backup),
|
||||
|
||||
ok = esqlite3:backup_finish(Backup),
|
||||
|
||||
[{5}] = esqlite3:q("select count(*) from test", Dest),
|
||||
|
||||
cleanup(),
|
||||
|
||||
ok.
|
||||
|
||||
|
||||
sqlite_version_test() ->
|
||||
{ok, Db} = esqlite3:open(":memory:"),
|
||||
@@ -510,5 +564,20 @@ garbage_collect_test() ->
|
||||
receive after 500 -> ok end,
|
||||
erlang:garbage_collect(),
|
||||
|
||||
|
||||
ok.
|
||||
|
||||
%%
|
||||
%% Helpers
|
||||
%%
|
||||
|
||||
cleanup() ->
|
||||
rm_rf(?DB1),
|
||||
rm_rf(?DB2).
|
||||
|
||||
rm_rf(Filename) ->
|
||||
case file:delete(Filename) of
|
||||
ok -> ok;
|
||||
{error, _} -> ok
|
||||
end.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user