Annotation of embedaddon/sqlite3/test/tkt-f7b4edec.test, revision 1.1
1.1 ! misho 1: # 2011 March 18
! 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: # This file implements regression tests for SQLite library.
! 12: #
! 13: # This file implements tests to verify that ticket
! 14: # [f7b4edece25c994857dc139207f55a53c8319fae] has been fixed.
! 15: #
! 16:
! 17: set testdir [file dirname $argv0]
! 18: source $testdir/tester.tcl
! 19:
! 20: # Open two database connections to the same database file in
! 21: # shared cache mode. Create update hooks that will fire on
! 22: # each connection.
! 23: #
! 24: db close
! 25: set ::enable_shared_cache [sqlite3_enable_shared_cache 1]
! 26: sqlite3 db1 test.db
! 27: sqlite3 db2 test.db
! 28: unset -nocomplain HOOKS
! 29: set HOOKS {}
! 30: proc update_hook {args} { lappend ::HOOKS $args }
! 31: db1 update_hook update_hook
! 32: db2 update_hook update_hook
! 33:
! 34: # Create a prepared statement
! 35: #
! 36: do_test tkt-f7b4edec-1 {
! 37: execsql { CREATE TABLE t1(x, y); } db1
! 38: execsql { INSERT INTO t1 VALUES(1, 2) } db1
! 39: set ::HOOKS
! 40: } {{INSERT main t1 1}}
! 41:
! 42: # In the second database connection cause the schema to be reparsed
! 43: # without changing the schema cookie.
! 44: #
! 45: set HOOKS {}
! 46: do_test tkt-f7b4edec-2 {
! 47: execsql {
! 48: BEGIN;
! 49: DROP TABLE t1;
! 50: CREATE TABLE t1(x, y);
! 51: ROLLBACK;
! 52: } db2
! 53: set ::HOOKS
! 54: } {}
! 55:
! 56: # Rerun the prepared statement that was created prior to the
! 57: # schema reparse. Verify that the update-hook gives the correct
! 58: # output.
! 59: #
! 60: set HOOKS {}
! 61: do_test tkt-f7b4edec-3 {
! 62: execsql { INSERT INTO t1 VALUES(1, 2) } db1
! 63: set ::HOOKS
! 64: } {{INSERT main t1 2}}
! 65:
! 66: # Be sure to restore the original shared-cache mode setting before
! 67: # returning.
! 68: #
! 69: db1 close
! 70: db2 close
! 71: sqlite3_enable_shared_cache $::enable_shared_cache
! 72:
! 73:
! 74: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>