[Pkg] The Trunk: SUnit-ar.80.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Jul 10 20:13:03 UTC 2010
Andreas Raab uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-ar.80.mcz
==================== Summary ====================
Name: SUnit-ar.80
Author: ar
Time: 10 July 2010, 1:12:48.265 pm
UUID: 4062ff78-c0a8-e94f-a336-93d01aebbe96
Ancestors: SUnit-dtl.79
A halt needs to cancel a pending timeout, too.
=============== Diff against SUnit-dtl.79 ===============
Item was changed:
----- Method: TestCase>>timeout:after: (in category 'running') -----
timeout: aBlock after: seconds
"Evaluate the argument block. Time out if the evaluation is not
complete after the given number of seconds. Handle the situation
that a timeout may occur after a failure (during debug)"
| theProcess delay watchdog |
"the block will be executed in the current process"
theProcess := Processor activeProcess.
delay := Delay forSeconds: seconds.
"make a watchdog process"
watchdog := [
delay wait. "wait for timeout or completion"
theProcess ifNotNil:[ theProcess signalException:
(TestFailure new messageText: 'Test timed out') ]
] newProcess.
"Watchdog needs to run at high priority to do its job (but not at timing priority)"
watchdog priority: Processor timingPriority-1.
"catch the timeout signal"
watchdog resume. "start up the watchdog"
+ ^[aBlock on: TestFailure, Error, Halt do:[:ex|
- ^[aBlock on: TestFailure, Error do:[:ex|
theProcess := nil.
ex pass.
]] ensure:[ "evaluate the receiver"
theProcess := nil. "it has completed, so ..."
delay delaySemaphore signal. "arrange for the watchdog to exit"
]!
More information about the Packages
mailing list