Vodafone Test Suite
Dependencies: mbed-rtos mbed HTTPClient VodafoneUSBModem
Test00.cpp
00001 #include "Test00.h" 00002 #include "socket.h" 00003 #include "TestHelper.h" 00004 00005 const char *gTest00DNSIn[5] = { 00006 "m2mthings.com", 00007 "kent.ac.uk", 00008 "fungi.com", 00009 "m2mcontroller.com", 00010 "www.mbed.org", 00011 }; 00012 00013 const char *gTest00DNSOut[5] = { 00014 "109.74.199.96", 00015 "129.12.10.249", 00016 "208.43.141.141", 00017 "62.105.171.138", 00018 "217.140.101.20", 00019 }; 00020 00021 const int gTest00NumDNSVals = 5; 00022 00023 Test00::Test00(VodafoneUSBModem *m) : VodafoneTestCase(m) {} 00024 00025 void Test00::setupTest() {} 00026 00027 bool Test00::executeTest() { 00028 bool outcome = true; 00029 LOG("Description: %s",gTest00Description); 00030 LOG("Connecting to internet"); 00031 if(_modem->connect(APN,APN_USERNAME,APN_PASSWORD)==0) { 00032 LOG("Connected to internet"); 00033 } else { 00034 LOG("Failed to connect to internet"); 00035 outcome = false; 00036 } 00037 00038 // try connecting to DNS server directly 00039 int sockfd; 00040 //if(connectToSocket("88.82.13.28",53,&sockfd)) { 00041 00042 if(connectToSocket("109.74.199.96",80,&sockfd)) { 00043 close(sockfd); 00044 } 00045 00046 00047 struct hostent *server; 00048 do { 00049 while(1) { 00050 LOG("Getting host address"); 00051 server = ::gethostbyname("m2mthings.com"); 00052 if(server==NULL) { 00053 LOG("Failure getting host address!"); 00054 outcome = false; 00055 //break; 00056 } else { 00057 LOG("got host address, length %d",server->h_length); 00058 break; 00059 } 00060 } 00061 00062 if(server->h_length==4) { 00063 LOG("DNS lookup returned %d.%d.%d.%d", 00064 server->h_addr[0], 00065 server->h_addr[1], 00066 server->h_addr[2], 00067 server->h_addr[3] 00068 ); 00069 outcome = true; 00070 } else { 00071 LOG("Only IPv4 addresses are supported."); 00072 outcome = false; 00073 break; 00074 } 00075 } while(0); 00076 00077 // this is the real test 00078 00079 char dnsOut[32]; 00080 00081 for(int i=0; i<gTest00NumDNSVals; i++) { 00082 LOG("Running DNS lookup for %s",gTest00DNSIn[i]); 00083 server = ::gethostbyname(gTest00DNSIn[i]); 00084 if(server==NULL) { 00085 LOG("Failure getting host address!"); 00086 outcome = false; 00087 break; 00088 } else { 00089 LOG("Got host address, length %d",server->h_length); 00090 } 00091 00092 if(server->h_length==4) { 00093 sprintf(dnsOut,"%d.%d.%d.%d", 00094 server->h_addr[0], 00095 server->h_addr[1], 00096 server->h_addr[2], 00097 server->h_addr[3] 00098 ); 00099 LOG("DNS lookup returned %s",dnsOut); 00100 } else { 00101 LOG("Error. Only IPv4 addresses are supported."); 00102 outcome = false; 00103 break; 00104 } 00105 00106 LOG("Expected %s, got %s",gTest00DNSOut[i],dnsOut); 00107 if(strcmp(dnsOut,gTest00DNSOut[i])!=0) { 00108 LOG("Mismatch. Fail."); 00109 outcome = false; 00110 break; 00111 } else { 00112 LOG("Match. OK."); 00113 } 00114 } 00115 00116 _modem->disconnect(); 00117 return outcome; 00118 } 00119 00120 void Test00::endTest() { }
Generated on Sun Jul 17 2022 01:04:13 by 1.7.2