Vodafone Test Suite
Dependencies: mbed-rtos mbed HTTPClient VodafoneUSBModem
TestManager.cpp@19:26fbed33d4e7, 2012-09-03 (annotated)
- Committer:
- ashleymills
- Date:
- Mon Sep 03 16:02:58 2012 +0000
- Revision:
- 19:26fbed33d4e7
- Parent:
- 16:c89d426c6175
- Child:
- 20:18373fb68ad7
Added another USSD test. Changed the framework so a list of tests is passed to the execution function.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ashleymills | 2:ea883307d02f | 1 | #include "TestManager.h" |
ashleymills | 3:28336c2e94e4 | 2 | #include "Tests.h" |
ashleymills | 19:26fbed33d4e7 | 3 | TestManager::TestManager(VodafoneUSBModem *m) : _modem(m) { |
ashleymills | 19:26fbed33d4e7 | 4 | // using direct array indexing instead of searching each time, so need to put in dummy tests |
ashleymills | 19:26fbed33d4e7 | 5 | for(int i=0; i<12; i++) { |
ashleymills | 19:26fbed33d4e7 | 6 | _tests.push_back(NULL); |
ashleymills | 19:26fbed33d4e7 | 7 | } |
nherriot | 13:8b69853966f8 | 8 | _tests.push_back((VodafoneTestCase*)new Test12(_modem, 12)); |
nherriot | 16:c89d426c6175 | 9 | _tests.push_back((VodafoneTestCase*)new Test13(_modem, 13)); |
ashleymills | 19:26fbed33d4e7 | 10 | for(int i=14; i<21; i++) { |
ashleymills | 19:26fbed33d4e7 | 11 | _tests.push_back(NULL); |
ashleymills | 19:26fbed33d4e7 | 12 | } |
ashleymills | 19:26fbed33d4e7 | 13 | _tests.push_back((VodafoneTestCase*)new Test21(_modem, 21)); |
ashleymills | 19:26fbed33d4e7 | 14 | _tests.push_back((VodafoneTestCase*)new Test22(_modem, 22)); |
ashleymills | 19:26fbed33d4e7 | 15 | for(int i=23; i<50; i++) { |
ashleymills | 19:26fbed33d4e7 | 16 | _tests.push_back(NULL); |
ashleymills | 19:26fbed33d4e7 | 17 | } |
ashleymills | 19:26fbed33d4e7 | 18 | _tests.push_back((VodafoneTestCase*)new Test50(_modem, 50)); |
ashleymills | 2:ea883307d02f | 19 | } |
ashleymills | 2:ea883307d02f | 20 | |
ashleymills | 19:26fbed33d4e7 | 21 | int TestManager::executeTestList(const int *list, const int listLen) { |
ashleymills | 2:ea883307d02f | 22 | int successfullTests = 0; |
ashleymills | 19:26fbed33d4e7 | 23 | LOG("Running %d tests...",listLen); |
ashleymills | 19:26fbed33d4e7 | 24 | for(int i=0; i<listLen; i++) { |
ashleymills | 19:26fbed33d4e7 | 25 | int testIndex = list[i]; |
ashleymills | 19:26fbed33d4e7 | 26 | LOG("Running test %d...",testIndex); |
ashleymills | 19:26fbed33d4e7 | 27 | if(testIndex>=_tests.size()) { |
ashleymills | 19:26fbed33d4e7 | 28 | LOG("Test out of bounds. Test index must be betweeen 0 and %d!",_tests.size()); |
ashleymills | 19:26fbed33d4e7 | 29 | continue; |
ashleymills | 19:26fbed33d4e7 | 30 | } |
ashleymills | 19:26fbed33d4e7 | 31 | |
ashleymills | 19:26fbed33d4e7 | 32 | VodafoneTestCase* test = _tests[list[i]]; |
ashleymills | 19:26fbed33d4e7 | 33 | if(test==NULL) { |
ashleymills | 19:26fbed33d4e7 | 34 | LOG("NULL test! This will be counted as a failure."); |
ashleymills | 19:26fbed33d4e7 | 35 | continue; |
ashleymills | 19:26fbed33d4e7 | 36 | } |
ashleymills | 19:26fbed33d4e7 | 37 | |
ashleymills | 19:26fbed33d4e7 | 38 | if(test->run()) { |
ashleymills | 2:ea883307d02f | 39 | LOG("...OK"); |
ashleymills | 2:ea883307d02f | 40 | successfullTests++; |
ashleymills | 2:ea883307d02f | 41 | } else { |
ashleymills | 2:ea883307d02f | 42 | LOG("...FAIL"); |
ashleymills | 2:ea883307d02f | 43 | } |
ashleymills | 2:ea883307d02f | 44 | } |
ashleymills | 2:ea883307d02f | 45 | return successfullTests; |
ashleymills | 2:ea883307d02f | 46 | } |
ashleymills | 2:ea883307d02f | 47 | |
ashleymills | 4:1f8e079924ba | 48 | bool TestManager::runTest(int id) { |
ashleymills | 4:1f8e079924ba | 49 | if(id<0||id>=_tests.size()) { |
ashleymills | 4:1f8e079924ba | 50 | LOG("Test ID must be between 0 and %d",_tests.size()); |
ashleymills | 19:26fbed33d4e7 | 51 | return false; |
ashleymills | 4:1f8e079924ba | 52 | } |
ashleymills | 19:26fbed33d4e7 | 53 | if(_tests[id]==NULL) { |
ashleymills | 19:26fbed33d4e7 | 54 | LOG("NULL test! This will be counted as a failure."); |
ashleymills | 19:26fbed33d4e7 | 55 | return false; |
ashleymills | 19:26fbed33d4e7 | 56 | } |
ashleymills | 19:26fbed33d4e7 | 57 | |
ashleymills | 4:1f8e079924ba | 58 | return _tests[id]->run(); |
ashleymills | 4:1f8e079924ba | 59 | } |
ashleymills | 4:1f8e079924ba | 60 | |
ashleymills | 4:1f8e079924ba | 61 | |
ashleymills | 4:1f8e079924ba | 62 | bool TestManager::runTest(int id, int numTimes) { |
ashleymills | 4:1f8e079924ba | 63 | for(int i=0; i<numTimes; i++) { |
ashleymills | 4:1f8e079924ba | 64 | if(!runTest(id)) |
ashleymills | 4:1f8e079924ba | 65 | return false; |
ashleymills | 4:1f8e079924ba | 66 | } |
ashleymills | 4:1f8e079924ba | 67 | return true; |
ashleymills | 2:ea883307d02f | 68 | } |