aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test
diff options
context:
space:
mode:
authordan miller2007-10-20 02:49:29 +0000
committerdan miller2007-10-20 02:49:29 +0000
commite36d23a85ebff914d74bb541558c2b6082b78edb (patch)
tree54b58fdf162e78af64055282a6035c8d2443389d /libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test
parent* Fixed an issue whereby avatar chat distances were being calculated against ... (diff)
downloadopensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.zip
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.gz
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.bz2
opensim-SC-e36d23a85ebff914d74bb541558c2b6082b78edb.tar.xz
sqlite source (unix build) added to libraries
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test')
-rw-r--r--libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test115
1 files changed, 115 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test b/libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test
new file mode 100644
index 0000000..dc4fe5b
--- /dev/null
+++ b/libraries/sqlite/unix/sqlite-3.5.1/test/filefmt.test
@@ -0,0 +1,115 @@
1# 2007 April 6
2#
3# The author disclaims copyright to this source code. In place of
4# a legal notice, here is a blessing:
5#
6# May you do good and not evil.
7# May you find forgiveness for yourself and forgive others.
8# May you share freely, never taking more than you give.
9#
10#***********************************************************************
11# This file implements regression tests for SQLite library.
12#
13# This file implements tests to verify database file format.
14#
15# $Id: filefmt.test,v 1.2 2007/04/06 21:42:22 drh Exp $
16
17set testdir [file dirname $argv0]
18source $testdir/tester.tcl
19db close
20file delete -force test.db test.db-journal
21
22# Database begins with valid 16-byte header string.
23#
24do_test filefmt-1.1 {
25 sqlite3 db test.db
26 db eval {CREATE TABLE t1(x)}
27 db close
28 hexio_read test.db 0 16
29} {53514C69746520666F726D6174203300}
30
31# If the 16-byte header is changed, the file will not open
32#
33do_test filefmt-1.2 {
34 hexio_write test.db 0 54
35 set x [catch {sqlite3 db test.db} err]
36 lappend x $err
37} {0 {}}
38do_test filefmt-1.3 {
39 catchsql {
40 SELECT count(*) FROM sqlite_master
41 }
42} {1 {file is encrypted or is not a database}}
43do_test filefmt-1.4 {
44 db close
45 hexio_write test.db 0 53
46 sqlite3 db test.db
47 catchsql {
48 SELECT count(*) FROM sqlite_master
49 }
50} {0 1}
51
52# The page-size is stored at offset 16
53#
54ifcapable pager_pragmas {
55 foreach pagesize {512 1024 2048 4096 8192 16384 32768} {
56 if {[info exists SQLITE_MAX_PAGE_SIZE]
57 && $pagesize>$SQLITE_MAX_PAGE_SIZE} continue
58 do_test filefmt-1.5.$pagesize.1 {
59 db close
60 file delete -force test.db
61 sqlite3 db test.db
62 db eval "PRAGMA auto_vacuum=OFF"
63 db eval "PRAGMA page_size=$pagesize"
64 db eval {CREATE TABLE t1(x)}
65 file size test.db
66 } [expr $pagesize*2]
67 do_test filefmt-1.5.$pagesize.2 {
68 hexio_get_int [hexio_read test.db 16 2]
69 } $pagesize
70 }
71}
72
73# The page-size must be a power of 2
74#
75do_test filefmt-1.6 {
76 db close
77 hexio_write test.db 16 [hexio_render_int16 1025]
78 sqlite3 db test.db
79 catchsql {
80 SELECT count(*) FROM sqlite_master
81 }
82} {1 {file is encrypted or is not a database}}
83
84
85# The page-size must be at least 512 bytes
86#
87do_test filefmt-1.7 {
88 db close
89 hexio_write test.db 16 [hexio_render_int16 256]
90 sqlite3 db test.db
91 catchsql {
92 SELECT count(*) FROM sqlite_master
93 }
94} {1 {file is encrypted or is not a database}}
95
96# Usable space per page (page-size minus unused space per page)
97# must be at least 500 bytes
98#
99ifcapable pager_pragmas {
100 do_test filefmt-1.8 {
101 db close
102 file delete -force test.db
103 sqlite3 db test.db
104 db eval {PRAGMA page_size=512; CREATE TABLE t1(x)}
105 db close
106 hexio_write test.db 20 10
107 sqlite3 db test.db
108 catchsql {
109 SELECT count(*) FROM sqlite_master
110 }
111 } {1 {file is encrypted or is not a database}}
112}
113
114
115finish_test