Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

Committer:
ashleymills
Date:
Wed Sep 05 14:47:44 2012 +0000
Revision:
22:5b1feecf2aeb
Parent:
20:18373fb68ad7
Child:
23:408199b5d2cb
Modified test suite for proper profiling. Added two more tests for signal strength.

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 }
ashleymills 20:18373fb68ad7 8 _tests.push_back((VodafoneTestCase*)new Test12(_modem,12));
ashleymills 20:18373fb68ad7 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 20:18373fb68ad7 13 _tests.push_back((VodafoneTestCase*)new Test21(_modem,21));
ashleymills 20:18373fb68ad7 14 _tests.push_back((VodafoneTestCase*)new Test22(_modem,22));
ashleymills 20:18373fb68ad7 15 _tests.push_back((VodafoneTestCase*)new Test23(_modem,23));
ashleymills 22:5b1feecf2aeb 16 for(int i=24; i<25; i++) {
ashleymills 22:5b1feecf2aeb 17 _tests.push_back(NULL);
ashleymills 22:5b1feecf2aeb 18 }
ashleymills 22:5b1feecf2aeb 19 _tests.push_back((VodafoneTestCase*)new Test25(_modem,25));
ashleymills 22:5b1feecf2aeb 20 _tests.push_back((VodafoneTestCase*)new Test26(_modem,26));
ashleymills 22:5b1feecf2aeb 21 for(int i=27; i<50; i++) {
ashleymills 19:26fbed33d4e7 22 _tests.push_back(NULL);
ashleymills 19:26fbed33d4e7 23 }
ashleymills 20:18373fb68ad7 24 _tests.push_back((VodafoneTestCase*)new Test50(_modem,50));
ashleymills 2:ea883307d02f 25 }
ashleymills 2:ea883307d02f 26
ashleymills 22:5b1feecf2aeb 27 int TestManager::getTestProfileLength(TestProfile profile) {
ashleymills 22:5b1feecf2aeb 28 if(profile>=0 && profile <TESTS_END) {
ashleymills 22:5b1feecf2aeb 29 return gTestProfileLengths[profile];
ashleymills 22:5b1feecf2aeb 30 } else {
ashleymills 22:5b1feecf2aeb 31 LOG("Test profile out of bounds. Must be between 0 and %d",TESTS_END-1);
ashleymills 22:5b1feecf2aeb 32 return 0;
ashleymills 22:5b1feecf2aeb 33 }
ashleymills 22:5b1feecf2aeb 34 }
ashleymills 22:5b1feecf2aeb 35
ashleymills 22:5b1feecf2aeb 36 int TestManager::executeTestProfile(TestProfile profile) {
ashleymills 22:5b1feecf2aeb 37 if(profile>=0 && profile <TESTS_END) {
ashleymills 22:5b1feecf2aeb 38 return executeTestList(gTestProfiles[profile], gTestProfileLengths[profile]);
ashleymills 22:5b1feecf2aeb 39 } else {
ashleymills 22:5b1feecf2aeb 40 LOG("Test profile out of bounds. Must be between 0 and %d",TESTS_END-1);
ashleymills 22:5b1feecf2aeb 41 return 0;
ashleymills 22:5b1feecf2aeb 42 }
ashleymills 22:5b1feecf2aeb 43 }
ashleymills 22:5b1feecf2aeb 44
ashleymills 19:26fbed33d4e7 45 int TestManager::executeTestList(const int *list, const int listLen) {
ashleymills 2:ea883307d02f 46 int successfullTests = 0;
ashleymills 19:26fbed33d4e7 47 LOG("Running %d tests...",listLen);
ashleymills 19:26fbed33d4e7 48 for(int i=0; i<listLen; i++) {
ashleymills 19:26fbed33d4e7 49 int testIndex = list[i];
ashleymills 19:26fbed33d4e7 50 LOG("Running test %d...",testIndex);
ashleymills 19:26fbed33d4e7 51 if(testIndex>=_tests.size()) {
ashleymills 19:26fbed33d4e7 52 LOG("Test out of bounds. Test index must be betweeen 0 and %d!",_tests.size());
ashleymills 19:26fbed33d4e7 53 continue;
ashleymills 19:26fbed33d4e7 54 }
ashleymills 19:26fbed33d4e7 55
ashleymills 19:26fbed33d4e7 56 VodafoneTestCase* test = _tests[list[i]];
ashleymills 19:26fbed33d4e7 57 if(test==NULL) {
ashleymills 19:26fbed33d4e7 58 LOG("NULL test! This will be counted as a failure.");
ashleymills 19:26fbed33d4e7 59 continue;
ashleymills 19:26fbed33d4e7 60 }
ashleymills 19:26fbed33d4e7 61
ashleymills 19:26fbed33d4e7 62 if(test->run()) {
ashleymills 2:ea883307d02f 63 LOG("...OK");
ashleymills 2:ea883307d02f 64 successfullTests++;
ashleymills 2:ea883307d02f 65 } else {
ashleymills 2:ea883307d02f 66 LOG("...FAIL");
ashleymills 2:ea883307d02f 67 }
ashleymills 2:ea883307d02f 68 }
ashleymills 2:ea883307d02f 69 return successfullTests;
ashleymills 2:ea883307d02f 70 }
ashleymills 2:ea883307d02f 71
ashleymills 4:1f8e079924ba 72 bool TestManager::runTest(int id) {
ashleymills 4:1f8e079924ba 73 if(id<0||id>=_tests.size()) {
ashleymills 4:1f8e079924ba 74 LOG("Test ID must be between 0 and %d",_tests.size());
ashleymills 19:26fbed33d4e7 75 return false;
ashleymills 4:1f8e079924ba 76 }
ashleymills 19:26fbed33d4e7 77 if(_tests[id]==NULL) {
ashleymills 19:26fbed33d4e7 78 LOG("NULL test! This will be counted as a failure.");
ashleymills 19:26fbed33d4e7 79 return false;
ashleymills 19:26fbed33d4e7 80 }
ashleymills 19:26fbed33d4e7 81
ashleymills 4:1f8e079924ba 82 return _tests[id]->run();
ashleymills 4:1f8e079924ba 83 }
ashleymills 4:1f8e079924ba 84
ashleymills 4:1f8e079924ba 85
ashleymills 4:1f8e079924ba 86 bool TestManager::runTest(int id, int numTimes) {
ashleymills 4:1f8e079924ba 87 for(int i=0; i<numTimes; i++) {
ashleymills 4:1f8e079924ba 88 if(!runTest(id))
ashleymills 4:1f8e079924ba 89 return false;
ashleymills 4:1f8e079924ba 90 }
ashleymills 4:1f8e079924ba 91 return true;
ashleymills 2:ea883307d02f 92 }