Index: build/test/publish-tests ================================================================== --- build/test/publish-tests +++ build/test/publish-tests @@ -281,11 +281,11 @@ puts $fd " $kitdesc" } puts $fd " [pretty_print_size [file size [file join $WEBDIR $kitinfo(fullfile)]]]" puts $fd " $statustext" puts $fd " ([pretty_print_size [file size [file join $WEBDIR $kitinfo(buildfile)]]])" - puts $fd " [join $failedtestshtml {, }]" + puts $fd " [join $failedtestshtml {,
}]" puts $fd " " } } puts $fd " " Index: build/test/test ================================================================== --- build/test/test +++ build/test/test @@ -59,10 +59,12 @@ runnable="1" iszip="0" statictk="0" notk="0" nomk4="0" + xcompile="0" + kitruncmd="" # Handle base configuration os="$(uname -s | dd conv=lcase 2>/dev/null)" cpu="$(uname -m | dd conv=lcase 2>/dev/null)" case "${kit}" in @@ -81,21 +83,23 @@ notk="1" kit="${os}-${cpu}-min-static" ;; win32|win32-*) kitcreator="./build/make-kit-win32" - runnable="0" + xcompile="1" + kitruncmd="wine" ;; linux-arm-min) kitcreator="./build/make-kit-arm" runnable="0" + xcompile="1" notk="1" iszip="1" ;; esac - if [ "${runnable}" != "1" ]; then + if [ "${xcompile}" != "0" ]; then kit="${kit}-xcompile" fi # Handle additional configuration tempkit="-${kit}-" @@ -296,16 +300,27 @@ for testscp in "${TESTDIR}"/tests/*.tcl; do testscp_tag="$(basename "${testscp}" .tcl)" testscppre="$(dirname "${testscp}")/${testscp_tag}.sh" scplogfile="${outputname}-${testscp_tag}.log" + # If a command is required to start the kit, prepare to kill it + # in case of timeout. + kitrunkillpid="" + if [ -n "${kitruncmd}" ]; then + ( + sleep 30 + killall "$(basename "${outputname}")" >/dev/null 2>/dev/null + ) >/dev/null 2>/dev/null & + kitrunkillpid="$!" + fi + ( if [ -f "${testscppre}" ]; then . "${testscppre}" fi - "${outputname}" "${testscp}" "${outputname}" "${kit}" "${version}" + ${kitruncmd} "${outputname}" "${testscp}" "${outputname}" "${kit}" "${version}" ) > "${scplogfile}" 2>&1 if [ "$?" != "0" ]; then echo "Script failed: ${testscp_tag} on ${version}/${kit}" >&2 @@ -313,10 +328,15 @@ echo "${testscp_tag}: FAIL" >> "${testresultslog}" continue fi + + # Kill the watchdog for this iteration + if [ -n "${kitrunkillpid}" ]; then + kill -9 "${kitrunkillpid}" >/dev/null 2>/dev/null + fi echo "${testscp_tag}: PASS" >> "${testresultslog}" rm -f "${scplogfile}" done Index: build/test/tests/02-nameofexe.tcl ================================================================== --- build/test/tests/02-nameofexe.tcl +++ build/test/tests/02-nameofexe.tcl @@ -3,7 +3,15 @@ set outputname [lindex $argv 0] if {[info nameofexecutable] == $outputname} { exit 0 } + +# Under Wine, the drive letter is added +if {[info nameofexecutable] == "Z:$outputname"} { + exit 0 +} + +puts "Info NameOfExe: [info nameofexecutable]" +puts "Expected: $outputname" exit 1 Index: build/test/tests/05-locale.tcl ================================================================== --- build/test/tests/05-locale.tcl +++ build/test/tests/05-locale.tcl @@ -2,10 +2,15 @@ # Tcl 8.4 doesn't support fetching the system encoding from the environment if {$tcl_version == "8.4"} { exit 0 } + +# This test does not yet support when using Win32 +if {$::tcl_platform(platform) == "windows"} { + exit 0 +} if {[encoding system] == "utf-8"} { exit 0 }