]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Add additional randomness to crash tests. (CVS 4694)
authordrh <drh@noemail.net>
Tue, 8 Jan 2008 15:18:52 +0000 (15:18 +0000)
committerdrh <drh@noemail.net>
Tue, 8 Jan 2008 15:18:52 +0000 (15:18 +0000)
FossilOrigin-Name: 3ccce1f58be46787f8a35f0fa6d738ed126c0f07

manifest
manifest.uuid
test/crash.test
test/tester.tcl

index 02b0ee81f492d8b6404cce88ee0d1352db63e2b6..16e81f939724720f299ccc722f1b57e0867bcf53 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Progress\stoward\sregisterification\sof\sthe\sconstraint\schecking\slogic\sfor\nINSERT\sand\sUPDATE.\s(CVS\s4693)
-D 2008-01-08T02:57:56
+C Add\sadditional\srandomness\sto\scrash\stests.\s(CVS\s4694)
+D 2008-01-08T15:18:52
 F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
 F Makefile.in 30789bf70614bad659351660d76b8e533f3340e9
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -239,7 +239,7 @@ F test/corrupt.test 18c7a995b1af76a8c8600b996257f2c7b7bff083
 F test/corrupt2.test 572f8df0303d0ce63ddad5c5c9101a83a345ae46
 F test/corrupt3.test 263e8bb04e2728df832fddf6973cf54c91db0c32
 F test/corrupt4.test acdb01afaedf529004b70e55de1a6f5a05ae7fff
-F test/crash.test e8b9385771789851f030045c68fdf369ca030fc6
+F test/crash.test 1b6ac8410689ff78028887f445062dc897c9ac89
 F test/crash2.test 26d7a4c5520201e5de2c696ea51ab946b59dc0e9
 F test/crash3.test 0b09687ae1a3ccbcefdfaeb4b963e26e36255d76
 F test/crashtest1.c 09c1c7d728ccf4feb9e481671e29dda5669bbcc2
@@ -443,7 +443,7 @@ F test/table.test 13b1c2e2fb4727b35ee1fb7641fc469214fd2455
 F test/tableapi.test 92651a95c23cf955e92407928e640536402fa3cc
 F test/tclsqlite.test 3fac87cb1059c46b8fa8a60b553f4f1adb0fb6d9
 F test/temptable.test 19b851b9e3e64d91e9867619b2a3f5fffee6e125
-F test/tester.tcl ac4dace5f901b1ba5586b209f533f115d423985c
+F test/tester.tcl cfe051326b216c5a6ade6fa6e4d2ee4fd460a0aa
 F test/thread001.test 8fbd9559da0bbdc273e00318c7fd66c162020af7
 F test/thread002.test 2c4ad2c386f60f6fe268cd91c769ee35b3c1fd0b
 F test/thread1.test 776c9e459b75ba905193b351926ac4019b049f35
@@ -604,7 +604,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P aa48867cfa04da265b906e5b583bc7ac6b6a1157
-R af4f73c6bffdbedd3861a3c5eb6d920e
+P b9bf509e39f5ac38c2149d2a648f68e5df5ae9e3
+R f86b7697fbcfb346b78b785f78b0e5e6
 U drh
-Z 313f66697e8ae592eab31fdd061363d6
+Z 70a8e75efdd2439fff3e31be8bea7e10
index bf6b8b32fb1d017008cb443ccb2d2e2fc194aa5f..3a2f8b985b11085f72453b1d6a6ab2c15dfec796 100644 (file)
@@ -1 +1 @@
-b9bf509e39f5ac38c2149d2a648f68e5df5ae9e3
\ No newline at end of file
+3ccce1f58be46787f8a35f0fa6d738ed126c0f07
\ No newline at end of file
index 6a216be9b50af032b07b3a64cab24e9f91fa9036..42f41a36e43a57be9fa6cf8db9502c92ed25866c 100644 (file)
@@ -17,7 +17,7 @@
 # These routines allow us to simulate the kind of file damage that 
 # occurs after a power failure.
 #
-# $Id: crash.test,v 1.26 2007/10/09 08:29:32 danielk1977 Exp $
+# $Id: crash.test,v 1.27 2008/01/08 15:18:52 drh Exp $
 
 set testdir [file dirname $argv0]
 source $testdir/tester.tcl
@@ -67,14 +67,17 @@ do_test crash-1.1 {
   set ::sig [signature]
   expr 0
 } {0}
