Vodafone Test Suite
Dependencies: mbed-rtos mbed HTTPClient VodafoneUSBModem
Tests/Test00.cpp
- Committer:
- ashleymills
- Date:
- 2014-01-29
- Revision:
- 74:e52ac9624f7f
- Parent:
- 73:effa8fcd45fc
File content as of revision 74:e52ac9624f7f:
#include "Test00.h" #include "socket.h" #include "TestHelper.h" const char *gTest00DNSIn[5] = { "m2mthings.com", "kent.ac.uk", "fungi.com", "m2mcontroller.com", "www.mbed.org", }; const char *gTest00DNSOut[5] = { "109.74.199.96", "129.12.10.249", "208.43.141.141", "62.105.171.138", "217.140.101.20", }; const int gTest00NumDNSVals = 5; Test00::Test00(VodafoneUSBModem *m) : VodafoneTestCase(m) {} void Test00::setupTest() {} bool Test00::executeTest() { bool outcome = true; LOG("Description: %s",gTest00Description); LOG("Connecting to internet"); if(_modem->connect(APN,APN_USERNAME,APN_PASSWORD)==0) { LOG("Connected to internet"); } else { LOG("Failed to connect to internet"); outcome = false; } // try connecting to DNS server directly int sockfd; //if(connectToSocket("88.82.13.28",53,&sockfd)) { if(connectToSocket("109.74.199.96",80,&sockfd)) { close(sockfd); } struct hostent *server; do { while(1) { LOG("Getting host address"); server = ::gethostbyname("m2mthings.com"); if(server==NULL) { LOG("Failure getting host address!"); outcome = false; //break; } else { LOG("got host address, length %d",server->h_length); break; } } if(server->h_length==4) { LOG("DNS lookup returned %d.%d.%d.%d", server->h_addr[0], server->h_addr[1], server->h_addr[2], server->h_addr[3] ); outcome = true; } else { LOG("Only IPv4 addresses are supported."); outcome = false; break; } } while(0); // this is the real test char dnsOut[32]; for(int i=0; i<gTest00NumDNSVals; i++) { LOG("Running DNS lookup for %s",gTest00DNSIn[i]); server = ::gethostbyname(gTest00DNSIn[i]); if(server==NULL) { LOG("Failure getting host address!"); outcome = false; break; } else { LOG("Got host address, length %d",server->h_length); } if(server->h_length==4) { sprintf(dnsOut,"%d.%d.%d.%d", server->h_addr[0], server->h_addr[1], server->h_addr[2], server->h_addr[3] ); LOG("DNS lookup returned %s",dnsOut); } else { LOG("Error. Only IPv4 addresses are supported."); outcome = false; break; } LOG("Expected %s, got %s",gTest00DNSOut[i],dnsOut); if(strcmp(dnsOut,gTest00DNSOut[i])!=0) { LOG("Mismatch. Fail."); outcome = false; break; } else { LOG("Match. OK."); } } _modem->disconnect(); return outcome; } void Test00::endTest() { }