-C Fix\sa\sproblem\sallowing\sa\sTable\sobject\sto\sbe\sdeleted\sfrom\swithin\sa\scall\sto\sthe\sxDestroy\smethod\sof\sthe\sassociated\svirtual\stable,\scausing\sa\suse-after-free\serror.
-D 2019-04-30T15:36:32.034
+C Update\swapptest.tcl\sto\suse\sa\ssimpler\sslave\sscript.\sAnd\sto\sleave\sscripts\swapptest_configure.sh\sand\swapptest_make.sh\sin\seach\stest\sdirectory.
+D 2019-04-30T20:43:10.531
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F test/walthread.test 14b20fcfa6ae152f5d8e12f5dc8a8a724b7ef189f5d8ef1e2ceab79f2af51747
F test/walvfs.test c0faffda13d045a96dfc541347886bb1a3d6f3205857fc98e683edfab766ea88
F test/wapp.tcl b440cd8cf57953d3a49e7ee81e6a18f18efdaf113b69f7d8482b0710a64566ec
-F test/wapptest.tcl 78aff97afe76fd9728cf5f84710a772412735bc68a612b4789279072177a424e x
+F test/wapptest.tcl 7cdac27ab7945b96719aea1afdeac5922b38657d488c676b91fff173552087e0 x
F test/where.test 0607caa5a1fbfe7b93b95705981b463a3a0408038f22ae6e9dc11b36902b0e95
F test/where2.test 478d2170637b9211f593120648858593bf2445a1
F test/where3.test 2341a294e17193a6b1699ea7f192124a5286ca6acfcc3f4b06d16c931fbcda2c
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P b6d7d42b7426622a26b67809cd1f21285fea120aa1897377b9946840463b41f1
-R 6adb84036e04ae37c244138c75843359
+P 1dbbb0101e8213b92b9a4c78c0fd2f9d0240a8ea3b40dff1033d1b8d71fb04ef
+R f8f2ef19afa4c11d5a1036e92efd9ad2
+T +closed 9e849f25029b05b44220acd881356bcade9ba76f9d1308556850cd4d6b6a94d7
U dan
-Z bb2c7686d9426e0e670050982240668c
+Z 8ade123def7ea1f2c0a2e92932d92c90
# The root of the SQLite source tree.
set G(srcdir) [file dirname [file dirname [info script]]]
- # releasetest.tcl script
- set G(releaseTest) [file join [file dirname [info script]] releasetest.tcl]
-
set G(sqlite_version) "unknown"
# Either "config", "running" or "stopped":
append G(host) " $::tcl_platform(machine) $::tcl_platform(byteOrder)"
}
-# Check to see if there are uncommitted changes in the SQLite source
-# directory. Return true if there are, or false otherwise.
+# Generate the text for the box at the top of the UI. The current SQLite
+# version, according to fossil, along with a warning if there are
+# uncommitted changes in the checkout.
#
-proc check_uncommitted {} {
- global G
- set ret 0
- set pwd [pwd]
- cd $G(srcdir)
- if {[catch {exec fossil changes} res]==0 && [string trim $res]!=""} {
- set ret 1
- }
- cd $pwd
- return $ret
-}
-
proc generate_fossil_info {} {
global G
set pwd [pwd]
cd $G(srcdir)
- if {[catch {exec fossil info} r1]} return
- if {[catch {exec fossil changes} r2]} return
+ set rc [catch {
+ set r1 [exec fossil info]
+ set r2 [exec fossil changes]
+ }]
cd $pwd
+ if {$rc} return
foreach line [split $r1 "\n"] {
if {[regexp {^checkout: *(.*)$} $line -> co]} {
do_some_stuff
}
+proc wapptest_slave_script {} {
+ global G
+ set res {
+ proc readfile {filename} {
+ set fd [open $filename]
+ set data [read $fd]
+ close $fd
+ return $data
+ }
+ }
+
+ if {$G(msvc)==0} {
+ append res {
+ set cfg [readfile wapptest_configure.sh]
+ set rc [catch { exec {*}$cfg >& test.log } msg]
+ if {$rc==0} {
+ set make [readfile wapptest_make.sh]
+ catch { exec {*}$make >>& test.log }
+ }
+ }
+ } else {
+ append res {
+ set make [readfile wapptest_make.sh]
+ catch { exec {*}$make >>& test.log }
+ }
+ }
+
+ set res
+}
+
+
+# Launch a slave process to run a test.
+#
+proc slave_launch {
+ name wtcl title dir configOpts testtarget makeOpts cflags opts
+} {
+ global G
+
+ catch { file mkdir $dir } msg
+ foreach f [glob -nocomplain [file join $dir *]] {
+ catch { file delete -force $f }
+ }
+
+ # Write the configure command to wapptest_configure.sh. This file
+ # is empty if using MSVC - MSVC does not use configure.
+ #
+ set fd1 [open [file join $dir wapptest_configure.sh] w]
+ if {$G(msvc)==0} {
+ puts $fd1 "[file join .. $G(srcdir) configure] $wtcl $configOpts"
+ }
+ close $fd1
+
+ # Write the make command to wapptest_make.sh. Using nmake for MSVC and
+ # make for all other systems.
+ #
+ set makecmd "make"
+ if {$G(msvc)} {
+ set nativedir [file nativename $G(srcdir)]
+ set nativedir [string map [list "\\" "\\\\"] $nativedir]
+ set makecmd "nmake /f [file join $nativedir Makefile.msc] TOP=$nativedir"
+ }
+ set fd2 [open [file join $dir wapptest_make.sh] w]
+ puts $fd2 "$makecmd $makeOpts $testtarget \"CFLAGS=$cflags\" \"OPTS=$opts\""
+ close $fd2
+
+ # Write the wapptest_run.tcl script to the test directory. To run the
+ # commands in the other two files.
+ #
+ set fd3 [open [file join $dir wapptest_run.tcl] w]
+ puts $fd3 [wapptest_slave_script]
+ close $fd3
+
+ set pwd [pwd]
+ cd $dir
+ set fd [open "|[info nameofexecutable] wapptest_run.tcl" r+]
+ cd $pwd
+
+ set G(test.$name.channel) $fd
+ fconfigure $fd -blocking 0
+ fileevent $fd readable [list slave_fileevent $name]
+}
+
proc do_some_stuff {} {
global G
if { ![info exists G(test.$name.channel)]
&& ![info exists G(test.$name.done)]
} {
+
set target [dict get $j target]
set G(test.$name.start) [clock seconds]
- set fd [open "|[info nameofexecutable] $G(releaseTest) --slave" r+]
- set G(test.$name.channel) $fd
- fconfigure $fd -blocking 0
- fileevent $fd readable [list slave_fileevent $name]
-
- puts $fd [list 0 $G(msvc) 0 $G(keep)]
-
set wtcl ""
if {$G(tcl)!=""} { set wtcl "--with-tcl=$G(tcl)" }
}
set L [make_test_suite $G(msvc) $wtcl $name $target $opts]
- puts $fd $L
- flush $fd
+ set G(test.$name.log) [file join [lindex $L 1] test.log]
+ slave_launch $name $wtcl {*}$L
+
set G(test.$name.log) [file join [lindex $L 1] test.log]
incr nLaunch -1
}