⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filefmt.test

📁 最新的sqlite3.6.2源代码
💻 TEST
字号:
# 2007 April 6## The author disclaims copyright to this source code.  In place of# a legal notice, here is a blessing:##    May you do good and not evil.#    May you find forgiveness for yourself and forgive others.#    May you share freely, never taking more than you give.##***********************************************************************# This file implements regression tests for SQLite library.## This file implements tests to verify database file format.## $Id: filefmt.test,v 1.2 2007/04/06 21:42:22 drh Exp $set testdir [file dirname $argv0]source $testdir/tester.tcldb closefile delete -force test.db test.db-journal# Database begins with valid 16-byte header string.#do_test filefmt-1.1 {  sqlite3 db test.db  db eval {CREATE TABLE t1(x)}  db close  hexio_read test.db 0 16} {53514C69746520666F726D6174203300}# If the 16-byte header is changed, the file will not open#do_test filefmt-1.2 {  hexio_write test.db 0 54  set x [catch {sqlite3 db test.db} err]  lappend x $err} {0 {}}do_test filefmt-1.3 {  catchsql {    SELECT count(*) FROM sqlite_master  }} {1 {file is encrypted or is not a database}}do_test filefmt-1.4 {  db close  hexio_write test.db 0 53  sqlite3 db test.db  catchsql {    SELECT count(*) FROM sqlite_master  }} {0 1}# The page-size is stored at offset 16#ifcapable pager_pragmas {  foreach pagesize {512 1024 2048 4096 8192 16384 32768} {     if {[info exists SQLITE_MAX_PAGE_SIZE]          && $pagesize>$SQLITE_MAX_PAGE_SIZE} continue     do_test filefmt-1.5.$pagesize.1 {       db close       file delete -force test.db       sqlite3 db test.db       db eval "PRAGMA auto_vacuum=OFF"       db eval "PRAGMA page_size=$pagesize"       db eval {CREATE TABLE t1(x)}       file size test.db     } [expr $pagesize*2]     do_test filefmt-1.5.$pagesize.2 {       hexio_get_int [hexio_read test.db 16 2]     } $pagesize  }}# The page-size must be a power of 2#do_test filefmt-1.6 {  db close  hexio_write test.db 16 [hexio_render_int16 1025]  sqlite3 db test.db  catchsql {     SELECT count(*) FROM sqlite_master  }} {1 {file is encrypted or is not a database}}# The page-size must be at least 512 bytes#do_test filefmt-1.7 {  db close  hexio_write test.db 16 [hexio_render_int16 256]  sqlite3 db test.db  catchsql {     SELECT count(*) FROM sqlite_master  }} {1 {file is encrypted or is not a database}}# Usable space per page (page-size minus unused space per page)# must be at least 500 bytes#ifcapable pager_pragmas {  do_test filefmt-1.8 {    db close    file delete -force test.db    sqlite3 db test.db    db eval {PRAGMA page_size=512; CREATE TABLE t1(x)}    db close    hexio_write test.db 20 10    sqlite3 db test.db    catchsql {       SELECT count(*) FROM sqlite_master    }  } {1 {file is encrypted or is not a database}}}finish_test

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -