]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add tests to "permutations.test coverage-pager" to cover uncovered branches.
authordan <dan@noemail.net>
Sat, 6 Apr 2013 11:03:09 +0000 (11:03 +0000)
committerdan <dan@noemail.net>
Sat, 6 Apr 2013 11:03:09 +0000 (11:03 +0000)
FossilOrigin-Name: 07a0e4e9820a85bf1690214fef3577866c763f92

manifest
manifest.uuid
test/pager1.test
test/pager2.test
test/pagerfault.test

index 2b89f591ab7f5ea9bf277763a29ec36393bb41bb..7e72d182cd97add1cf1425605ddb7f7c1deea292 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improve\sthe\scode\scoverage\sof\s"permutations.test\scoverage-pager".
-D 2013-04-05T20:40:43.227
+C Add\stests\sto\s"permutations.test\scoverage-pager"\sto\scover\suncovered\sbranches.
+D 2013-04-06T11:03:09.144
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in aafa71d66bab7e87fb2f348152340645f79f0244
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -651,10 +651,10 @@ F test/orderby2.test bc11009f7cd99d96b1b11e57b199b00633eb5b04
 F test/orderby3.test 8619d06a3debdcd80a27c0fdea5c40b468854b99
 F test/orderby4.test 4d39bfbaaa3ae64d026ca2ff166353d2edca4ba4
 F test/oserror.test 50417780d0e0d7cd23cf12a8277bb44024765df3
-F test/pager1.test 622bfaea80604a96010f35256a4fc22fce584e95
-F test/pager2.test 745b911dde3d1f24ae0870bd433dfa83d7c658c1
+F test/pager1.test 134144862f6a98f862dc2edda1b10ff499141bfa
+F test/pager2.test 67b8f40ae98112bcdba1f2b2d03ea83266418c71
 F test/pager3.test 3856d9c80839be0668efee1b74811b1b7f7fc95f
-F test/pagerfault.test 636c01bdbdb2bb2baf68532d6c4ef4c633022743
+F test/pagerfault.test bba948be0564254b823ec6ca1fd95fbbfb0839a3
 F test/pagerfault2.test 1f79ea40d1133b2683a2f811b00f2399f7ec2401
 F test/pagerfault3.test f16e2efcb5fc9996d1356f7cbc44c998318ae1d7
 F test/pageropt.test 32cb5a6ed7ccddf8e8c842cb44240bd9340223ce
@@ -1044,7 +1044,7 @@ F tool/vdbe-compress.tcl f12c884766bd14277f4fcedcae07078011717381
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
 F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P a107f75d93b8acd3403d8473a75137378041a833
-R 6d11c98ab18b87c4b8798ffe987d9d38
+P b095e2cdb61ca8487255687f58fb1024d40f3986
+R bbe90127c799120f0deb57d78c345328
 U dan
-Z 50aa2590d101ae076870fa94f81e976a
+Z 0a43fd582a2aa921b5f65df032585318
index 8dbe787aae358fa1ce42764d8fa4c55496478dfb..10faadaeadee3b5d9764b1373cd6ccb96eae7fb7 100644 (file)
@@ -1 +1 @@
-b095e2cdb61ca8487255687f58fb1024d40f3986
\ No newline at end of file
+07a0e4e9820a85bf1690214fef3577866c763f92
\ No newline at end of file
index 22c84d55d06c360700c65b7a7d69c4e8d2dd051d..ab0ec6752667d7823f57f40b005021e7350b1ef7 100644 (file)
@@ -2245,7 +2245,6 @@ do_test pager1-25-1 {
   }
   db close
 } {}
