// Counters record procedure:
const char *varname = "cntRecordPeriod";
- anna::Millisecond cntRecordPeriod = (cl.exists(varname)) ? checkTimeMeasure(varname, cl.getValue(varname)) : (anna::Millisecond)300000;
+ anna::Millisecond cntRecordPeriod;
+ try {
+ cntRecordPeriod = (cl.exists(varname)) ? checkTimeMeasure(varname, cl.getValue(varname)) : (anna::Millisecond)300000;
+ }
+ catch(anna::RuntimeException &ex) {
+ if (cntRecordPeriod != 0) throw ex;
+ }
+
if(cntRecordPeriod != 0) {
a_counterRecorderClock = new MyCounterRecorderClock("Counters record procedure clock", cntRecordPeriod); // clock
std::string cntDir = ".";
result += "\n been done before. Test cases state & data will be reset (when achieved again), but general";
result += "\n statistics and counters will continue measuring until reset with 'collect' operation.";
result += "\n";
+ result += "\n test|auto-reset|<soft|hard> When cycling, current test cases can be soft (default) or hard reset. If no timeout has";
+ result += "\n been configured for the test case, hard reset could prevent stuck on the next cycle for";
+ result += "\n those test cases still in progress.";
+ result += "\n";
result += "\n test|clear Clears all the programmed test cases and stop testing (if in progress).";
result += "\n";
result += "\n test|summary Test manager general report (number of test cases, counts by state, global configuration,";
// test|look[|id] Show programmed test case for id provided, current when missing ...
// test|interact|amount|id Makes interactive a specific test case id. The amount is the margin of execution steps ...
// test|reset|<[soft]/hard>[|id] Reset the test case for id provided, all the tests when missing ...
+ // test|auto-reset|<soft|hard> When cycling, current test cases can be soft (default) or hard reset ...
// test|clear Clears all the programmed test cases.
// test|summary Test manager general report (number of test cases, counts by state ...
anna::testing::TestCase *testCase = ((id != -1) ? testManager.findTestCase(id) : NULL);
if (testCase) {
- bool done = testCase->reset((param2 == "hard") ? true:false);
+ bool done = testCase->reset(param2 == "hard");
opt_response_content = "test ";
opt_response_content += param2;
opt_response_content += " reset for id ";
}
else {
if (id == -1) {
- bool anyReset = testManager.resetPool((param2 == "hard") ? true:false);
+ bool anyReset = testManager.resetPool(param2 == "hard");
opt_response_content = param2; opt_response_content += " reset have been sent to all programmed tests: "; opt_response_content += anyReset ? "some/all have been reset" : "nothing was reset";
}
else {
}
}
}
+ else if(param1 == "auto-reset") {
+ if (numParams != 2)
+ throw anna::RuntimeException("Wrong body content format on HTTP Request. Use 'help' management command to see more information.", ANNA_FILE_LOCATION);
+
+ if (param2 != "soft" && param2 != "hard")
+ throw anna::RuntimeException("Wrong body content format on HTTP Request. Use 'help' management command to see more information.", ANNA_FILE_LOCATION);
+
+ testManager.setAutoResetHard(param2 == "hard");
+ opt_response_content += anna::functions::asString("Auto-reset configured to '%s'", param2.c_str());
+ }
else if(param1 == "clear") {
if (numParams > 1)
throw anna::RuntimeException("Wrong body content format on HTTP Request. Use 'help' management command to see more information.", ANNA_FILE_LOCATION);