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 + -
显示快捷键?