29 lines
967 B
Plaintext
29 lines
967 B
Plaintext
module Misc_Helpers {
|
|
|
|
/* Try to properly shutdown a testcase.
|
|
* The reliable method to stop a testcase without running into dynamic
|
|
* testcase errors due to unconnected ports receiving messages is to call
|
|
* all component.stop before terminating. However, this can only be called
|
|
* from the mtc! So in case we want to terminate from a component that is not
|
|
* the mtc we try to do the next best thing which is calling mtc.stop and
|
|
* hoping for the best.
|
|
*/
|
|
function f_shutdown(charstring file, integer line, verdicttype verdict := none,
|
|
charstring text := "") {
|
|
if (verdict != none) {
|
|
text := file & ":" & int2str(line) & " : " & text
|
|
setverdict(verdict, text);
|
|
}
|
|
|
|
log("Stopping testcase execution from ", file, ":", line)
|
|
if (self == mtc) {
|
|
/* Properly stop all ports before disconnecting them. This avoids
|
|
* running into the dynamic testcase error due to messages arriving on
|
|
* unconnected ports. */
|
|
all component.stop;
|
|
}
|
|
mtc.stop
|
|
}
|
|
|
|
}
|