Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of NSAPITests by
NSAPITests.cpp@8:5a5c498e1fa0, 2016-03-03 (annotated)
- Committer:
- bridadan
- Date:
- Thu Mar 03 20:39:45 2016 +0000
- Revision:
- 8:5a5c498e1fa0
- Parent:
- 7:444bc156318f
- Child:
- 9:07b22947be75
Removing wayward printf and reducing max packet size in tests
Who changed what in which revision?
User | Revision | Line number | New 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 | |
bridadan | 8:5a5c498e1fa0 | 7 | #define NSAPI_MAX_DATA_SIZE 500 |
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; |
bridadan | 8:5a5c498e1fa0 | 145 | int32_t packet_sizes[] = {10, 100, 500}; |
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 | result = -2; |
Brian Daniels |
3:8b595ee6219d | 201 | break; |
Brian Daniels |
3:8b595ee6219d | 202 | } |
Brian Daniels |
3:8b595ee6219d | 203 | } else if (bytes_received < 0) { |
Brian Daniels |
3:8b595ee6219d | 204 | result = -3; |
Brian Daniels |
3:8b595ee6219d | 205 | break; |
Brian Daniels |
3:8b595ee6219d | 206 | } |
Brian Daniels |
3:8b595ee6219d | 207 | } |
Brian Daniels |
3:8b595ee6219d | 208 | |
Brian Daniels |
3:8b595ee6219d | 209 | if (result == -1) { |
Brian Daniels |
5:03b0570b4c29 | 210 | printf("'recv' returned no data\r\n"); |
Brian Daniels |
3:8b595ee6219d | 211 | } else if (result == -2) { |
Brian Daniels |
3:8b595ee6219d | 212 | printf("'recv' returned incorrect data\r\n"); |
Brian Daniels |
3:8b595ee6219d | 213 | } else if (result == -3) { |
Brian Daniels |
3:8b595ee6219d | 214 | printf("'recv' failed with code %d\r\n", bytes_received); |
Brian Daniels |
3:8b595ee6219d | 215 | } |
Brian Daniels |
3:8b595ee6219d | 216 | |
Brian Daniels |
3:8b595ee6219d | 217 | return result; |
Brian Daniels |
2:41bf867fedd2 | 218 | } |
Christopher Haster |
1:796ba8b082b1 | 219 | |
Brian Daniels |
7:444bc156318f | 220 | int nsapi_socket_non_blocking_test(Socket *socket, const char *test_address, uint16_t test_port) |
Brian Daniels |
7:444bc156318f | 221 | { |
Brian Daniels |
7:444bc156318f | 222 | int32_t result, i; |
bridadan | 8:5a5c498e1fa0 | 223 | int32_t packet_sizes[] = {10, 100, 500}; |
Brian Daniels |
7:444bc156318f | 224 | int32_t num_packet_sizes = 3; |
Brian Daniels |
7:444bc156318f | 225 | |
Brian Daniels |
7:444bc156318f | 226 | for (i = 0; i < num_packet_sizes; i++) { |
Brian Daniels |
7:444bc156318f | 227 | result = nsapi_socket_non_blocking_test_helper(socket, test_address, test_port, packet_sizes[i]); |
Brian Daniels |
7:444bc156318f | 228 | |
Brian Daniels |
7:444bc156318f | 229 | if (result) { |
Brian Daniels |
7:444bc156318f | 230 | printf("nsapi_socket_non_blocking_test failed with data size of %d\r\n", packet_sizes[i]); |
Brian Daniels |
7:444bc156318f | 231 | break; |
Brian Daniels |
7:444bc156318f | 232 | } |
Brian Daniels |
7:444bc156318f | 233 | } |
Brian Daniels |
7:444bc156318f | 234 | |
Brian Daniels |
7:444bc156318f | 235 | if (i >= num_packet_sizes) { |
Brian Daniels |
7:444bc156318f | 236 | return 0; |
Brian Daniels |
7:444bc156318f | 237 | } else { |
Brian Daniels |
7:444bc156318f | 238 | return -num_packet_sizes; |
Brian Daniels |
7:444bc156318f | 239 | } |
Brian Daniels |
7:444bc156318f | 240 | } |
Brian Daniels |
7:444bc156318f | 241 | |
Brian Daniels |
3:8b595ee6219d | 242 | int nsapi_socket_close_test(Socket *socket, const char *test_address, uint16_t test_port) |
Christopher Haster |
1:796ba8b082b1 | 243 | { |
Brian Daniels |
3:8b595ee6219d | 244 | int32_t ret = socket->close(); |
Brian Daniels |
3:8b595ee6219d | 245 | |
Brian Daniels |
3:8b595ee6219d | 246 | if (ret) { |
Brian Daniels |
3:8b595ee6219d | 247 | printf("'close' failed with code %d\r\n", ret); |
Brian Daniels |
3:8b595ee6219d | 248 | return -1; |
Brian Daniels |
3:8b595ee6219d | 249 | } else { |
Brian Daniels |
3:8b595ee6219d | 250 | return 0; |
Brian Daniels |
3:8b595ee6219d | 251 | } |
Brian Daniels |
3:8b595ee6219d | 252 | } |
Brian Daniels |
3:8b595ee6219d | 253 | |
Brian Daniels |
3:8b595ee6219d | 254 | void nspai_print_test_header(const char *name) { |
Brian Daniels |
3:8b595ee6219d | 255 | printf("---------------------\r\n"); |
Brian Daniels |
3:8b595ee6219d | 256 | printf("%s: running...\r\n", name); |
Brian Daniels |
3:8b595ee6219d | 257 | } |
Brian Daniels |
3:8b595ee6219d | 258 | |
Brian Daniels |
3:8b595ee6219d | 259 | void nspai_print_test_result(const char *name, int result) { |
Brian Daniels |
3:8b595ee6219d | 260 | printf("%s: ", name); |
Brian Daniels |
3:8b595ee6219d | 261 | |
Brian Daniels |
3:8b595ee6219d | 262 | if (!result) { |
Brian Daniels |
3:8b595ee6219d | 263 | printf("PASS\r\n"); |
Brian Daniels |
3:8b595ee6219d | 264 | } else { |
Brian Daniels |
3:8b595ee6219d | 265 | printf("FAIL (Return code %d)\r\n", result); |
Brian Daniels |
3:8b595ee6219d | 266 | } |
Brian Daniels |
3:8b595ee6219d | 267 | } |
Brian Daniels |
3:8b595ee6219d | 268 | |
Brian Daniels |
3:8b595ee6219d | 269 | int nsapi_ni_run_test(const char *name, NetworkInterface *iface, int (*test)(NetworkInterface*)) { |
Brian Daniels |
3:8b595ee6219d | 270 | int result; |
Brian Daniels |
3:8b595ee6219d | 271 | nspai_print_test_header(name); |
Brian Daniels |
3:8b595ee6219d | 272 | result = test(iface); |
Brian Daniels |
3:8b595ee6219d | 273 | nspai_print_test_result(name, result); |
Brian Daniels |
3:8b595ee6219d | 274 | return result; |
Brian Daniels |
3:8b595ee6219d | 275 | } |
Brian Daniels |
3:8b595ee6219d | 276 | |
Brian Daniels |
3:8b595ee6219d | 277 | 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 | 278 | int result; |
Brian Daniels |
3:8b595ee6219d | 279 | nspai_print_test_header(name); |
Brian Daniels |
3:8b595ee6219d | 280 | result = test(socket, test_address, test_port); |
Brian Daniels |
3:8b595ee6219d | 281 | nspai_print_test_result(name, result); |
Brian Daniels |
3:8b595ee6219d | 282 | return result; |
Brian Daniels |
3:8b595ee6219d | 283 | } |
Brian Daniels |
3:8b595ee6219d | 284 | |
Brian Daniels |
6:d847da0dbf4f | 285 | int nsapi_tests(const char *name, NetworkInterface *iface, const char *test_address, uint16_t test_port) |
Brian Daniels |
3:8b595ee6219d | 286 | { |
Brian Daniels |
3:8b595ee6219d | 287 | TCPSocket tcp_socket(iface); |
Brian Daniels |
3:8b595ee6219d | 288 | UDPSocket udp_socket(iface); |
Brian Daniels |
7:444bc156318f | 289 | |
Brian Daniels |
2:41bf867fedd2 | 290 | int ret = 0; |
Brian Daniels |
2:41bf867fedd2 | 291 | |
Brian Daniels |
3:8b595ee6219d | 292 | printf("--- Running NetworkInterface Tests ---\r\n\r\n"); |
Brian Daniels |
3:8b595ee6219d | 293 | ret |= nsapi_ni_run_test("nsapi_ni_isConnected_test", iface, &nsapi_ni_isConnected_test); |
Brian Daniels |
3:8b595ee6219d | 294 | ret |= nsapi_ni_run_test("nsapi_ni_getIPAddress_test", iface, &nsapi_ni_getIPAddress_test); |
Brian Daniels |
3:8b595ee6219d | 295 | ret |= nsapi_ni_run_test("nsapi_ni_getMACAddress_test", iface, &nsapi_ni_getMACAddress_test); |
Brian Daniels |
3:8b595ee6219d | 296 | ret |= nsapi_ni_run_test("nsapi_ni_getHostByName_test", iface, &nsapi_ni_getHostByName_test); |
Brian Daniels |
3:8b595ee6219d | 297 | |
Brian Daniels |
3:8b595ee6219d | 298 | printf("\r\n\r\n--- Running TCPSocket Tests ---\r\n\r\n"); |
Brian Daniels |
6:d847da0dbf4f | 299 | ret |= nsapi_socket_run_test("nsapi_socket_open_test", &tcp_socket, test_address, test_port, &nsapi_socket_open_test); |
Brian Daniels |
6:d847da0dbf4f | 300 | ret |= nsapi_socket_run_test("nsapi_socket_getIpAddress_test", &tcp_socket, test_address, test_port, &nsapi_socket_getIpAddress_test); |
Brian Daniels |
6:d847da0dbf4f | 301 | ret |= nsapi_socket_run_test("nsapi_socket_getPort_test", &tcp_socket, test_address, test_port, &nsapi_socket_getPort_test); |
Brian Daniels |
6:d847da0dbf4f | 302 | ret |= nsapi_socket_run_test("nsapi_socket_blocking_test", &tcp_socket, test_address, test_port, &nsapi_socket_blocking_test); |
Brian Daniels |
6:d847da0dbf4f | 303 | 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 | 304 | ret |= nsapi_socket_run_test("nsapi_socket_close_test", &tcp_socket, test_address, test_port, &nsapi_socket_close_test); |
Christopher Haster |
1:796ba8b082b1 | 305 | |
Christopher Haster |
1:796ba8b082b1 | 306 | |
Brian Daniels |
3:8b595ee6219d | 307 | printf("\r\n\r\n--- Running UDPSocket Tests ---\r\n\r\n"); |
Brian Daniels |
6:d847da0dbf4f | 308 | ret |= nsapi_socket_run_test("nsapi_socket_open_test", &udp_socket, test_address, test_port, &nsapi_socket_open_test); |
Brian Daniels |
6:d847da0dbf4f | 309 | ret |= nsapi_socket_run_test("nsapi_socket_getIpAddress_test", &udp_socket, test_address, test_port, &nsapi_socket_getIpAddress_test); |
Brian Daniels |
6:d847da0dbf4f | 310 | ret |= nsapi_socket_run_test("nsapi_socket_getPort_test", &udp_socket, test_address, test_port, &nsapi_socket_getPort_test); |
Brian Daniels |
6:d847da0dbf4f | 311 | ret |= nsapi_socket_run_test("nsapi_socket_blocking_test", &udp_socket, test_address, test_port, &nsapi_socket_blocking_test); |
Brian Daniels |
6:d847da0dbf4f | 312 | 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 | 313 | ret |= nsapi_socket_run_test("nsapi_socket_close_test", &udp_socket, test_address, test_port, &nsapi_socket_close_test); |
Brian Daniels |
3:8b595ee6219d | 314 | |
Brian Daniels |
5:03b0570b4c29 | 315 | if (ret == 0) { |
Brian Daniels |
5:03b0570b4c29 | 316 | printf("\r\n\r\n--- ALL TESTS PASSING ---\r\n"); |
Brian Daniels |
5:03b0570b4c29 | 317 | } else { |
Brian Daniels |
5:03b0570b4c29 | 318 | printf("\r\n\r\n--- TEST FAILURES OCCURRED ---\r\n"); |
Brian Daniels |
5:03b0570b4c29 | 319 | } |
Brian Daniels |
5:03b0570b4c29 | 320 | |
Brian Daniels |
3:8b595ee6219d | 321 | return ret != 0; |
Christopher Haster |
1:796ba8b082b1 | 322 | } |
Christopher Haster |
1:796ba8b082b1 | 323 |