diff --git a/src/experiments/regression-test/experiment.cc b/src/experiments/regression-test/experiment.cc index d63dfa30..9768a34c 100644 --- a/src/experiments/regression-test/experiment.cc +++ b/src/experiments/regression-test/experiment.cc @@ -7,11 +7,18 @@ #include "sal/Listener.hpp" #include "util/Logger.hpp" #include "config/FailConfig.hpp" +#include "sal/bochs/BochsRegister.hpp" +//ToDo: +// more flow-control by BreakpointListener +// life-counter (counter over BreakpointListener) monitor whether a test takes too much "time" +// more tests + test of plugins // Check if configuration dependencies are satisfied: -#if !defined(CONFIG_EVENT_BREAKPOINTS) - #error This experiment needs: breakpoints. Enable these in the configuration. +#if !defined(CONFIG_EVENT_BREAKPOINTS) || !defined(CONFIG_EVENT_MEMREAD) \ + || !defined(CONFIG_EVENT_MEMWRITE) || !defined(CONFIG_SR_SAVE) || !defined(CONFIG_SR_RESTORE) \ + || !defined(CONFIG_SR_REBOOT) || !defined(CONFIG_EVENT_TRAP) + #error This experiment needs: breakpoints, memread, memwrite. Enable these in the configuration. #endif using namespace std; @@ -19,6 +26,7 @@ using namespace fail; bool RegressionTest::run() { + BPSingleListener bpPather(ANY_ADDR); int count = 0; Logger log("Regression-Test", false); @@ -68,9 +76,125 @@ bool RegressionTest::run() break; } } - - simulator.clearListeners(this); - + //simulator.clearListeners(this); log << "Breakpoint-Test end" << endl; + +//Memory test TODO.. +/* + log << "Memory-Test start." << endl; + + MemReadListener memread(REGRESSION_FUNC_MTEST_READ); + MemWriteListener memwrite(REGRESSION_FUNC_MTEST_READ); + + simulator.resume(); + B D + log << "Memaddr: " << hex <