multiplex2.test 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # 2010 October 29
  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. set testdir [file dirname $argv0]
  13. source $testdir/tester.tcl
  14. source $testdir/malloc_common.tcl
  15. source $testdir/lock_common.tcl
  16. do_multiclient_test tn {
  17. code1 { catch { sqlite3_multiplex_initialize "" 0 } }
  18. code2 { catch { sqlite3_multiplex_initialize "" 0 } }
  19. code1 { db close }
  20. code2 { db2 close }
  21. code1 { sqlite3 db test.db -vfs multiplex }
  22. code2 { sqlite3 db2 test.db -vfs multiplex }
  23. code1 { sqlite3_multiplex_control db main chunk_size [expr 1024*1024] }
  24. code2 { sqlite3_multiplex_control db2 main chunk_size [expr 1024*1024] }
  25. sql1 {
  26. CREATE TABLE t1(a, b);
  27. INSERT INTO t1 VALUES(randomblob(10), randomblob(4000)); -- 1
  28. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 2
  29. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 4
  30. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 8
  31. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 16
  32. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 32
  33. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 64
  34. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 128
  35. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 256
  36. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 512
  37. SELECT count(*) FROM t1;
  38. }
  39. do_test multiplex-1.$tn.1 { sql1 { SELECT count(*) FROM t1 } } 512
  40. do_test multiplex-1.$tn.2 { sql2 { SELECT count(*) FROM t1 } } 512
  41. sql2 { DELETE FROM t1 ; VACUUM }
  42. do_test multiplex-1.$tn.3 { sql1 { SELECT count(*) FROM t1 } } 0
  43. sql1 {
  44. INSERT INTO t1 VALUES(randomblob(10), randomblob(4000)); -- 1
  45. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 2
  46. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 4
  47. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 8
  48. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 16
  49. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 32
  50. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 64
  51. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 128
  52. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 256
  53. INSERT INTO t1 SELECT randomblob(10), randomblob(4000) FROM t1; -- 512
  54. SELECT count(*) FROM t1;
  55. }
  56. do_test multiplex-1.$tn.4 { sql2 { SELECT count(*) FROM t1 } } 512
  57. }
  58. catch { sqlite3_multiplex_shutdown }
  59. finish_test