Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

Committer:
ashleymills
Date:
Mon Sep 17 13:28:39 2012 +0000
Revision:
44:6d0ac4747f5b
Parent:
37:847f5f86e9ff
Child:
58:8b63f4c3a5a5
Refactored names. Privatised virtuals to avoid bugs (bitten).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 3:28336c2e94e4 1 #pragma once
ashleymills 4:1f8e079924ba 2 #include "VodafoneTestCase.h"
ashleymills 25:55b865c41f21 3
ashleymills 37:847f5f86e9ff 4 extern const char* gTest50Description;
ashleymills 25:55b865c41f21 5
ashleymills 3:28336c2e94e4 6 class Test50 : public VodafoneTestCase {
ashleymills 3:28336c2e94e4 7 public:
ashleymills 33:16126e029d58 8 Test50(VodafoneUSBModem *m) : VodafoneTestCase(m) {
ashleymills 4:1f8e079924ba 9 _smsLen = 32;
ashleymills 4:1f8e079924ba 10 _numberLen = 16;
ashleymills 33:16126e029d58 11 _description = gTest50Description;
ashleymills 33:16126e029d58 12 _testCaseNumber = 50;
ashleymills 4:1f8e079924ba 13 }
ashleymills 4:1f8e079924ba 14
ashleymills 44:6d0ac4747f5b 15 private:
ashleymills 44:6d0ac4747f5b 16
ashleymills 4:1f8e079924ba 17 virtual void setupTest() {
ashleymills 4:1f8e079924ba 18 allocStorage();
ashleymills 4:1f8e079924ba 19 }
ashleymills 4:1f8e079924ba 20
ashleymills 11:a286d8112b45 21 virtual void endTest() {
ashleymills 4:1f8e079924ba 22 freeStorage();
ashleymills 3:28336c2e94e4 23 }
ashleymills 3:28336c2e94e4 24
ashleymills 44:6d0ac4747f5b 25 virtual bool executeTest() {
ashleymills 25:55b865c41f21 26 LOG(gTest50Description);
ashleymills 9:3ff68422f4d7 27 int numIterations = 10;
ashleymills 4:1f8e079924ba 28 size_t smCount;
ashleymills 25:55b865c41f21 29 LOG("...", _testCaseNumber);
ashleymills 4:1f8e079924ba 30 LOG("Getting MSISDN");
ashleymills 4:1f8e079924ba 31 _modem->sendUSSD("*#100#",_ownNumber,_numberLen);
ashleymills 4:1f8e079924ba 32 LOG("Got MSISDN %s",_ownNumber);
ashleymills 9:3ff68422f4d7 33 for(int i=0; i<numIterations; i++) {
ashleymills 4:1f8e079924ba 34 createRandomString(_smsOut,_smsLen);
ashleymills 9:3ff68422f4d7 35 if(_modem->sendSM(_ownNumber,_smsOut)!=0) {
ashleymills 9:3ff68422f4d7 36 LOG("Error sending short message");
ashleymills 4:1f8e079924ba 37 }
ashleymills 12:b50d37429dff 38 LOG("Created: %s",_smsOut);
ashleymills 4:1f8e079924ba 39 bool gotMessage = false;
ashleymills 12:b50d37429dff 40 Timer t;
ashleymills 12:b50d37429dff 41 t.start();
ashleymills 12:b50d37429dff 42 while(!gotMessage && t.read_ms()<25000) {
ashleymills 4:1f8e079924ba 43 if(_modem->getSMCount(&smCount)!=0) {
ashleymills 4:1f8e079924ba 44 LOG("Faiure getting SM count");
ashleymills 4:1f8e079924ba 45 return false;
ashleymills 4:1f8e079924ba 46 }
ashleymills 4:1f8e079924ba 47
ashleymills 4:1f8e079924ba 48 if(smCount>0) {
ashleymills 4:1f8e079924ba 49 if(_modem->getSM(_senderNumber,_smsIn,_smsLen)!=0) {
ashleymills 4:1f8e079924ba 50 LOG("Failure getting SM");
ashleymills 4:1f8e079924ba 51 return false;
ashleymills 4:1f8e079924ba 52 }
ashleymills 4:1f8e079924ba 53 LOG("Got SMS: %s",_smsIn);
ashleymills 9:3ff68422f4d7 54 if(strcmp(_smsIn,_smsOut)!=0) {
ashleymills 9:3ff68422f4d7 55 LOG("FAIL: strings did not match");
ashleymills 9:3ff68422f4d7 56 return false;
ashleymills 9:3ff68422f4d7 57 }
ashleymills 4:1f8e079924ba 58 gotMessage = true;
ashleymills 4:1f8e079924ba 59 }
ashleymills 4:1f8e079924ba 60 Thread::wait(50);
ashleymills 4:1f8e079924ba 61 }
ashleymills 12:b50d37429dff 62 if(!gotMessage) {
ashleymills 12:b50d37429dff 63 LOG("FAIL: timeout on waiting for SMS");
ashleymills 12:b50d37429dff 64 return false;
ashleymills 12:b50d37429dff 65 }
ashleymills 4:1f8e079924ba 66 }
ashleymills 3:28336c2e94e4 67
ashleymills 4:1f8e079924ba 68 return true;
ashleymills 3:28336c2e94e4 69 }
ashleymills 3:28336c2e94e4 70
ashleymills 4:1f8e079924ba 71 void createRandomString(char *target, int len) {
ashleymills 4:1f8e079924ba 72 for(int i=0; i<len; i++) {
ashleymills 9:3ff68422f4d7 73 target[i] = 65+rand()%16;
ashleymills 4:1f8e079924ba 74 }
ashleymills 4:1f8e079924ba 75 target[len-1] = 0x00;
ashleymills 4:1f8e079924ba 76 }
ashleymills 4:1f8e079924ba 77
ashleymills 4:1f8e079924ba 78 void allocStorage() {
ashleymills 4:1f8e079924ba 79 _ownNumber = (char*)malloc(_numberLen*sizeof(char));
ashleymills 4:1f8e079924ba 80 _senderNumber = (char*)malloc(_numberLen*sizeof(char));
ashleymills 4:1f8e079924ba 81 _smsOut = (char*)malloc(_smsLen*sizeof(char));
ashleymills 4:1f8e079924ba 82 _smsIn = (char*)malloc(_smsLen*sizeof(char));
ashleymills 4:1f8e079924ba 83 }
ashleymills 3:28336c2e94e4 84
ashleymills 4:1f8e079924ba 85 void freeStorage() {
ashleymills 4:1f8e079924ba 86 free(_ownNumber);
ashleymills 4:1f8e079924ba 87 free(_senderNumber);
ashleymills 4:1f8e079924ba 88 free(_smsOut);
ashleymills 4:1f8e079924ba 89 free(_smsIn);
ashleymills 4:1f8e079924ba 90 }
ashleymills 4:1f8e079924ba 91
ashleymills 4:1f8e079924ba 92 char* _ownNumber;
ashleymills 4:1f8e079924ba 93 char* _senderNumber;
ashleymills 4:1f8e079924ba 94 char* _smsOut;
ashleymills 4:1f8e079924ba 95 char* _smsIn;
ashleymills 4:1f8e079924ba 96 int _smsLen;
ashleymills 4:1f8e079924ba 97 int _numberLen;
ashleymills 3:28336c2e94e4 98 };