-do_test crash-1.2 {
-  crashsql -delay 1 -file test.db-journal {
-    DELETE FROM abc WHERE a = 1;
-  }
-} {1 {child process exited abnormally}}
-do_test crash-1.3 {
-  signature
-} $::sig
+for {set i 0} {$i<10} {incr i} {
+  set seed [expr {int(abs(rand()*10000))}]
+  do_test crash-1.2.$i {
+    crashsql -delay 1 -file test.db-journal -seed $seed {
+      DELETE FROM abc WHERE a = 1;
+    }
+  } {1 {child process exited abnormally}}
+  do_test crash-1.3.$i {
+    signature
+  } $::sig
+}
 do_test crash-1.4 {
   crashsql -delay 1 -file test.db {
     DELETE FROM abc WHERE a = 1;
@@ -185,7 +188,8 @@ do_test crash-3.0 {
 for {set i 1} {$i < $repeats} {incr i} {
   set sig [signature]
   do_test crash-3.$i.1 {
-     crashsql -delay [expr $i%5 + 1] -file test.db-journal "
+     set seed [expr {int(abs(rand()*10000))}]
+     crashsql -delay [expr $i%5 + 1] -file test.db-journal -seed $seed "
        BEGIN;
        SELECT random() FROM abc LIMIT $i;
        INSERT INTO abc VALUES(randstr(10,10), 0, 0);
@@ -223,10 +227,11 @@ ifcapable attach {
   
   set fin 0
   for {set i 1} {$i<$repeats} {incr i} {
+    set seed [expr {int(abs(rand()*10000))}]
     set sig [signature]
     set sig2 [signature2]
     do_test crash-4.1.$i.1 {
-       set c [crashsql -delay $i -file test.db-journal "
+       set c [crashsql -delay $i -file test.db-journal -seed $::seed "
          ATTACH 'test2.db' AS aux;
          BEGIN;
          SELECT randstr($i,$i) FROM abc LIMIT $i;
@@ -253,11 +258,12 @@ ifcapable attach {
   set i 0
   set fin 0
   while {[incr i]} {
+    set seed [expr {int(abs(rand()*10000))}]
     set sig [signature]
     set sig2 [signature2]
     set ::fin 0
     do_test crash-4.2.$i.1 {
-       set c [crashsql -delay $i -file test2.db-journal "
+       set c [crashsql -delay $i -file test2.db-journal -seed $::seed "
          ATTACH 'test2.db' AS aux;
          BEGIN;
          SELECT randstr($i,$i) FROM abc LIMIT $i;
index c377fa155e17b21c306314e1211e25d73b7ead0d..aeb8f8a5d99c4e8c4c29834d5153ac042a93ebcd 100644 (file)
@@ -11,7 +11,7 @@
 # This file implements some common TCL routines used for regression
 # testing the SQLite library
 #
-# $Id: tester.tcl,v 1.96 2008/01/07 19:20:25 drh Exp $
+# $Id: tester.tcl,v 1.97 2008/01/08 15:18:52 drh Exp $
 
 
 set tcl_precision 15
@@ -352,6 +352,7 @@ proc crashsql {args} {
 
   set blocksize ""
   set crashdelay 1
+  set prngseed 0
   set crashfile ""
   set dc ""
   set sql [lindex $args end]
@@ -362,6 +363,7 @@ proc crashsql {args} {
     set z2 [lindex $args [expr $ii+1]]
 
     if     {$n>1 && [string first $z -delay]==0}     {set crashdelay $z2} \
+    elseif {$n>1 && [string first $z -seed]==0}      {set prngseed $z2} \
     elseif {$n>1 && [string first $z -file]==0}      {set crashfile $z2}  \
     elseif {$n>1 && [string first $z -blocksize]==0} {set blocksize "-s $z2" } \
     elseif {$n>1 && [string first $z -characteristics]==0} {set dc "-c {$z2}" } \
@@ -386,6 +388,11 @@ proc crashsql {args} {
   puts $f {db eval {SELECT * FROM sqlite_master;}}
   puts $f {set bt [btree_from_db db]}
   puts $f {btree_set_cache_size $bt 10}
+  if {$prngseed} {
+    set seed [expr {$prngseed%10007+1}]
+    # puts seed=$seed
+    puts $f "db eval {SELECT randomblob($seed)}"
+  }
 
   puts $f "db eval {"
   puts $f   "$sql"