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:
Thu Mar 03 14:19:34 2016 -0600
Revision:
7:444bc156318f
Parent:
6:d847da0dbf4f
Child:
8:5a5c498e1fa0
Adding different packet sizes for socket tests. Also making sure non-blocking recv is non-blocking

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 3:8b595ee6219d 3 #include "UDPSocket.h"
Brian Daniels 2:41bf867fedd2 4 #include <stdio.h>
Brian Daniels 2:41bf867fedd2 5 #include "string.h"
Brian Daniels 2:41bf867fedd2 6
Brian Daniels 7:444bc156318f 7 #define NSAPI_MAX_DATA_SIZE 1000
Brian Daniels 7:444bc156318f 8
Brian Daniels 7:444bc156318f 9 char expected_data[NSAPI_MAX_DATA_SIZE];
Brian Daniels 7:444bc156318f 10 char received_data[NSAPI_MAX_DATA_SIZE];
Brian Daniels 2:41bf867fedd2 11
Brian Daniels 3:8b595ee6219d 12 int nsapi_ni_isConnected_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 13 {
Brian Daniels 2:41bf867fedd2 14 return !(iface->isConnected());
Brian Daniels 2:41bf867fedd2 15 }
Brian Daniels 2:41bf867fedd2 16
Brian Daniels 3:8b595ee6219d 17 int nsapi_ni_getIPAddress_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 18 {
Brian Daniels 2:41bf867fedd2 19
Brian Daniels 2:41bf867fedd2 20 if (!iface->getIPAddress()[0]) {
Brian Daniels 2:41bf867fedd2 21 printf("'getIpAddress' did not return an IP address\r\n");
Brian Daniels 2:41bf867fedd2 22 return -1;
Brian Daniels 2:41bf867fedd2 23 }
Brian Daniels 2:41bf867fedd2 24
Brian Daniels 2:41bf867fedd2 25 return 0;
Brian Daniels 2:41bf867fedd2 26 }
Brian Daniels 2:41bf867fedd2 27
Brian Daniels 3:8b595ee6219d 28 int nsapi_ni_getMACAddress_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 29 {
Brian Daniels 2:41bf867fedd2 30
Brian Daniels 2:41bf867fedd2 31 if (!iface->getMACAddress()[0]) {
Brian Daniels 2:41bf867fedd2 32 printf("'getMacAddress' did not return a MAC address\r\n");
Brian Daniels 2:41bf867fedd2 33 return -1;
Brian Daniels 2:41bf867fedd2 34 }
Brian Daniels 2:41bf867fedd2 35
Brian Daniels 2:41bf867fedd2 36 return 0;
Brian Daniels 2:41bf867fedd2 37 }
Brian Daniels 2:41bf867fedd2 38
Brian Daniels 3:8b595ee6219d 39 int nsapi_ni_getHostByName_test(NetworkInterface *iface)
Brian Daniels 2:41bf867fedd2 40 {
Brian Daniels 2:41bf867fedd2 41 char ip_address[NS_IP_SIZE] = "\0";
Brian Daniels 2:41bf867fedd2 42
Brian Daniels 3:8b595ee6219d 43 int32_t ret = iface->getHostByName("developer.mbed.org", ip_address);
Brian Daniels 2:41bf867fedd2 44
Brian Daniels 2:41bf867fedd2 45 if (ret) {
Brian Daniels 3:8b595ee6219d 46 printf("'getHostByName' failed with code %d\r\n", ret);
Brian Daniels 2:41bf867fedd2 47 return -1;
Brian Daniels 2:41bf867fedd2 48 } else if (!ip_address[0]) {
Brian Daniels 2:41bf867fedd2 49 printf("Returned IP address was null\r\n");
Brian Daniels 2:41bf867fedd2 50 return -2;
Brian Daniels 2:41bf867fedd2 51 } else {
Brian Daniels 2:41bf867fedd2 52 return 0;
Brian Daniels 2:41bf867fedd2 53 }
Brian Daniels 2:41bf867fedd2 54 }
Brian Daniels 2:41bf867fedd2 55
Brian Daniels 3:8b595ee6219d 56 int nsapi_socket_open_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 3:8b595ee6219d 57 {
Brian Daniels 3:8b595ee6219d 58 int32_t ret = socket->open(test_address, test_port);
Brian Daniels 3:8b595ee6219d 59
Brian Daniels 3:8b595ee6219d 60 if (ret) {
Brian Daniels 3:8b595ee6219d 61 printf("'open' failed with code %d\r\n", ret);
Brian Daniels 3:8b595ee6219d 62 return -1;
Brian Daniels 3:8b595ee6219d 63 } else {
Brian Daniels 3:8b595ee6219d 64 return 0;
Brian Daniels 3:8b595ee6219d 65 }
Brian Daniels 3:8b595ee6219d 66 }
Brian Daniels 3:8b595ee6219d 67
Brian Daniels 3:8b595ee6219d 68 int nsapi_socket_isConnected_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 3:8b595ee6219d 69 {
Brian Daniels 3:8b595ee6219d 70 return !socket->isConnected();
Brian Daniels 3:8b595ee6219d 71 }
Brian Daniels 3:8b595ee6219d 72
Brian Daniels 3:8b595ee6219d 73
Brian Daniels 3:8b595ee6219d 74 int nsapi_socket_getIpAddress_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 3:8b595ee6219d 75 {
Brian Daniels 3:8b595ee6219d 76 const char *cur_ip_address = socket->getIPAddress();
Brian Daniels 2:41bf867fedd2 77
Brian Daniels 3:8b595ee6219d 78 if (!cur_ip_address[0]) {
Brian Daniels 3:8b595ee6219d 79 printf("'getIpAddress' did not return an IP address\r\n");
Brian Daniels 3:8b595ee6219d 80 return -1;
Brian Daniels 3:8b595ee6219d 81 } else if (strcmp(cur_ip_address, test_address)) {
Brian Daniels 3:8b595ee6219d 82 printf("'getIpAddress' did not reutrurn the expected IP address\r\n");
Brian Daniels 3:8b595ee6219d 83 printf("Expected: %s\r\n", test_address);
Brian Daniels 3:8b595ee6219d 84 printf("Actual: %s\r\n", cur_ip_address);
Brian Daniels 3:8b595ee6219d 85 return -2;
Brian Daniels 3:8b595ee6219d 86 }
Brian Daniels 3:8b595ee6219d 87
Brian Daniels 3:8b595ee6219d 88 return 0;
Brian Daniels 3:8b595ee6219d 89 }
Brian Daniels 3:8b595ee6219d 90
Brian Daniels 3:8b595ee6219d 91 int nsapi_socket_getPort_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 3:8b595ee6219d 92 {
Brian Daniels 3:8b595ee6219d 93 uint16_t cur_port = socket->getPort();
Brian Daniels 3:8b595ee6219d 94
Brian Daniels 3:8b595ee6219d 95 if (cur_port != test_port) {
Brian Daniels 3:8b595ee6219d 96 printf("'getPort' did not return the expected port\r\n");
Brian Daniels 3:8b595ee6219d 97 printf("Expected: %d\r\n", test_port);
Brian Daniels 3:8b595ee6219d 98 printf("Actual: %d\r\n", cur_port);
Brian Daniels 3:8b595ee6219d 99 return -1;
Brian Daniels 3:8b595ee6219d 100 }
Brian Daniels 3:8b595ee6219d 101
Brian Daniels 3:8b595ee6219d 102 return 0;
Brian Daniels 3:8b595ee6219d 103 }
Brian Daniels 2:41bf867fedd2 104
Brian Daniels 7:444bc156318f 105 void nsapi_socket_test_setup(char *buffer, int size)
Brian Daniels 3:8b595ee6219d 106 {
Brian Daniels 7:444bc156318f 107 int i;
Brian Daniels 7:444bc156318f 108 for (i = 0; i < size; i++) {
Brian Daniels 7:444bc156318f 109 buffer[i] = '0' + (i % 10);
Brian Daniels 7:444bc156318f 110 }
Brian Daniels 7:444bc156318f 111 }
Brian Daniels 3:8b595ee6219d 112
Brian Daniels 7:444bc156318f 113 int nsapi_socket_blocking_test_helper(Socket *socket, const char *test_address, uint16_t test_port, uint32_t data_size)
Brian Daniels 7:444bc156318f 114 {
Brian Daniels 7:444bc156318f 115 nsapi_socket_test_setup(expected_data, data_size);
Brian Daniels 7:444bc156318f 116
Brian Daniels 7:444bc156318f 117 int32_t ret = socket->send(expected_data, data_size);
Brian Daniels 3:8b595ee6219d 118
Brian Daniels 3:8b595ee6219d 119 if (ret) {
Brian Daniels 5:03b0570b4c29 120 printf("'send' failed during test with code %d\r\n", ret);
Brian Daniels 3:8b595ee6219d 121 return -4;
Brian Daniels 3:8b595ee6219d 122 }
Brian Daniels 3:8b595ee6219d 123
Brian Daniels 7:444bc156318f 124 int32_t bytes_received = socket->recv(received_data, sizeof(received_data));
Brian Daniels 2:41bf867fedd2 125
Brian Daniels 7:444bc156318f 126 if (bytes_received >= (int32_t)data_size) {
Brian Daniels 7:444bc156318f 127 if (strstr(received_data, expected_data) != NULL) {
Brian Daniels 3:8b595ee6219d 128 return 0;
Brian Daniels 3:8b595ee6219d 129 } else {
Brian Daniels 3:8b595ee6219d 130 printf("'recv' returned incorrect data with length %d\r\n", bytes_received);
Brian Daniels 3:8b595ee6219d 131 return -2;
Brian Daniels 3:8b595ee6219d 132 }
Brian Daniels 3:8b595ee6219d 133 } else if (bytes_received < 0) {
Brian Daniels 3:8b595ee6219d 134 printf("'recv' failed with code %d\r\n", bytes_received);
Brian Daniels 3:8b595ee6219d 135 return -3;
Brian Daniels 2:41bf867fedd2 136 } else {
Brian Daniels 5:03b0570b4c29 137 printf("'recv' returned no data\r\n");
Brian Daniels 3:8b595ee6219d 138 return -1;
Brian Daniels 3:8b595ee6219d 139 }
Brian Daniels 3:8b595ee6219d 140 }
Brian Daniels 3:8b595ee6219d 141
Brian Daniels 7:444bc156318f 142 int nsapi_socket_blocking_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 7:444bc156318f 143 {
Brian Daniels 7:444bc156318f 144 int32_t result, i;
Brian Daniels 7:444bc156318f 145 int32_t packet_sizes[] = {10, 100, 1000};
Brian Daniels 7:444bc156318f 146 int32_t num_packet_sizes = 3;
Brian Daniels 7:444bc156318f 147
Brian Daniels 7:444bc156318f 148 for (i = 0; i < num_packet_sizes; i++) {
Brian Daniels 7:444bc156318f 149 result = nsapi_socket_blocking_test_helper(socket, test_address, test_port, packet_sizes[i]);
Brian Daniels 7:444bc156318f 150
Brian Daniels 7:444bc156318f 151 if (result) {
Brian Daniels 7:444bc156318f 152 printf("nsapi_socket_blocking_test failed with data size %d\r\n", packet_sizes[i]);
Brian Daniels 7:444bc156318f 153 break;
Brian Daniels 7:444bc156318f 154 }
Brian Daniels 7:444bc156318f 155 }
Brian Daniels 7:444bc156318f 156
Brian Daniels 7:444bc156318f 157 if (i >= num_packet_sizes) {
Brian Daniels 7:444bc156318f 158 return 0;
Brian Daniels 7:444bc156318f 159 } else {
Brian Daniels 7:444bc156318f 160 return -num_packet_sizes;
Brian Daniels 7:444bc156318f 161 }
Brian Daniels 7:444bc156318f 162 }
Brian Daniels 7:444bc156318f 163
Brian Daniels 7:444bc156318f 164 int nsapi_socket_non_blocking_test_helper(Socket *socket, const char *test_address, uint16_t test_port, uint32_t data_size)
Brian Daniels 3:8b595ee6219d 165 {
Brian Daniels 3:8b595ee6219d 166 int32_t bytes_received;
Brian Daniels 3:8b595ee6219d 167 int result = -1;
Brian Daniels 7:444bc156318f 168
Brian Daniels 7:444bc156318f 169 nsapi_socket_test_setup(expected_data, data_size);
Brian Daniels 7:444bc156318f 170
Brian Daniels 7:444bc156318f 171 // First check to make sure `recv` will not block and return 0 for bytes
Brian Daniels 7:444bc156318f 172 // received. If the tests do proceed after this test, be sure your `recv`
Brian Daniels 7:444bc156318f 173 // respects the `blocking` flag
Brian Daniels 7:444bc156318f 174 bytes_received = socket->recv(received_data, NSAPI_MAX_DATA_SIZE, false);
Brian Daniels 3:8b595ee6219d 175
Brian Daniels 7:444bc156318f 176 if (bytes_received > 0) {
Brian Daniels 7:444bc156318f 177 printf("'recv' returned data of length %d when no data was expected\r\n", bytes_received);
Brian Daniels 7:444bc156318f 178 return -5;
Brian Daniels 7:444bc156318f 179 } else if (bytes_received < 0) {
Brian Daniels 7:444bc156318f 180 printf("'recv' failed when no data was expected with code %d\r\n", bytes_received);
Brian Daniels 7:444bc156318f 181 return -5;
Brian Daniels 7:444bc156318f 182 }
Brian Daniels 7:444bc156318f 183
Brian Daniels 7:444bc156318f 184 int32_t ret = socket->send(expected_data, data_size);
Brian Daniels 3:8b595ee6219d 185
Brian Daniels 3:8b595ee6219d 186 if (ret) {
Brian Daniels 5:03b0570b4c29 187 printf("'send' failed during test with code %d\r\n", ret);
Brian Daniels 3:8b595ee6219d 188 return -4;
Brian Daniels 2:41bf867fedd2 189 }
Brian Daniels 2:41bf867fedd2 190
Brian Daniels 5:03b0570b4c29 191 // TODO: Create a better way to "wait" for data besides busy-looping
Brian Daniels 5:03b0570b4c29 192 for (int i = 0; i < 10000000; i++) {
Brian Daniels 7:444bc156318f 193 bytes_received = socket->recv(received_data, data_size, false);
Brian Daniels 5:03b0570b4c29 194
Brian Daniels 7:444bc156318f 195 if (bytes_received >= (int32_t)data_size) {
Brian Daniels 7:444bc156318f 196 if (strstr(received_data, expected_data) != NULL) {
Brian Daniels 3:8b595ee6219d 197 result = 0;
Brian Daniels 3:8b595ee6219d 198 break;
Brian Daniels 3:8b595ee6219d 199 } else {
Brian Daniels 3:8b595ee6219d 200 printf("'recv' returned incorrect data\r\n");
Brian Daniels 3:8b595ee6219d 201 result = -2;
Brian Daniels 3:8b595ee6219d 202 break;
Brian Daniels 3:8b595ee6219d 203 }
Brian Daniels 3:8b595ee6219d 204 } else if (bytes_received < 0) {
Brian Daniels 3:8b595ee6219d 205 result = -3;
Brian Daniels 3:8b595ee6219d 206 break;
Brian Daniels 3:8b595ee6219d 207 }
Brian Daniels 3:8b595ee6219d 208 }
Brian Daniels 3:8b595ee6219d 209
Brian Daniels 3:8b595ee6219d 210 if (result == -1) {
Brian Daniels 5:03b0570b4c29 211 printf("'recv' returned no data\r\n");
Brian Daniels 3:8b595ee6219d 212 } else if (result == -2) {
Brian Daniels 3:8b595ee6219d 213 printf("'recv' returned incorrect data\r\n");
Brian Daniels 3:8b595ee6219d 214 } else if (result == -3) {
Brian Daniels 3:8b595ee6219d 215 printf("'recv' failed with code %d\r\n", bytes_received);
Brian Daniels 3:8b595ee6219d 216 }
Brian Daniels 3:8b595ee6219d 217
Brian Daniels 3:8b595ee6219d 218 return result;
Brian Daniels 2:41bf867fedd2 219 }
Christopher Haster 1:796ba8b082b1 220
Brian Daniels 7:444bc156318f 221 int nsapi_socket_non_blocking_test(Socket *socket, const char *test_address, uint16_t test_port)
Brian Daniels 7:444bc156318f 222 {
Brian Daniels 7:444bc156318f 223 int32_t result, i;
Brian Daniels 7:444bc156318f 224 int32_t packet_sizes[] = {10, 100, 1000};
Brian Daniels 7:444bc156318f 225 int32_t num_packet_sizes = 3;
Brian Daniels 7:444bc156318f 226
Brian Daniels 7:444bc156318f 227 for (i = 0; i < num_packet_sizes; i++) {
Brian Daniels 7:444bc156318f 228 result = nsapi_socket_non_blocking_test_helper(socket, test_address, test_port, packet_sizes[i]);
Brian Daniels 7:444bc156318f 229
Brian Daniels 7:444bc156318f 230 if (result) {
Brian Daniels 7:444bc156318f 231 printf("nsapi_socket_non_blocking_test failed with data size of %d\r\n", packet_sizes[i]);
Brian Daniels 7:444bc156318f 232 break;
Brian Daniels 7:444bc156318f 233 }
Brian Daniels 7:444bc156318f 234 }
Brian Daniels 7:444bc156318f 235
Brian Daniels 7:444bc156318f 236 if (i >= num_packet_sizes) {
Brian Daniels 7:444bc156318f 237 return 0;
Brian Daniels 7:444bc156318f 238 } else {
Brian Daniels 7:444bc156318f 239 return -num_packet_sizes;
Brian Daniels 7:444bc156318f 240 }
Brian Daniels 7:444bc156318f 241 }
Brian Daniels 7:444bc156318f 242
Brian Daniels 3:8b595ee6219d 243 int nsapi_socket_close_test(Socket *socket, const char *test_address, uint16_t test_port)
Christopher Haster 1:796ba8b082b1 244 {
Brian Daniels 3:8b595ee6219d 245 int32_t ret = socket->close();
Brian Daniels 3:8b595ee6219d 246
Brian Daniels 3:8b595ee6219d 247 if (ret) {
Brian Daniels 3:8b595ee6219d 248 printf("'close' failed with code %d\r\n", ret);
Brian Daniels 3:8b595ee6219d 249 return -1;
Brian Daniels 3:8b595ee6219d 250 } else {
Brian Daniels 3:8b595ee6219d 251 return 0;
Brian Daniels 3:8b595ee6219d 252 }
Brian Daniels 3:8b595ee6219d 253 }
Brian Daniels 3:8b595ee6219d 254
Brian Daniels 3:8b595ee6219d 255 void nspai_print_test_header(const char *name) {
Brian Daniels 3:8b595ee6219d 256 printf("---------------------\r\n");
Brian Daniels 3:8b595ee6219d 257 printf("%s: running...\r\n", name);
Brian Daniels 3:8b595ee6219d 258 }
Brian Daniels 3:8b595ee6219d 259
Brian Daniels 3:8b595ee6219d 260 void nspai_print_test_result(const char *name, int result) {
Brian Daniels 3:8b595ee6219d 261 printf("%s: ", name);
Brian Daniels 3:8b595ee6219d 262
Brian Daniels 3:8b595ee6219d 263 if (!result) {
Brian Daniels 3:8b595ee6219d 264 printf("PASS\r\n");
Brian Daniels 3:8b595ee6219d 265 } else {
Brian Daniels 3:8b595ee6219d 266 printf("FAIL (Return code %d)\r\n", result);
Brian Daniels 3:8b595ee6219d 267 }
Brian Daniels 3:8b595ee6219d 268 }
Brian Daniels 3:8b595ee6219d 269
Brian Daniels 3:8b595ee6219d 270 int nsapi_ni_run_test(const char *name, NetworkInterface *iface, int (*test)(NetworkInterface*)) {
Brian Daniels 3:8b595ee6219d 271 int result;
Brian Daniels 3:8b595ee6219d 272 nspai_print_test_header(name);
Brian Daniels 3:8b595ee6219d 273 result = test(iface);
Brian Daniels 3:8b595ee6219d 274 nspai_print_test_result(name, result);
Brian Daniels 3:8b595ee6219d 275 return result;
Brian Daniels 3:8b595ee6219d 276 }
Brian Daniels 3:8b595ee6219d 277
Brian Daniels 3:8b595ee6219d 278 int nsapi_socket_run_test(const char *name, Socket *socket, const char *test_address, uint16_t test_port, int (*test)(Socket*, const char*, uint16_t)) {
Brian Daniels 3:8b595ee6219d 279 int result;
Brian Daniels 3:8b595ee6219d 280 nspai_print_test_header(name);
Brian Daniels 3:8b595ee6219d 281 result = test(socket, test_address, test_port);
Brian Daniels 3:8b595ee6219d 282 nspai_print_test_result(name, result);
Brian Daniels 3:8b595ee6219d 283 return result;
Brian Daniels 3:8b595ee6219d 284 }
Brian Daniels 3:8b595ee6219d 285
Brian Daniels 6:d847da0dbf4f 286 int nsapi_tests(const char *name, NetworkInterface *iface, const char *test_address, uint16_t test_port)
Brian Daniels 3:8b595ee6219d 287 {
Brian Daniels 3:8b595ee6219d 288 TCPSocket tcp_socket(iface);
Brian Daniels 3:8b595ee6219d 289 UDPSocket udp_socket(iface);
Brian Daniels 7:444bc156318f 290
Brian Daniels 2:41bf867fedd2 291 int ret = 0;
Brian Daniels 2:41bf867fedd2 292
Brian Daniels 3:8b595ee6219d 293 printf("--- Running NetworkInterface Tests ---\r\n\r\n");
Brian Daniels 3:8b595ee6219d 294 ret |= nsapi_ni_run_test("nsapi_ni_isConnected_test", iface, &nsapi_ni_isConnected_test);
Brian Daniels 3:8b595ee6219d 295 ret |= nsapi_ni_run_test("nsapi_ni_getIPAddress_test", iface, &nsapi_ni_getIPAddress_test);
Brian Daniels 3:8b595ee6219d 296 ret |= nsapi_ni_run_test("nsapi_ni_getMACAddress_test", iface, &nsapi_ni_getMACAddress_test);
Brian Daniels 3:8b595ee6219d 297 ret |= nsapi_ni_run_test("nsapi_ni_getHostByName_test", iface, &nsapi_ni_getHostByName_test);
Brian Daniels 3:8b595ee6219d 298
Brian Daniels 3:8b595ee6219d 299 printf("\r\n\r\n--- Running TCPSocket Tests ---\r\n\r\n");
Brian Daniels 6:d847da0dbf4f 300 ret |= nsapi_socket_run_test("nsapi_socket_open_test", &tcp_socket, test_address, test_port, &nsapi_socket_open_test);
Brian Daniels 6:d847da0dbf4f 301 ret |= nsapi_socket_run_test("nsapi_socket_getIpAddress_test", &tcp_socket, test_address, test_port, &nsapi_socket_getIpAddress_test);
Brian Daniels 6:d847da0dbf4f 302 ret |= nsapi_socket_run_test("nsapi_socket_getPort_test", &tcp_socket, test_address, test_port, &nsapi_socket_getPort_test);
Brian Daniels 6:d847da0dbf4f 303 ret |= nsapi_socket_run_test("nsapi_socket_blocking_test", &tcp_socket, test_address, test_port, &nsapi_socket_blocking_test);
Brian Daniels 6:d847da0dbf4f 304 ret |= nsapi_socket_run_test("nsapi_socket_non_blocking_test", &tcp_socket, test_address, test_port, &nsapi_socket_non_blocking_test);
Brian Daniels 6:d847da0dbf4f 305 ret |= nsapi_socket_run_test("nsapi_socket_close_test", &tcp_socket, test_address, test_port, &nsapi_socket_close_test);
Christopher Haster 1:796ba8b082b1 306
Christopher Haster 1:796ba8b082b1 307
Brian Daniels 3:8b595ee6219d 308 printf("\r\n\r\n--- Running UDPSocket Tests ---\r\n\r\n");
Brian Daniels 6:d847da0dbf4f 309 ret |= nsapi_socket_run_test("nsapi_socket_open_test", &udp_socket, test_address, test_port, &nsapi_socket_open_test);
Brian Daniels 6:d847da0dbf4f 310 ret |= nsapi_socket_run_test("nsapi_socket_getIpAddress_test", &udp_socket, test_address, test_port, &nsapi_socket_getIpAddress_test);
Brian Daniels 6:d847da0dbf4f 311 ret |= nsapi_socket_run_test("nsapi_socket_getPort_test", &udp_socket, test_address, test_port, &nsapi_socket_getPort_test);
Brian Daniels 6:d847da0dbf4f 312 ret |= nsapi_socket_run_test("nsapi_socket_blocking_test", &udp_socket, test_address, test_port, &nsapi_socket_blocking_test);
Brian Daniels 6:d847da0dbf4f 313 ret |= nsapi_socket_run_test("nsapi_socket_non_blocking_test", &udp_socket, test_address, test_port, &nsapi_socket_non_blocking_test);
Brian Daniels 6:d847da0dbf4f 314 ret |= nsapi_socket_run_test("nsapi_socket_close_test", &udp_socket, test_address, test_port, &nsapi_socket_close_test);
Brian Daniels 3:8b595ee6219d 315
Brian Daniels 5:03b0570b4c29 316 if (ret == 0) {
Brian Daniels 5:03b0570b4c29 317 printf("\r\n\r\n--- ALL TESTS PASSING ---\r\n");
Brian Daniels 5:03b0570b4c29 318 } else {
Brian Daniels 5:03b0570b4c29 319 printf("\r\n\r\n--- TEST FAILURES OCCURRED ---\r\n");
Brian Daniels 5:03b0570b4c29 320 }
Brian Daniels 5:03b0570b4c29 321
Brian Daniels 3:8b595ee6219d 322 return ret != 0;
Christopher Haster 1:796ba8b082b1 323 }
Christopher Haster 1:796ba8b082b1 324