-
Notifications
You must be signed in to change notification settings - Fork 7.8k
/
Copy pathsqlite3_38_backup.phpt
58 lines (45 loc) · 1.21 KB
/
sqlite3_38_backup.phpt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
--TEST--
SQLite3::backup test
--EXTENSIONS--
sqlite3
--FILE--
<?php
require_once(__DIR__ . '/new_db.inc');
echo "Creating table\n";
$db->exec('CREATE TABLE test (a, b);');
$db->exec('INSERT INTO test VALUES (42, \'php\');');
echo "Checking if table has been created\n";
var_dump($db->querySingle('SELECT COUNT(*) FROM sqlite_master;'));
$db2 = new SQLite3(':memory:');
echo "Backup to DB2\n";
var_dump($db->backup($db2));
echo "Checking if table has been copied\n";
var_dump($db2->querySingle('SELECT COUNT(*) FROM sqlite_master;'));
echo "Checking backup contents\n";
var_dump($db2->querySingle('SELECT a FROM test;'));
var_dump($db2->querySingle('SELECT b FROM test;'));
echo "Resetting DB2\n";
$db2->close();
$db2 = new SQLite3(':memory:');
echo "Locking DB1\n";
var_dump($db->exec('BEGIN EXCLUSIVE;'));
echo "Backup to DB2 (should fail)\n";
var_dump($db->backup($db2));
?>
--EXPECTF--
Creating table
Checking if table has been created
int(1)
Backup to DB2
bool(true)
Checking if table has been copied
int(1)
Checking backup contents
int(42)
string(3) "php"
Resetting DB2
Locking DB1
bool(true)
Backup to DB2 (should fail)
Warning: SQLite3::backup(): Backup failed: source database is busy in %s on line %d
bool(false)