AryaWu/sqlite
0
1# 2007 Oct 32#3# The author disclaims copyright to this source code. In place of4# 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#12# This file is to test that ticket #2686 has been fixed.13#14# $Id: tkt2686.test,v 1.3 2008/02/02 02:48:52 drh Exp $15#16 17set testdir [file dirname $argv0]18source $testdir/tester.tcl19 20ifcapable !subquery {21 finish_test22 return23}24 25db eval {26 PRAGMA page_size=1024;27 PRAGMA max_page_count=50;28 PRAGMA auto_vacuum=0;29 CREATE TABLE filler (fill);30}31for {set i 1} {$i<2000} {incr i} {32 do_test tkt2686-$i.1 {33 db eval BEGIN34 set rc [catch {35 while 1 {36 db eval {INSERT INTO filler (fill) VALUES (randstr(1000, 10000)) }37 }38 } msg]39 lappend rc $msg40 } {1 {database or disk is full}}41 do_test tkt2686-$i.2 {42 execsql {43 DELETE FROM filler 44 WHERE rowid <= (SELECT MAX(rowid) FROM filler LIMIT 20)45 }46 } {}47 integrity_check tkt2686-$i.348 catch {db eval COMMIT}49}50 51db close52forcedelete test.db test.db-journal53sqlite3 db test.db54 55db eval {56 PRAGMA page_size=1024;57 PRAGMA max_page_count=50;58 PRAGMA auto_vacuum=1;59 CREATE TABLE filler (fill);60}61for {set i 10000} {$i<12000} {incr i} {62 do_test tkt2686-$i.1 {63 db eval BEGIN64 set rc [catch {65 while 1 {66 db eval {INSERT INTO filler (fill) VALUES (randstr(1000, 10000)) }67 }68 } msg]69 lappend rc $msg70 } {1 {database or disk is full}}71 do_test tkt2686-$i.2 {72 execsql {73 DELETE FROM filler 74 WHERE rowid <= (SELECT MAX(rowid) FROM filler LIMIT 20)75 }76 } {}77 integrity_check tkt2686-$i.378 catch {db eval COMMIT}79}80 81finish_test82 