Improve traces in testing system
[anna.git] / example / diameter / launcher / testing / TestCase.cpp
index 3d91f32..5678ff0 100644 (file)
@@ -132,7 +132,8 @@ void TestCase::setState(const State::_v &state) throw() {
 
 
   if (isFinished()) {
-    if (!testManager.getDumpReports()) return;
+    if ((getState() == State::Failed) && (!testManager.getDumpFailedReports())) return;
+    if ((getState() == State::Success) && (!testManager.getDumpSuccessReports())) return;
     // report file name: cycle-<cycle id>.testcase-<test case id>.xml
 
     // FORMAT: We tabulate the cycle and test case in order to ease ordering of files by mean ls:
@@ -222,8 +223,8 @@ bool TestCase::reset(bool hard) throw() {
 }
 
 void TestCase::assertInitialized() const throw(anna::RuntimeException) {
-  if (a_state != State::Initialized)
-    throw anna::RuntimeException(anna::functions::asString("Cannot program anymore. The test case %llu was started. You must reset it to append new steps.", a_id), ANNA_FILE_LOCATION);
+  if (isFinished())
+    throw anna::RuntimeException(anna::functions::asString("Cannot program anymore. The test case %llu has finished. You must reset it to append new steps (or do it during execution, which is also allowed).", a_id), ANNA_FILE_LOCATION);
 }
 
 void TestCase::assertMessage(const anna::DataBlock &db, bool toEntity) throw(anna::RuntimeException) {
@@ -231,7 +232,7 @@ void TestCase::assertMessage(const anna::DataBlock &db, bool toEntity) throw(ann
   bool isRequest = anna::diameter::codec::functions::isRequest(db);
   bool registerSessionId = ((isRequest && toEntity) || (!isRequest && !toEntity) /* (*) */);
   // (*) we register answers Session-Id assuming that we will know the Session-Id values created by the client (OCS)
-  // This is another solution for TODO(***) regarding diameter server testing. No tsure about the final implementation.
+  // This is another solution for TODO(***) regarding diameter server testing. No sure about the final implementation.
 
   // Check hop-by-hop:
   if (isRequest) {
@@ -252,7 +253,7 @@ void TestCase::addTimeout(const anna::Millisecond &timeout) throw(anna::RuntimeE
   addStep(step);
 }
 
-void TestCase::addSendxml2e(const anna::DataBlock &db, RealmNode *realm, int stepNumber) throw(anna::RuntimeException) {
+void TestCase::addSendxml2e(const anna::DataBlock &db, OriginHost *host, int stepNumber) throw(anna::RuntimeException) {
   assertInitialized();
   assertMessage(db, true /* to entity */);
 
@@ -272,18 +273,18 @@ void TestCase::addSendxml2e(const anna::DataBlock &db, RealmNode *realm, int ste
 
   TestStepSendxml2e *step = new TestStepSendxml2e(this);
   step->setMsgDataBlock(db);
-  step->setRealmNode(realm);
+  step->setOriginHost(host);
   step->setWaitForRequestStepNumber(stepNumber); // -1 means, no reference
   addStep(step);
 }
 
-void TestCase::addSendxml2c(const anna::DataBlock &db, RealmNode *realm, int stepNumber) throw(anna::RuntimeException) {
+void TestCase::addSendxml2c(const anna::DataBlock &db, OriginHost *host, int stepNumber) throw(anna::RuntimeException) {
   assertInitialized();
   assertMessage(db, false /* to client */);
 
   TestStepSendxml2c *step = new TestStepSendxml2c(this);
   step->setMsgDataBlock(db);
-  step->setRealmNode(realm);
+  step->setOriginHost(host);
   addStep(step);
 }
 
@@ -341,9 +342,9 @@ void TestCase::addWait(bool fromEntity,
   if (!step) step = new TestStepWait(this);
   step->setCondition(fromEntity, code, bitR, usedHopByHop, applicationId, sessionId, resultCode, msisdn, imsi, serviceContextId);
 
-  LOGWARNING(
+  LOGINFORMATION(
     if (hasSameCondition(step->getCondition()))
-      anna::Logger::warning(anna::functions::asString("The same wait condition has already been programmed in this test case (%llu). Are you sure ?", a_id), ANNA_FILE_LOCATION);
+      anna::Logger::information(anna::functions::asString("The same wait condition has already been programmed in this test case (%llu). Are you sure ?", a_id), ANNA_FILE_LOCATION);
   );
 
   addStep(step);
@@ -355,9 +356,9 @@ void TestCase::addWaitRegexp(bool fromEntity, const std::string &regexp) throw(a
   TestStepWait *step = new TestStepWait(this);
   step->setCondition(fromEntity, regexp);
 
-  LOGWARNING(
+  LOGINFORMATION(
     if (hasSameCondition(step->getCondition()))
-      anna::Logger::warning(anna::functions::asString("The same wait condition has already been programmed in this test case (%llu). Are you sure ?", a_id), ANNA_FILE_LOCATION);
+      anna::Logger::information(anna::functions::asString("The same wait condition has already been programmed in this test case (%llu). Are you sure ?", a_id), ANNA_FILE_LOCATION);
   );
 
   addStep(step);