Vodafone Test Suite

Dependencies:   mbed-rtos mbed HTTPClient VodafoneUSBModem

Committer:
ashleymills
Date:
Wed Jan 29 16:34:38 2014 +0000
Revision:
74:e52ac9624f7f
Parent:
73:effa8fcd45fc
Updated dependencies to latest versions.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ashleymills 66:6b00a764e549 1 #include "Test00.h"
ashleymills 66:6b00a764e549 2 #include "socket.h"
ashleymills 67:a61d60fa342c 3 #include "TestHelper.h"
ashleymills 66:6b00a764e549 4
ashleymills 66:6b00a764e549 5 const char *gTest00DNSIn[5] = {
ashleymills 66:6b00a764e549 6 "m2mthings.com",
ashleymills 66:6b00a764e549 7 "kent.ac.uk",
ashleymills 73:effa8fcd45fc 8 "fungi.com",
ashleymills 66:6b00a764e549 9 "m2mcontroller.com",
ashleymills 66:6b00a764e549 10 "www.mbed.org",
ashleymills 66:6b00a764e549 11 };
ashleymills 66:6b00a764e549 12
ashleymills 66:6b00a764e549 13 const char *gTest00DNSOut[5] = {
ashleymills 66:6b00a764e549 14 "109.74.199.96",
ashleymills 66:6b00a764e549 15 "129.12.10.249",
ashleymills 73:effa8fcd45fc 16 "208.43.141.141",
ashleymills 66:6b00a764e549 17 "62.105.171.138",
ashleymills 66:6b00a764e549 18 "217.140.101.20",
ashleymills 66:6b00a764e549 19 };
ashleymills 66:6b00a764e549 20
ashleymills 66:6b00a764e549 21 const int gTest00NumDNSVals = 5;
ashleymills 66:6b00a764e549 22
ashleymills 66:6b00a764e549 23 Test00::Test00(VodafoneUSBModem *m) : VodafoneTestCase(m) {}
ashleymills 66:6b00a764e549 24
ashleymills 66:6b00a764e549 25 void Test00::setupTest() {}
ashleymills 66:6b00a764e549 26
ashleymills 66:6b00a764e549 27 bool Test00::executeTest() {
ashleymills 66:6b00a764e549 28 bool outcome = true;
ashleymills 66:6b00a764e549 29 LOG("Description: %s",gTest00Description);
ashleymills 66:6b00a764e549 30 LOG("Connecting to internet");
ashleymills 69:4fc3b0ad12c7 31 if(_modem->connect(APN,APN_USERNAME,APN_PASSWORD)==0) {
ashleymills 66:6b00a764e549 32 LOG("Connected to internet");
ashleymills 66:6b00a764e549 33 } else {
ashleymills 66:6b00a764e549 34 LOG("Failed to connect to internet");
ashleymills 66:6b00a764e549 35 outcome = false;
ashleymills 66:6b00a764e549 36 }
ashleymills 66:6b00a764e549 37
ashleymills 66:6b00a764e549 38 // try connecting to DNS server directly
ashleymills 66:6b00a764e549 39 int sockfd;
ashleymills 66:6b00a764e549 40 //if(connectToSocket("88.82.13.28",53,&sockfd)) {
ashleymills 66:6b00a764e549 41
ashleymills 66:6b00a764e549 42 if(connectToSocket("109.74.199.96",80,&sockfd)) {
ashleymills 66:6b00a764e549 43 close(sockfd);
ashleymills 66:6b00a764e549 44 }
ashleymills 66:6b00a764e549 45
ashleymills 66:6b00a764e549 46
ashleymills 66:6b00a764e549 47 struct hostent *server;
ashleymills 66:6b00a764e549 48 do {
ashleymills 66:6b00a764e549 49 while(1) {
ashleymills 66:6b00a764e549 50 LOG("Getting host address");
ashleymills 66:6b00a764e549 51 server = ::gethostbyname("m2mthings.com");
ashleymills 66:6b00a764e549 52 if(server==NULL) {
ashleymills 66:6b00a764e549 53 LOG("Failure getting host address!");
ashleymills 66:6b00a764e549 54 outcome = false;
ashleymills 66:6b00a764e549 55 //break;
ashleymills 66:6b00a764e549 56 } else {
ashleymills 66:6b00a764e549 57 LOG("got host address, length %d",server->h_length);
ashleymills 66:6b00a764e549 58 break;
ashleymills 66:6b00a764e549 59 }
ashleymills 66:6b00a764e549 60 }
ashleymills 66:6b00a764e549 61
ashleymills 66:6b00a764e549 62 if(server->h_length==4) {
ashleymills 66:6b00a764e549 63 LOG("DNS lookup returned %d.%d.%d.%d",
ashleymills 66:6b00a764e549 64 server->h_addr[0],
ashleymills 66:6b00a764e549 65 server->h_addr[1],
ashleymills 66:6b00a764e549 66 server->h_addr[2],
ashleymills 66:6b00a764e549 67 server->h_addr[3]
ashleymills 66:6b00a764e549 68 );
ashleymills 66:6b00a764e549 69 outcome = true;
ashleymills 66:6b00a764e549 70 } else {
ashleymills 66:6b00a764e549 71 LOG("Only IPv4 addresses are supported.");
ashleymills 66:6b00a764e549 72 outcome = false;
ashleymills 66:6b00a764e549 73 break;
ashleymills 66:6b00a764e549 74 }
ashleymills 66:6b00a764e549 75 } while(0);
ashleymills 66:6b00a764e549 76
ashleymills 66:6b00a764e549 77 // this is the real test
ashleymills 66:6b00a764e549 78
ashleymills 66:6b00a764e549 79 char dnsOut[32];
ashleymills 66:6b00a764e549 80
ashleymills 66:6b00a764e549 81 for(int i=0; i<gTest00NumDNSVals; i++) {
ashleymills 66:6b00a764e549 82 LOG("Running DNS lookup for %s",gTest00DNSIn[i]);
ashleymills 66:6b00a764e549 83 server = ::gethostbyname(gTest00DNSIn[i]);
ashleymills 66:6b00a764e549 84 if(server==NULL) {
ashleymills 66:6b00a764e549 85 LOG("Failure getting host address!");
ashleymills 66:6b00a764e549 86 outcome = false;
ashleymills 66:6b00a764e549 87 break;
ashleymills 66:6b00a764e549 88 } else {
ashleymills 66:6b00a764e549 89 LOG("Got host address, length %d",server->h_length);
ashleymills 66:6b00a764e549 90 }
ashleymills 66:6b00a764e549 91
ashleymills 66:6b00a764e549 92 if(server->h_length==4) {
ashleymills 66:6b00a764e549 93 sprintf(dnsOut,"%d.%d.%d.%d",
ashleymills 66:6b00a764e549 94 server->h_addr[0],
ashleymills 66:6b00a764e549 95 server->h_addr[1],
ashleymills 66:6b00a764e549 96 server->h_addr[2],
ashleymills 66:6b00a764e549 97 server->h_addr[3]
ashleymills 66:6b00a764e549 98 );
ashleymills 66:6b00a764e549 99 LOG("DNS lookup returned %s",dnsOut);
ashleymills 66:6b00a764e549 100 } else {
ashleymills 66:6b00a764e549 101 LOG("Error. Only IPv4 addresses are supported.");
ashleymills 66:6b00a764e549 102 outcome = false;
ashleymills 66:6b00a764e549 103 break;
ashleymills 66:6b00a764e549 104 }
ashleymills 66:6b00a764e549 105
ashleymills 66:6b00a764e549 106 LOG("Expected %s, got %s",gTest00DNSOut[i],dnsOut);
ashleymills 66:6b00a764e549 107 if(strcmp(dnsOut,gTest00DNSOut[i])!=0) {
ashleymills 66:6b00a764e549 108 LOG("Mismatch. Fail.");
ashleymills 66:6b00a764e549 109 outcome = false;
ashleymills 66:6b00a764e549 110 break;
ashleymills 66:6b00a764e549 111 } else {
ashleymills 66:6b00a764e549 112 LOG("Match. OK.");
ashleymills 66:6b00a764e549 113 }
ashleymills 66:6b00a764e549 114 }
ashleymills 66:6b00a764e549 115
ashleymills 66:6b00a764e549 116 _modem->disconnect();
ashleymills 66:6b00a764e549 117 return outcome;
ashleymills 66:6b00a764e549 118 }
ashleymills 66:6b00a764e549 119
ashleymills 66:6b00a764e549 120 void Test00::endTest() { }