-breakpoint
 do_test pager1-25-2 {
   faultsim_delete_and_reopen
   execsql {
@@ -2543,7 +2542,6 @@ foreach {tn pragma strsize} {
     CREATE TABLE t1(a, b);
     INSERT INTO t1 VALUES(1, 2);
   }
-  breakpoint
   do_execsql_test 34.$tn.2 {
     BEGIN;
     INSERT INTO t1 VALUES(2, a_string($strsize));
@@ -2605,14 +2603,21 @@ foreach {tn uri} {
   do_test 37.$tn {
     catch { db close }
     sqlite3_shutdown
-      sqlite3_config_uri 1
-      sqlite3 db $uri
+    sqlite3_config_uri 1
+    sqlite3 db $uri
+
     db eval {
       CREATE TABLE t1(x);
       INSERT INTO t1 VALUES(1);
       SELECT * FROM t1;
     }
   } {1}
+
+  do_execsql_test 37.$tn.2 {
+    VACUUM;
+    SELECT * FROM t1;
+  } {1}
+
   db close
   sqlite3_shutdown
   sqlite3_config_uri 0
@@ -2730,6 +2735,84 @@ do_test 41.2 {
     PRAGMA integrity_check;
   }
 } {ok}
+db close
+tv delete
+
+set pending_prev [sqlite3_test_control_pending_byte 0x1000000]
+do_test 42.1 {
+  reset_db
+  execsql {
+    CREATE TABLE t1(x, y);
+    INSERT INTO t1 VALUES(randomblob(200), randomblob(200));
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+  }
+  db close
+  sqlite3_test_control_pending_byte 0x0010000
+  sqlite3 db test.db
+  db eval { PRAGMA mmap_limit = 0 }
+  catchsql { SELECT sum(length(y)) FROM t1 }
+} {1 {database disk image is malformed}}
+do_test 42.2 {
+  reset_db
+  execsql {
+    CREATE TABLE t1(x, y);
+    INSERT INTO t1 VALUES(randomblob(200), randomblob(200));
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+  }
+  db close
 
+  testvfs tv -default 1
+  tv sectorsize 16384;
+  tv devchar [list]
+  sqlite3 db test.db -vfs tv
+  execsql { UPDATE t1 SET x = randomblob(200) }
+} {}
+db close
+tv delete
+sqlite3_test_control_pending_byte $pending_prev
+
+do_test 43.1 {
+  reset_db
+  execsql {
+    CREATE TABLE t1(x, y);
+    INSERT INTO t1 VALUES(1, 2);
+    CREATE TABLE t2(x, y);
+    INSERT INTO t2 VALUES(1, 2);
+    CREATE TABLE t3(x, y);
+    INSERT INTO t3 VALUES(1, 2);
+  }
+  db close
+  sqlite3 db test.db
+
+  db eval { PRAGMA mmap_limit = 0 }
+  db eval { SELECT * FROM t1 }
+  sqlite3_db_status db CACHE_MISS 0
+} {0 2 0}
+
+do_test 43.2 {
+  db eval { SELECT * FROM t2 }
+  sqlite3_db_status db CACHE_MISS 1
+} {0 3 0}
+
+do_test 43.3 {
+  db eval { SELECT * FROM t3 }
+  sqlite3_db_status db CACHE_MISS 0
+} {0 1 0}
 
 finish_test
+
index fa5f7b9611bc2b56b7c263c822360e219bd4b442..0e2b33b8339562fb2c7ccf4339123296e464c6c8 100644 (file)
@@ -118,7 +118,6 @@ tv delete
 
 
 #-------------------------------------------------------------------------
-#
 # pager2-2.1: Test a ROLLBACK with journal_mode=off.
 # pager2-2.2: Test shrinking the database (auto-vacuum) with 
 #             journal_mode=off
@@ -148,4 +147,22 @@ do_test pager2-2.2 {
   file size test.db
 } {3072}
 
+#-------------------------------------------------------------------------
+# Test that shared in-memory databases seem to work.
+#
+db close
+do_test pager2-3.1 {
+  forcedelete test.db
+  sqlite3_shutdown
+  sqlite3_config_uri 1
+
+  sqlite3 db1 {file:test.db?mode=memory&cache=shared}
+  sqlite3 db2 {file:test.db?mode=memory&cache=shared}
+  sqlite3 db3 test.db
+
+  db1 eval { CREATE TABLE t1(a, b) }
+  db2 eval { INSERT INTO t1 VALUES(1, 2) }
+  list [catch { db3 eval { INSERT INTO t1 VALUES(3, 4) } } msg] $msg
+} {1 {no such table: t1}}
+
 finish_test
index 440909d1a12317cb34b5ccc0ba28436b671a7c69..9b005c7a03dcddf9ac109fd4e688c0f3d70a0cf3 100644 (file)
@@ -1483,6 +1483,67 @@ do_faultsim_test pagerfault-34 -prep {
   faultsim_test_result {0 {}}
 } 
 
+do_test pagerfault-35-pre {
+  faultsim_delete_and_reopen
+  execsql {
+    CREATE TABLE t1(x PRIMARY KEY, y);
+    INSERT INTO t1 VALUES(randomblob(200), randomblob(200));
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+  }
+  faultsim_save_and_close
+} {}
+testvfs tv -default 1
+tv sectorsize 8192;
+tv devchar [list]
+do_faultsim_test pagerfault-35 -prep {
+  faultsim_restore_and_reopen
+} -body {
+  execsql { UPDATE t1 SET x=randomblob(200) }
+} -test {
+  faultsim_test_result {0 {}}
+}
+catch {db close}
+tv delete
+
+sqlite3_shutdown
+sqlite3_config_uri 1
+do_test pagerfault-36-pre {
+  faultsim_delete_and_reopen
+  execsql {
+    CREATE TABLE t1(x PRIMARY KEY, y);
+    INSERT INTO t1 VALUES(randomblob(200), randomblob(200));
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+    INSERT INTO t1 SELECT randomblob(200), randomblob(200) FROM t1;
+  }
+  faultsim_save_and_close
+} {}
+do_faultsim_test pagerfault-36 -prep {
+  faultsim_restore
+  sqlite3 db file:test.db?cache=shared
+  sqlite3 db2 file:test.db?cache=shared
+  db2 eval {
+    BEGIN;
+    SELECT count(*) FROM sqlite_master;
+  }
+  db eval {
+    PRAGMA cache_size = 1;
+    BEGIN;
+      UPDATE t1 SET x = randomblob(200);
+  }
+} -body {
+  execsql ROLLBACK db
+} -test {
+  catch { db eval {UPDATE t1 SET x = randomblob(200)} }
+  faultsim_test_result {0 {}}
+  catch { db close }
+  catch { db2 close }
+}
+
+sqlite3_shutdown
+sqlite3_config_uri 0
 
 finish_test