Annotation of embedaddon/sqlite3/test/8_3_names.test, revision 1.1
1.1 ! misho 1: # 2011 May 17
! 2: #
! 3: # The author disclaims copyright to this source code. In place of
! 4: # 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: # Test cases for the SQLITE_ENABLE_8_3_NAMES feature that forces all
! 13: # filename extensions to be limited to 3 characters. Some embedded
! 14: # systems need this to work around microsoft FAT patents, but this
! 15: # feature should be disabled on most deployments.
! 16: #
! 17:
! 18: set testdir [file dirname $argv0]
! 19: source $testdir/tester.tcl
! 20: ifcapable !8_3_names {
! 21: finish_test
! 22: return
! 23: }
! 24:
! 25: db close
! 26: sqlite3_shutdown
! 27: sqlite3_config_uri 1
! 28:
! 29: do_test 8_3_names-1.0 {
! 30: forcedelete test.db test.nal test.db-journal
! 31: sqlite3 db test.db
! 32: db eval {
! 33: PRAGMA cache_size=10;
! 34: CREATE TABLE t1(x);
! 35: INSERT INTO t1 VALUES(randomblob(20000));
! 36: BEGIN;
! 37: DELETE FROM t1;
! 38: INSERT INTO t1 VALUES(randomblob(15000));
! 39: }
! 40: file exists test.db-journal
! 41: } 1
! 42: do_test 8_3_names-1.1 {
! 43: file exists test.nal
! 44: } 0
! 45: do_test 8_3_names-1.2 {
! 46: db eval {
! 47: ROLLBACK;
! 48: SELECT length(x) FROM t1
! 49: }
! 50: } 20000
! 51:
! 52: db close
! 53: do_test 8_3_names-2.0 {
! 54: forcedelete test.db test.nal test.db-journal
! 55: sqlite3 db file:./test.db?8_3_names=1
! 56: db eval {
! 57: PRAGMA cache_size=10;
! 58: CREATE TABLE t1(x);
! 59: INSERT INTO t1 VALUES(randomblob(20000));
! 60: BEGIN;
! 61: DELETE FROM t1;
! 62: INSERT INTO t1 VALUES(randomblob(15000));
! 63: }
! 64: file exists test.db-journal
! 65: } 0
! 66: do_test 8_3_names-2.1 {
! 67: file exists test.nal
! 68: } 1
! 69: forcedelete test2.db test2.nal test2.db-journal
! 70: copy_file test.db test2.db
! 71: copy_file test.nal test2.nal
! 72: do_test 8_3_names-2.2 {
! 73: db eval {
! 74: COMMIT;
! 75: SELECT length(x) FROM t1
! 76: }
! 77: } 15000
! 78: do_test 8_3_names-2.3 {
! 79: sqlite3 db2 file:./test2.db?8_3_names=1
! 80: db2 eval {
! 81: PRAGMA integrity_check;
! 82: SELECT length(x) FROM t1;
! 83: }
! 84: } {ok 20000}
! 85:
! 86: db close
! 87: do_test 8_3_names-3.0 {
! 88: forcedelete test.db test.nal test.db-journal
! 89: sqlite3 db file:./test.db?8_3_names=0
! 90: db eval {
! 91: PRAGMA cache_size=10;
! 92: CREATE TABLE t1(x);
! 93: INSERT INTO t1 VALUES(randomblob(20000));
! 94: BEGIN;
! 95: DELETE FROM t1;
! 96: INSERT INTO t1 VALUES(randomblob(15000));
! 97: }
! 98: file exists test.db-journal
! 99: } 1
! 100: do_test 8_3_names-3.1 {
! 101: file exists test.nal
! 102: } 0
! 103: forcedelete test2.db test2.nal test2.db-journal
! 104: copy_file test.db test2.db
! 105: copy_file test.db-journal test2.db-journal
! 106: do_test 8_3_names-3.2 {
! 107: db eval {
! 108: COMMIT;
! 109: SELECT length(x) FROM t1
! 110: }
! 111: } 15000
! 112: do_test 8_3_names-3.3 {
! 113: sqlite3 db2 file:./test2.db?8_3_names=0
! 114: db2 eval {
! 115: PRAGMA integrity_check;
! 116: SELECT length(x) FROM t1;
! 117: }
! 118: } {ok 20000}
! 119:
! 120: ##########################################################################
! 121: # Master journals.
! 122: #
! 123: db close
! 124: forcedelete test.db test2.db
! 125: do_test 8_3_names-4.0 {
! 126: sqlite3 db file:./test.db?8_3_names=1
! 127: db eval {
! 128: CREATE TABLE t1(x);
! 129: INSERT INTO t1 VALUES(1);
! 130: ATTACH 'file:./test2.db?8_3_names=1' AS db2;
! 131: CREATE TABLE db2.t2(y);
! 132: INSERT INTO t2 VALUES(2);
! 133: BEGIN;
! 134: INSERT INTO t1 VALUES(3);
! 135: INSERT INTO t2 VALUES(4);
! 136: COMMIT;
! 137: SELECT * FROM t1, t2 ORDER BY x, y
! 138: }
! 139: } {1 2 1 4 3 2 3 4}
! 140:
! 141:
! 142: ##########################################################################
! 143: # WAL mode.
! 144: #
! 145: ifcapable !wal {
! 146: finish_test
! 147: return
! 148: }
! 149: db close
! 150: forcedelete test.db
! 151: do_test 8_3_names-5.0 {
! 152: sqlite3 db file:./test.db?8_3_names=1
! 153: register_wholenumber_module db
! 154: db eval {
! 155: PRAGMA journal_mode=WAL;
! 156: CREATE TABLE t1(x);
! 157: CREATE VIRTUAL TABLE nums USING wholenumber;
! 158: INSERT INTO t1 SELECT value FROM nums WHERE value BETWEEN 1 AND 1000;
! 159: BEGIN;
! 160: UPDATE t1 SET x=x*2;
! 161: }
! 162: sqlite3 db2 file:./test.db?8_3_names=1
! 163: register_wholenumber_module db2
! 164: db2 eval {
! 165: BEGIN;
! 166: SELECT sum(x) FROM t1;
! 167: }
! 168: } {500500}
! 169:
! 170: do_test 8_3_names-5.1 {
! 171: file exists test.db-wal
! 172: } 0
! 173: do_test 8_3_names-5.2 {
! 174: file exists test.wal
! 175: } 1
! 176: do_test 8_3_names-5.3 {
! 177: file exists test.db-shm
! 178: } 0
! 179: do_test 8_3_names-5.4 {
! 180: file exists test.shm
! 181: } 1
! 182:
! 183:
! 184: do_test 8_3_names-5.5 {
! 185: db eval {
! 186: COMMIT;
! 187: SELECT sum(x) FROM t1;
! 188: }
! 189: } {1001000}
! 190: do_test 8_3_names-5.6 {
! 191: db2 eval {
! 192: SELECT sum(x) FROM t1;
! 193: }
! 194: } {500500}
! 195:
! 196:
! 197: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>