Update wapptest.tcl to use a simpler slave script. And to leave scripts wapptest_configure.sh and wapptest_make.sh in each test directory.

FossilOrigin-Name: 07e527d781838412b2a434e64baaa49cbf7410a51c7393f54adc7b8eaffd5229
This commit is contained in:
dan 2019-04-30 20:43:10 +00:00
parent c589acbc50
commit 919458923d
3 changed files with 102 additions and 35 deletions

View File

@ -1,5 +1,5 @@
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
@ -1656,7 +1656,7 @@ F test/walslow.test c05c68d4dc2700a982f89133ce103a1a84cc285f
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
@ -1822,7 +1822,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
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

View File

@ -1 +1 @@
1dbbb0101e8213b92b9a4c78c0fd2f9d0240a8ea3b40dff1033d1b8d71fb04ef
07e527d781838412b2a434e64baaa49cbf7410a51c7393f54adc7b8eaffd5229

View File

@ -37,9 +37,6 @@ proc wapptest_init {} {
# 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":
@ -52,28 +49,20 @@ proc wapptest_init {} {
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]} {
@ -239,6 +228,88 @@ proc slave_fileevent {name} {
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
@ -275,15 +346,9 @@ proc do_some_stuff {} {
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)" }
@ -303,8 +368,9 @@ proc do_some_stuff {} {
}
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
}