ecos: specific traps are OK for two benchmarks
The "except1" and "clockcnv" benchmarks explicitly cause a trap and handle it in their own trap handler. This, of course, isn't a bad experiment outcome. git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@1923 8c4709b5-6ec9-48aa-a5cd-a96041d1645a
This commit is contained in:
@ -400,10 +400,12 @@ bool EcosKernelTestExperiment::faultInjection() {
|
|||||||
bool ecos_test_passed = false;
|
bool ecos_test_passed = false;
|
||||||
bool ecos_test_failed = false;
|
bool ecos_test_failed = false;
|
||||||
|
|
||||||
BaseListener* ev = simulator.resume();
|
BaseListener* ev;
|
||||||
|
|
||||||
// wait until doing no more test_output
|
// wait until experiment-terminating event occurs
|
||||||
while (ev == &func_test_output) {
|
while (true) {
|
||||||
|
ev = simulator.resume();
|
||||||
|
if (ev == &func_test_output) {
|
||||||
// re-add this listener
|
// re-add this listener
|
||||||
simulator.addListener(&func_test_output);
|
simulator.addListener(&func_test_output);
|
||||||
|
|
||||||
@ -430,8 +432,16 @@ bool EcosKernelTestExperiment::faultInjection() {
|
|||||||
ecos_test_passed = true;
|
ecos_test_passed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// wait for ev_trap/ev_done
|
// special case: except1 and clockcnv actively generate traps
|
||||||
ev = simulator.resume();
|
} else if (ev == &ev_trap
|
||||||
|
&& ((m_benchmark == "except1" && ev_trap.getTriggerNumber() == 13)
|
||||||
|
|| (m_benchmark == "clockcnv" && ev_trap.getTriggerNumber() == 7))) {
|
||||||
|
// re-add this listener
|
||||||
|
simulator.addListener(&ev_trap);
|
||||||
|
} else {
|
||||||
|
// in any other case, the experiment is finished
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// record latest IP regardless of result
|
// record latest IP regardless of result
|
||||||
|
|||||||
Reference in New Issue
Block a user