xref: /sqlite-3.40.0/test/shortread1.test (revision 326c3fca)
1*326c3fcaSdrh# 2007 Sep 13
2*326c3fcaSdrh#
3*326c3fcaSdrh# The author disclaims copyright to this source code. In place of
4*326c3fcaSdrh# a legal notice, here is a blessing:
5*326c3fcaSdrh#
6*326c3fcaSdrh#    May you do good and not evil.
7*326c3fcaSdrh#    May you find forgiveness for yourself and forgive others.
8*326c3fcaSdrh#    May you share freely, never taking more than you give.
9*326c3fcaSdrh#
10*326c3fcaSdrh#***********************************************************************
11*326c3fcaSdrh#
12*326c3fcaSdrh# This file attempts to duplicate an error scenario seen on a
13*326c3fcaSdrh# customer system using version 3.2.2.  The problem appears to
14*326c3fcaSdrh# have been fixed (perhaps by accident) with check-in [3503].
15*326c3fcaSdrh# These tests will prevent an accidental recurrance.
16*326c3fcaSdrh#
17*326c3fcaSdrh# $Id: shortread1.test,v 1.1 2007/09/14 01:48:12 drh Exp $
18*326c3fcaSdrh#
19*326c3fcaSdrh
20*326c3fcaSdrhset testdir [file dirname $argv0]
21*326c3fcaSdrhsource $testdir/tester.tcl
22*326c3fcaSdrh
23*326c3fcaSdrhdo_test shortread1-1.1 {
24*326c3fcaSdrh  execsql {
25*326c3fcaSdrh    CREATE TABLE t1(a TEXT);
26*326c3fcaSdrh    BEGIN;
27*326c3fcaSdrh    INSERT INTO t1 VALUES(hex(randomblob(5000)));
28*326c3fcaSdrh    INSERT INTO t1 VALUES(hex(randomblob(100)));
29*326c3fcaSdrh    PRAGMA freelist_count;
30*326c3fcaSdrh  }
31*326c3fcaSdrh} {0}
32*326c3fcaSdrhdo_test shortread1-1.2 {
33*326c3fcaSdrh  execsql {
34*326c3fcaSdrh    DELETE FROM t1 WHERE rowid=1;
35*326c3fcaSdrh    PRAGMA freelist_count;
36*326c3fcaSdrh  }
37*326c3fcaSdrh} {11}
38*326c3fcaSdrhdo_test shortread1-1.3 {
39*326c3fcaSdrh  sqlite3_release_memory [expr {1024*9}]
40*326c3fcaSdrh  execsql {
41*326c3fcaSdrh    INSERT INTO t1 VALUES(hex(randomblob(5000)));
42*326c3fcaSdrh    PRAGMA freelist_count;
43*326c3fcaSdrh  }
44*326c3fcaSdrh} {0}
45*326c3fcaSdrhdo_test shortread1-1.4 {
46*326c3fcaSdrh  execsql {
47*326c3fcaSdrh    COMMIT;
48*326c3fcaSdrh    SELECT count(*) FROM t1;
49*326c3fcaSdrh  }
50*326c3fcaSdrh} {2}
51*326c3fcaSdrh
52*326c3fcaSdrhfinish_test
53