X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=example%2Fdiameter%2Flauncher%2Ftesting%2FTestCase.cpp;h=a8b96433aebea6f816fcd1073793a23478f66f91;hb=eb1546671c9e29befae4bd5052de9ee804b1a389;hp=1c5beeb63be400b1b90121c96a6348a4e97a1a9c;hpb=2921c651c9945cefec0715167201596aaa079e8d;p=anna.git diff --git a/example/diameter/launcher/testing/TestCase.cpp b/example/diameter/launcher/testing/TestCase.cpp index 1c5beeb..a8b9643 100644 --- a/example/diameter/launcher/testing/TestCase.cpp +++ b/example/diameter/launcher/testing/TestCase.cpp @@ -9,6 +9,10 @@ // Standard #include #include +#include +#include + +#include // Project #include @@ -110,7 +114,18 @@ void TestCase::setState(const State::_v &state) throw() { TestManager &testManager = TestManager::instantiate(); if (isFinished()) { if (!testManager.getDumpReports()) return; - std::string file = testManager.getReportsDirectory() + anna::functions::asString("/testcase.%llu.xml", a_id); + // report file name: cycle-.testcase-.xml + + // FORMAT: We tabulate the cycle and test case in order to ease ordering of files by mean ls: + int cycles = testManager.getPoolRepeats(); + int tests = testManager.tests(); + int cyclesWidth = (cycles<=0) ? 3 /* 1000 cycles !! */: ((int) log10 ((double) cycles) + 1); + int testsWidth = (tests<=0) ? 9 /* subscribers */: ((int) log10 ((double) tests) + 1); + std::stringstream format; + format << "/cycle-%0" << cyclesWidth << "d.testcase-%0" << testsWidth << "llu.xml"; + + // FILE NAME: + std::string file = testManager.getReportsDirectory() + anna::functions::asString(format.str().c_str(), testManager.getPoolCycle(), a_id); std::ofstream out; out.open(file.c_str(), std::ofstream::out | std::ofstream::app); if(out.is_open() == false) { @@ -338,6 +353,16 @@ void TestCase::addWaitRegexp(bool fromEntity, const std::string ®exp) throw(a a_steps.push_back(step); } +void TestCase::addCmd(const std::string &script, const std::string ¶meters) throw(anna::RuntimeException) { + assertInitialized(); + + TestStepCmd *step = new TestStepCmd(this); + step->setScript(script); + step->setParameters(parameters); + + a_steps.push_back(step); +} + TestStepWait *TestCase::searchNextWaitConditionFulfilled(const anna::DataBlock &message, bool waitFromEntity) throw() { TestStepWait *result;