-C Updates\sto\sbuild\sscripts.\s\sAdded\sscripts\sfor\sbuilding\sFTS2\sshared\slibraries.\s(CVS\s4171)
-D 2007-07-20T13:42:26
+C Work\saround\san\sAFP\sfile\ssystem\sbyte-range\slocking\serror\scaused\sby\sopening\sand\sclosing\sa\ssecond\sfile\sdescriptor\son\sthe\sdatabase\sfile\sas\sRDWR\swhich\sclears\sthe\sexclusive\sbyte-range\slock\sand\sresults\sin\san\sfcntl\serror\swhen\sthe\sAFP\slocking\scode\sattempts\sto\sclear\sit\safterwards.\s\sThis\serror\sis\scaused\sby\sthe\stest\sharness\sand\sisn't\sa\sflaw\sin\sthe\ssqlite\sor\sits\simplementation\sof\sAFP\sfile\slocking.\s(CVS\s4172)
+D 2007-07-20T20:25:38
F Makefile.in 0c0e53720f658c7a551046442dd7afba0b72bfbe
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
F test/enc2.test 45710bacfa9df29720bc84c067dfdf8c8ddfb797
F test/enc3.test 9331988b9d72decec96995c90637e87b00d747a5
F test/exclusive.test 5bc520ba366ae3d242420af025ab64d465b04706
-F test/exclusive2.test 3496656375dc88e97d704c2d5d2c93d626cb7104
+F test/exclusive2.test 62d0559b4c0c8d4ab67237e46ea6b9cdf4be03e2
F test/exclusive3.test 0e49c35b7e7cb8e7280b4ce3f0359d30b207d2ff
F test/expr.test b8d63779b043dff06580fe4f3d85e5bebd067957
F test/filefmt.test 053b622009fbbb74dd37921ffad374d852c13cd8
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P 81a4dd07c1d7099461e9e6668433dac5d99b1f32
-R 1ad56d3b4d154f3cbb44ee4dac0e86c2
-U drh
-Z 43fa5edb181c3b479ee5d344b0b5c317
+P e269f6e9f6273210259a488c356f4996d75c6436
+R 7b6e3a55107b11156db70c2325cd0bc7
+U aswift
+Z 02d988ee93c619bd2875987f1ccb8b11
#***********************************************************************
# This file implements regression tests for SQLite library.
#
-# $Id: exclusive2.test,v 1.6 2007/06/16 14:43:52 danielk1977 Exp $
+# $Id: exclusive2.test,v 1.7 2007/07/20 20:25:38 aswift Exp $
set testdir [file dirname $argv0]
source $testdir/tester.tcl
return $ret
}
+proc readPagerChangeCounter {filename} {
+ set fd [open $filename RDONLY]
+ fconfigure $fd -translation binary -encoding binary
+
+ seek $fd 24
+ foreach {a b c d} [list 0 0 0 0] {}
+ binary scan [read $fd 4] cccc a b c d
+ set ret [expr ($a&0x000000FF)<<24]
+ incr ret [expr ($b&0x000000FF)<<16]
+ incr ret [expr ($c&0x000000FF)<<8]
+ incr ret [expr ($d&0x000000FF)<<0]
+
+ close $fd
+ return $ret
+}
+
+
proc t1sig {{db db}} {
execsql {SELECT count(*), md5sum(a) FROM t1} $db
}
do_test exclusive2-1.0 {
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {0}
#-----------------------------------------------------------------------
} {1}
do_test exclusive2-1.2 {
set ::sig [t1sig]
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {1}
do_test exclusive2-1.3 {
t1sig
expr {[t1sig db2] eq $::sig}
} 0
do_test exclusive2-1.6 {
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {2}
do_test exclusive2-1.7 {
pagerChangeCounter test.db 1
} {1}
do_test exclusive2-2.2 {
set ::sig [t1sig]
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {3}
do_test exclusive2-2.3 {
t1sig
INSERT INTO t1 VALUES(randstr(10, 400));
COMMIT;
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {1}
do_test exclusive2-3.1 {
execsql {
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {2}
do_test exclusive2-3.2 {
execsql {
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {3}
do_test exclusive2-3.3 {
execsql {
PRAGMA locking_mode = exclusive;
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {4}
do_test exclusive2-3.4 {
execsql {
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {4}
do_test exclusive2-3.5 {
execsql {
PRAGMA locking_mode = normal;
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {4}
do_test exclusive2-3.6 {
execsql {
INSERT INTO t1 VALUES(randstr(10, 400));
}
- pagerChangeCounter test.db
+ readPagerChangeCounter test.db
} {5}
finish_test