formatting, typos, comments, details

Change-Id: Iae5f1acb653a694622e9ac2bad93efcfca588f3a
This commit is contained in:
Horst Schirmeier
2013-10-14 14:43:39 +02:00
parent 7591c9edc5
commit 4cb97a7fa5
138 changed files with 1566 additions and 1576 deletions

View File

@ -17,7 +17,7 @@
|| !defined(CONFIG_EVENT_GUESTSYS) || !defined(CONFIG_EVENT_INTERRUPT) \
|| !defined(CONFIG_EVENT_IOPORT) || !defined(CONFIG_EVENT_JUMP) || !defined(CONFIG_EVENT_MEMREAD) \
|| !defined(CONFIG_EVENT_MEMWRITE) || !defined(CONFIG_EVENT_TRAP) || !defined(CONFIG_SR_REBOOT) \
|| !defined(CONFIG_SR_SAVE) || !defined(CONFIG_SR_RESTORE) || !defined(CONFIG_SUPPRESS_INTERRUPTS)
|| !defined(CONFIG_SR_SAVE) || !defined(CONFIG_SR_RESTORE) || !defined(CONFIG_SUPPRESS_INTERRUPTS)
#error This experiment needs: all CONFIG_EVENT_*, all CONFIG_SR_* and the CONFIG_SUPPRESS_INTERRUPTS flag. Enable these in the configuration.
#endif
@ -25,17 +25,17 @@ using namespace std;
using namespace fail;
bool RegressionTest::run()
{
{
unsigned instrAddr_at_save = 0;
BaseListener *ev;
//Result-File
fstream file ("regression-test.results", ios::out | ios::trunc);
file << "experiment start" << endl;
//Wait for correct start point
GuestListener g;
while (simulator.addListenerAndResume(&g) == &g) {
if (g.getData() == 'A') {
file << "Found start-point with signal: " << g.getData() << endl;
@ -43,25 +43,25 @@ bool RegressionTest::run()
break;
}
}
//Watchdog-Timer
TimerListener watchdog(100000);
simulator.addListener(&watchdog);
//Save state
file << "Saving state." << endl;
simulator.save("regression-save");
instrAddr_at_save = simulator.getCPU(0).getInstructionPointer();
//Start Plugins
TracingPlugin tp;
ofstream of("regression-trace.results");
tp.setOstream(&of);
simulator.addFlow(&tp);
SerialOutput so(0x3F8);
simulator.addFlow(&so);
//BPListener
BPSingleListener bp_test(REGRESSION_FUNC_BP);
BPSingleListener mem_read_test(REGRESSION_FUNC_MEM_READ);
@ -76,53 +76,53 @@ bool RegressionTest::run()
simulator.addListener(&trap_test);
simulator.addListener(&jump_test);
simulator.addListener(&interrupt_test);
while (true) {
simulator.removeListener(&watchdog);
simulator.addListener(&watchdog);
ev = simulator.resume();
if (ev == &bp_test) {
file << "Breakpoint-Test start." << endl;
BPSingleListener mainbp(ANY_ADDR);
BPSingleListener mainbp(ANY_ADDR);
mainbp.setCounter(1000);
BPRangeListener bprange(REGRESSION_FUNC_LOOP_DONE, REGRESSION_FUNC_LOOP_DONE);
BPSingleListener breakcounter(REGRESSION_FUNC_LOOP_DONE);
simulator.addListener(&breakcounter);
int count = 0;
while(true){
while (true) {
BaseListener* ev = simulator.resume();
if(ev == &breakcounter || ev == &bprange) {
if (ev == &breakcounter || ev == &bprange) {
count++;
//First 5 times test BPSingleListener
if(count < 5){
if (count < 5) {
simulator.addListener(&breakcounter);
//Next 5 times test BPRangeListener
}else if(count < 10){
} else if (count < 10) {
simulator.addListener(&bprange);
//At 10 run of loop start BPSingleListener, BPRangeListener, mainListener
//which waits 1000 instructions.
}else if(count == 10){
//At 10 run of loop start BPSingleListener, BPRangeListener, mainListener
//which waits 1000 instructions.
} else if (count == 10) {
simulator.addListener(&breakcounter);
simulator.addListener(&bprange);
simulator.addListener(&mainbp);
//If mainListener fires not first the test failes.
}else if(count >= 10){
}else if (count >= 10) {
file << "Breakpoint-Test FAILED."<< endl;
break;
}
//If mainListener fires first the test success.
}else if(ev == &mainbp) {
} else if (ev == &mainbp) {
file << "Breakpoint-Test SUCCESSFUL." <<endl;
break;
}else if (ev == &watchdog) {
} else if (ev == &watchdog) {
file << "Breakpoint-Test FAILED --> Watchdog fired. Timeout!" << endl;
}
}
@ -130,63 +130,63 @@ bool RegressionTest::run()
simulator.removeListener(&breakcounter);
simulator.removeListener(&bprange);
simulator.removeListener(&mainbp);
} else if (ev == &mem_read_test) {
file << "Memory-Read-Test start." << endl;
MemReadListener memread(REGRESSION_VAR_MTEST_READ);
simulator.addListener(&memread);
simulator.resume();
file << "Memaddr-Read: " << hex << memread.getTriggerAddress() << dec << endl;
if(memread.getTriggerAddress() == REGRESSION_VAR_MTEST_READ) {
if (memread.getTriggerAddress() == REGRESSION_VAR_MTEST_READ) {
file << "Memory-Read-Test SUCCESSFUL." << endl;
} else {
file << "Memory-Read-Test FAILED." << endl;
}
file << "Memory-Read-Test end." << endl;
simulator.removeListener(&memread);
} else if (ev == &mem_write_test) {
file << "Memory-Write-Test start." << endl;
MemWriteListener memwrite(REGRESSION_VAR_MTEST_WRITE);
simulator.addListener(&memwrite);
simulator.resume();
file << "Memaddr-WRITE: " << hex << memwrite.getTriggerAddress() << dec << endl;
if(memwrite.getTriggerAddress() == REGRESSION_VAR_MTEST_WRITE) {
if (memwrite.getTriggerAddress() == REGRESSION_VAR_MTEST_WRITE) {
file << "Memory-Write-Test SUCCESSFUL." << endl;
} else {
file << "Memory-Write-Test FAILED." << endl;
}
file << "Memory-Write-Test end." << endl;
} else if (ev == &trap_test) {
file << "Trap-Test start" << endl;
TrapListener trap(ANY_TRAP);
simulator.addListener(&trap);
simulator.resume();
file << "Trap found: " << trap.getTriggerNumber() << endl;
file << "Trap-Test end" << endl;
simulator.removeListener(&trap);
//After a division-error trap ecos halts the cpu
//Because of this a restore to start point is needed
simulator.restore("regression-save");
if (simulator.getCPU(0).getInstructionPointer() == instrAddr_at_save) {
file << "Save-/Restore-Test SUCCESSFUL." << endl;
} else {
@ -196,44 +196,44 @@ bool RegressionTest::run()
file << "Instructionpointer after restore: " << \
simulator.getCPU(0).getInstructionPointer() << endl;
}
// Reboot test
file << "Reboot-Test start" << endl;
BPSingleListener bpReboot(ANY_ADDR);
simulator.addListener(&bpReboot);
simulator.resume();
long beforeReboot = bpReboot.getTriggerInstructionPointer();
file << "Before Reboot-Addr: 0x" << hex << beforeReboot << dec << endl;
simulator.reboot();
simulator.reboot();
bpReboot.setWatchInstructionPointer(beforeReboot);
simulator.addListener(&bpReboot);
simulator.resume();
long afterReboot = bpReboot.getTriggerInstructionPointer();
file << "After Reboot-Addr: 0x" << hex << afterReboot << dec << endl;
if (beforeReboot == afterReboot){
if (beforeReboot == afterReboot) {
file << "Reboot-Test SUCCESSFUL." << endl;
}else {
} else {
file << "Reboot-Test FAILED." << endl;
}
file << "Reboot-Test end" << endl;
simulator.removeListener(&bpReboot);
file << "Serial-Output: " << so.getOutput() << endl;
file.flush();
of.flush();
simulator.terminate();
} else if (ev == &jump_test) {
@ -242,36 +242,36 @@ bool RegressionTest::run()
JumpListener jump(ANY_INSTR);
simulator.addListener(&jump);
simulator.resume();
file << "Jump-Instruction found: " << jump.getOpcode() << endl;
file << "current Instruction-Pointer: 0x" << hex <<\
simulator.getCPU(0).getInstructionPointer() << dec << endl;
file << "Jump-Test end" << endl;
simulator.removeListener(&jump);
} else if (ev == &interrupt_test) {
file << "Interrupt-Test start" << endl;
InterruptListener interrupt(32);
simulator.addListener(&interrupt);
ev = simulator.resume();
if (ev == &interrupt) {
file << "Interrupt-Test SUCCESSFUL. Interruptnum: " << interrupt.getTriggerNumber() \
<< endl;
}
file << "Interrupt-Test end" << endl;
} else if (ev == &watchdog) {
file << "Watchdog fired. Timeout!" << endl;
}
}
file << "experiment end" << endl;
return true;
}

View File

@ -7,7 +7,7 @@ class RegressionTest : public fail::ExperimentFlow
{
public:
RegressionTest() { }
bool run();
};