fixed buffer management in case of packet fragmentation; improved test pattern with pseudo random to avoid pattern simulation

Fork of NSAPITests by Licio Mapelli

Committer:
Brian Daniels
Date:
Wed Mar 02 13:24:46 2016 -0600
Revision:
2:41bf867fedd2
Parent:
1:796ba8b082b1
Child:
3:8b595ee6219d
Adding NetworkInterface tests

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Christopher Haster 1:796ba8b082b1 1 #include "NetworkInterface.h"
Brian Daniels 2:41bf867fedd2 2 #include "TCPSocket.h"
Brian Daniels 2:41bf867fedd2 3 #include <stdio.h>
Brian Daniels 2:41bf867fedd2 4 #include "string.h"
Brian Daniels 2:41bf867fedd2 5
Brian Daniels 2:41bf867fedd2 6
Brian Daniels 2:41bf867fedd2 7 int nsapi_isConnected_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 8 {
Brian Daniels 2:41bf867fedd2 9 return !(iface->isConnected());
Brian Daniels 2:41bf867fedd2 10 }
Brian Daniels 2:41bf867fedd2 11
Brian Daniels 2:41bf867fedd2 12 int nsapi_getIPAddress_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 13 {
Brian Daniels 2:41bf867fedd2 14
Brian Daniels 2:41bf867fedd2 15 if (!iface->getIPAddress()[0]) {
Brian Daniels 2:41bf867fedd2 16 printf("'getIpAddress' did not return an IP address\r\n");
Brian Daniels 2:41bf867fedd2 17 return -1;
Brian Daniels 2:41bf867fedd2 18 }
Brian Daniels 2:41bf867fedd2 19
Brian Daniels 2:41bf867fedd2 20 return 0;
Brian Daniels 2:41bf867fedd2 21 }
Brian Daniels 2:41bf867fedd2 22
Brian Daniels 2:41bf867fedd2 23 int nsapi_getMACAddress_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 24 {
Brian Daniels 2:41bf867fedd2 25
Brian Daniels 2:41bf867fedd2 26 if (!iface->getMACAddress()[0]) {
Brian Daniels 2:41bf867fedd2 27 printf("'getMacAddress' did not return a MAC address\r\n");
Brian Daniels 2:41bf867fedd2 28 return -1;
Brian Daniels 2:41bf867fedd2 29 }
Brian Daniels 2:41bf867fedd2 30
Brian Daniels 2:41bf867fedd2 31 return 0;
Brian Daniels 2:41bf867fedd2 32 }
Brian Daniels 2:41bf867fedd2 33
Brian Daniels 2:41bf867fedd2 34 int nsapi_getHostByName_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 35 {
Brian Daniels 2:41bf867fedd2 36 char ip_address[NS_IP_SIZE] = "\0";
Brian Daniels 2:41bf867fedd2 37
Brian Daniels 2:41bf867fedd2 38 int32_t ret = iface->getHostByName("google.com", ip_address);
Brian Daniels 2:41bf867fedd2 39
Brian Daniels 2:41bf867fedd2 40 if (ret) {
Brian Daniels 2:41bf867fedd2 41 printf("'getHostByName' failed\r\n");
Brian Daniels 2:41bf867fedd2 42 return -1;
Brian Daniels 2:41bf867fedd2 43 } else if (!ip_address[0]) {
Brian Daniels 2:41bf867fedd2 44 printf("Returned IP address was null\r\n");
Brian Daniels 2:41bf867fedd2 45 return -2;
Brian Daniels 2:41bf867fedd2 46 } else {
Brian Daniels 2:41bf867fedd2 47 return 0;
Brian Daniels 2:41bf867fedd2 48 }
Brian Daniels 2:41bf867fedd2 49 }
Brian Daniels 2:41bf867fedd2 50
Brian Daniels 2:41bf867fedd2 51 int nsapi_run_test(const char *name, NetworkInterface *iface, int (*test)(NetworkInterface*)) {
Brian Daniels 2:41bf867fedd2 52 int ret;
Brian Daniels 2:41bf867fedd2 53
Brian Daniels 2:41bf867fedd2 54 printf("---------------------\r\n");
Brian Daniels 2:41bf867fedd2 55 printf("%s: running...\r\n", name);
Brian Daniels 2:41bf867fedd2 56
Brian Daniels 2:41bf867fedd2 57 ret = test(iface);
Brian Daniels 2:41bf867fedd2 58
Brian Daniels 2:41bf867fedd2 59 printf("%s: ", name);
Brian Daniels 2:41bf867fedd2 60
Brian Daniels 2:41bf867fedd2 61 if (!ret) {
Brian Daniels 2:41bf867fedd2 62 printf("PASS\r\n");
Brian Daniels 2:41bf867fedd2 63 } else {
Brian Daniels 2:41bf867fedd2 64 printf("FAIL (Return code %d)\r\n", ret);
Brian Daniels 2:41bf867fedd2 65 }
Brian Daniels 2:41bf867fedd2 66
Brian Daniels 2:41bf867fedd2 67 return ret;
Brian Daniels 2:41bf867fedd2 68 }
Christopher Haster 1:796ba8b082b1 69
Christopher Haster 1:796ba8b082b1 70 int nsapi_tests(const char *name, NetworkInterface *iface)
Christopher Haster 1:796ba8b082b1 71 {
Brian Daniels 2:41bf867fedd2 72 int ret = 0;
Brian Daniels 2:41bf867fedd2 73
Brian Daniels 2:41bf867fedd2 74 ret |= nsapi_run_test("nsapi_isConnected_test", iface, &nsapi_isConnected_test);
Brian Daniels 2:41bf867fedd2 75 ret |= nsapi_run_test("nsapi_getIPAddress_test", iface, &nsapi_getIPAddress_test);
Brian Daniels 2:41bf867fedd2 76 ret |= nsapi_run_test("nsapi_getMACAddress_test", iface, &nsapi_getMACAddress_test);
Brian Daniels 2:41bf867fedd2 77 ret |= nsapi_run_test("nsapi_getHostByName_test", iface, &nsapi_getHostByName_test);
Christopher Haster 1:796ba8b082b1 78
Christopher Haster 1:796ba8b082b1 79
Brian Daniels 2:41bf867fedd2 80 return ret;
Christopher Haster 1:796ba8b082b1 81 }
Christopher Haster 1:796ba8b082b1 82