Vodafone Test Suite
Dependencies: mbed-rtos mbed HTTPClient VodafoneUSBModem
Diff: TestManager.cpp
- Revision:
- 33:16126e029d58
- Parent:
- 31:9231acdde9ff
- Parent:
- 32:8ff0b67bb58c
- Child:
- 35:6867af70c51c
--- a/TestManager.cpp Wed Sep 12 16:55:00 2012 +0000 +++ b/TestManager.cpp Thu Sep 13 10:05:31 2012 +0000 @@ -1,36 +1,25 @@ #include "TestManager.h" #include "Tests.h" -TestManager::TestManager(VodafoneUSBModem *m) : _modem(m) { - // using direct array indexing instead of searching each time, so need to put in dummy tests - for(int i=0; i<10; i++) { _tests.push_back(NULL); } - - _tests.push_back((VodafoneTestCase*)new Test10(_modem,10)); - - for(int i=11; i<12; i++) { _tests.push_back(NULL); } - _tests.push_back((VodafoneTestCase*)new Test12(_modem,12)); - _tests.push_back((VodafoneTestCase*)new Test13(_modem,13)); - - for(int i=14; i<16; i++) { _tests.push_back(NULL); } - _tests.push_back((VodafoneTestCase*)new Test16(_modem,16)); + +// adds a test into the master test index +void TestManager::addTest(VodafoneTestCase* testCase) { + _tests.push_back(testCase); +} - for(int i=17; i<21; i++) { _tests.push_back(NULL); } - - _tests.push_back((VodafoneTestCase*)new Test21(_modem,21)); - _tests.push_back((VodafoneTestCase*)new Test22(_modem,22)); - _tests.push_back((VodafoneTestCase*)new Test23(_modem,23)); - - for(int i=24; i<25; i++) { _tests.push_back(NULL); } - - _tests.push_back((VodafoneTestCase*)new Test25(_modem,25)); - _tests.push_back((VodafoneTestCase*)new Test26(_modem,26)); - - for(int i=27; i<50; i++) { _tests.push_back(NULL); } - - _tests.push_back((VodafoneTestCase*)new Test50(_modem,50)); - - for(int i=51; i<56; i++) { _tests.push_back(NULL); } - - _tests.push_back((VodafoneTestCase*)new Test56(_modem,56)); +TestManager::TestManager(VodafoneUSBModem *m) : _modem(m) { + // using direct array indexing instead of searching each time + // dummy tests are inserted by the addTest function + addTest((VodafoneTestCase*)new Test10(_modem)); + addTest((VodafoneTestCase*)new Test12(_modem)); + addTest((VodafoneTestCase*)new Test13(_modem)); + addTest((VodafoneTestCase*)new Test16(_modem)); + addTest((VodafoneTestCase*)new Test21(_modem)); + addTest((VodafoneTestCase*)new Test22(_modem)); + addTest((VodafoneTestCase*)new Test23(_modem)); + addTest((VodafoneTestCase*)new Test25(_modem)); + addTest((VodafoneTestCase*)new Test26(_modem)); + addTest((VodafoneTestCase*)new Test50(_modem)); + addTest((VodafoneTestCase*)new Test56(_modem)); } int TestManager::getTestProfileLength(TestProfile profile) { @@ -43,11 +32,9 @@ } int TestManager::executeTestProfile(TestProfile profile) { - int numPassed = 0; - if(profile <TESTS_END) { // no test for >= 0 since TestProfile is unsigned + if(profile<TESTS_END) { // no test for >= 0 since TestProfile is unsigned numPassed = executeTestList(gTestProfiles[profile], gTestProfileLengths[profile]); - } else { LOG("Test profile out of bounds. Must be between 0 and %d",TESTS_END-1); return 0; @@ -63,39 +50,40 @@ int successfullTests = 0; for(int i=0; i<listLen; i++) { int testIndex = list[i]; - if(testIndex>=_tests.size()) { - LOG("Test out of bounds... Test index must be betweeen 0 and %d!",_tests.size()); + VodafoneTestCase* test = getTest(testIndex); + if(test==NULL) { + LOG("ERROR: Test %d is not in test list!.",testIndex); continue; } - VodafoneTestCase* test = _tests[list[i]]; if(test->_lastRunOutcome==false) { - LOG("Test %d:",list[i]); - LOG(gTestDescriptions[list[i]]); + LOG("Test %d:",test->_testCaseNumber); + LOG(test->_description); } } } +VodafoneTestCase* TestManager::getTest(int index) { + for(int i=0; i<_tests.size(); i++) { + if(index==_tests[i]->_testCaseNumber) + return _tests[i]; + } + return NULL; +} + int TestManager::executeTestList(const int *list, const int listLen) { - LOG("The executeTestList is: %d", list); - LOG("The executeTestListLength is: %d", listLen); int successfullTests = 0; LOG("Running %d tests...",listLen); for(int i=0; i<listLen; i++) { int testIndex = list[i]; - LOG("Running test %d...",testIndex); - if(testIndex>=_tests.size()) { - LOG("Test out of bounds. Test index must be betweeen 0 and %d!",_tests.size()); + VodafoneTestCase* test = getTest(testIndex); + if(test==NULL) { + LOG("Error. Test %d is not in test list! This will be counted as a failure.",testIndex); continue; } - VodafoneTestCase* test = _tests[list[i]]; - if(test==NULL) { - LOG("NULL test! This will be counted as a failure."); - continue; - } - - if(test->run()) { + LOG("Running test %d...",testIndex); + if(test->execute()) { LOG("...OK"); successfullTests++; } else { @@ -105,23 +93,20 @@ return successfullTests; } -bool TestManager::runTest(int id) { - if(id<0||id>=_tests.size()) { - LOG("Test ID must be between 0 and %d",_tests.size()); - return false; - } - if(_tests[id]==NULL) { - LOG("NULL test! This will be counted as a failure."); +bool TestManager::executeTest(int id) { + VodafoneTestCase* test = getTest(id); + if(test==NULL) { + LOG("Error. Test %d is not in test list! This will be counted as a failure.",id); return false; } - return _tests[id]->run(); + return _tests[id]->execute(); } -bool TestManager::runTest(int id, int numTimes) { +bool TestManager::executeTest(int id, int numTimes) { for(int i=0; i<numTimes; i++) { - if(!runTest(id)) + if(!executeTest(id)) return false; } return true;