Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

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?

UserRevisionLine numberNew 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 }