tkt3929.test 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # 2009 June 23
  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. # Tests to verify ticket #3929 is fixed.
  13. #
  14. # $Id: tkt3929.test,v 1.1 2009/06/23 11:53:09 danielk1977 Exp $
  15. set testdir [file dirname $argv0]
  16. source $testdir/tester.tcl
  17. ifcapable {!trigger} {
  18. finish_test
  19. return
  20. }
  21. do_test tkt3929-1.0 {
  22. execsql {
  23. PRAGMA page_size = 1024;
  24. CREATE TABLE t1(a, b);
  25. CREATE INDEX i1 ON t1(a, b);
  26. CREATE TRIGGER t1_t1 AFTER INSERT ON t1 BEGIN
  27. UPDATE t1 SET b = 'value: ' || a WHERE t1.rowid = new.rowid;
  28. END;
  29. }
  30. } {}
  31. do_test tkt3929-1.1 {
  32. execsql {
  33. INSERT INTO t1(a) VALUES(1);
  34. INSERT INTO t1(a) VALUES(2);
  35. SELECT * FROM t1;
  36. }
  37. } {1 {value: 1} 2 {value: 2}}
  38. # Before it was fixed, the following provoked the bug, causing either an
  39. # assertion failure or a "database is malformed" error.
  40. #
  41. do_test tkt3930-1.2 {
  42. for {set i 3} {$i < 100} {incr i} {
  43. execsql { INSERT INTO t1(a) VALUES($i) }
  44. }
  45. } {}
  46. integrity_check tkt3930-1.3
  47. finish_test