#591 Add command to load tcltest in subinterpreter

open
Don Porter
5
2009-07-12
2009-07-12
Donal K. Fellows
No

It would be really nice if there was a command that loaded tcltest into a child interpreter and set up the links in it so that summary information in the child interp gets reported as part of the overall test run. This would reduce the amount of output produced by Tcl test runs (specifically init.test and pkg.test). I add here some code I've been experimenting with to do this (not as a patch unfortunately, but still...):

proc tcltest::ReportedFromSlave
interp alias $childInterp tcltest::ReportToMaster {} apply {
{total passed skipped failed because newfiles}
{
variable numTests
variable skippedBecause
variable createdNewFiles
incr numTests(Total) $total
incr numTests(Passed) $passed
incr numTests(Skipped) $skipped
incr numTests(Failed) $failed
foreach {constraint count} $because {
incr skippedBecause($constraint) $count
}
foreach {testfile created} $newfiles {
lappend createdNewFiles($testfile) {*}$created
}
return
}
::tcltest
}
interp eval $i {
proc tcltest::cleanupTestsHook {} {
variable numTests
variable skippedBecause
variable createdNewFiles
variable testSingleFile
ReportToMaster $numTests(Total) $numTests(Passed) \ $numTests(Skipped) $numTests(Failed) \ [array get skippedBecause] [array get createdNewFiles]
set testSingleFile false
}
}

Discussion