]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Update wapptest.tcl to use a simpler slave script. And to leave scripts wapptest_conf...
authordan <dan@noemail.net>
Tue, 30 Apr 2019 20:43:10 +0000 (20:43 +0000)
committerdan <dan@noemail.net>
Tue, 30 Apr 2019 20:43:10 +0000 (20:43 +0000)
FossilOrigin-Name: 07e527d781838412b2a434e64baaa49cbf7410a51c7393f54adc7b8eaffd5229

manifest
manifest.uuid
test/wapptest.tcl

index 18cfa0b238176b05e5227dc84dfbac946dd17340..52011015d35420e5d4e140440f457754d1eaff95 100644 (file)
--- a/manifest
+++ b/manifest
@@ -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
index 3189f67ccca1353753c820e6516dbdbb3d566024..0f16a1f690cac747c80eb2b608531a9acb344ade 100644 (file)
@@ -1 +1 @@
-1dbbb0101e8213b92b9a4c78c0fd2f9d0240a8ea3b40dff1033d1b8d71fb04ef
\ No newline at end of file
+07e527d781838412b2a434e64baaa49cbf7410a51c7393f54adc7b8eaffd5229
\ No newline at end of file
index d12d8e7222554df19010705a83aa68fd11a0e934..be6271a9c0d066d0d22f6773e582d265e453c5cc 100755 (executable)
@@ -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
       }