tkt2920.test

来自「最新的sqlite3.6.2源代码」· TEST 代码 · 共 79 行

TEST
79
字号
# 2008 Feb 1## 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 is to test that ticket #2920 is fixed.## $Id: tkt2920.test,v 1.1 2008/02/02 02:48:52 drh Exp $#set testdir [file dirname $argv0]source $testdir/tester.tcl# Create a database file that is full.#do_test tkt2920-1.1 {  db eval {    PRAGMA page_size=1024;    PRAGMA max_page_count=40;    PRAGMA auto_vacuum=0;    CREATE TABLE filler (fill);  }  file size test.db} {2048}do_test tkt2920-1.2 {  db eval BEGIN  for {set i 0} {$i<34} {incr i} {    db eval {INSERT INTO filler VALUES(randomblob(1024))}  }  db eval COMMIT}  {}# Try to add a single new page to the full database.  We get# a disk full error.  But this does not corrupt the database.#do_test tkt2920-1.3 {  db eval BEGIN  catchsql {     INSERT INTO filler VALUES(randomblob(1024))  }} {1 {database or disk is full}}integrity_check tkt2920-1.4# Increase the maximum size of the database file by 1 page,# but then try to add a two-page record.  This also fails.#do_test tkt2920-1.5 {  db eval {PRAGMA max_page_count=41}  catchsql {     INSERT INTO filler VALUES(randomblob(2048))  }} {1 {database or disk is full}}integrity_check tkt2920-1.6# Increase the maximum size of the database by one more page.# This time the insert works.#do_test tkt2920-1.7 {  db eval {PRAGMA max_page_count=42}  catchsql {     INSERT INTO filler VALUES(randomblob(2048))  }} {0 {}}integrity_check tkt2920-1.8# The previous errors cancelled the transaction.#do_test tkt2920-1.9 {  catchsql {COMMIT}} {1 {cannot commit - no transaction is active}}finish_test

⌨️ 快捷键说明

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