static int run(void) { int ret; initialize_tests (); start_tests (); ret = g_test_run (); if (ret == 0) run_externals (&ret); stop_tests(); return ret; }
int main(int argc, const char **argv) { int number_failed; Suite *suite = test_suite(); SRunner *runner = srunner_create(suite); initialize_tests(); srunner_run_all(runner, CK_NORMAL); number_failed = srunner_ntests_failed(runner); srunner_free(runner); return (number_failed == 0)? EXIT_SUCCESS: EXIT_FAILURE; }
/** * Runs data through initialize_tests and compares the received data with the * expected data. * @param data the data we are planning on sending * @param data_len how many bytes of data * @param expected the data we expect to see in response * @param expected_len how many bytes of response * @param test_options the options object that carries the stream status * @param test_suite which NDT tests are being requested * @param test_suite_strlen length of test_suite * @param expected_return_value expected return value from initialize_tests */ void send_data_and_compare_response(const char* data, size_t data_len, const char* expected, size_t expected_len, TestOptions* test_options, char* test_suite, size_t test_suite_strlen, int expected_return_value) { char end_msg[] = "THE END OF THE STREAM"; char* received_data; pid_t child_pid; int child_exit_code; int sockets[2]; int child_socket, parent_socket; int bytes_written; int return_value; Connection conn = {-1, NULL}; CHECK(socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) == 0); child_socket = sockets[0]; parent_socket = sockets[1]; if ((child_pid = fork()) == 0) { conn.socket = child_socket; bytes_written = writen_any(&conn, data, data_len); ASSERT(bytes_written == data_len, "write wrote %d bytes, and not %zu", bytes_written, data_len); if (expected_len) { received_data = (char*)malloc(expected_len * sizeof(char)); CHECK(received_data != NULL); CHECK(expected_len == readn_any(&conn, received_data, expected_len)); CHECK(strncmp(received_data, expected, expected_len) == 0); free(received_data); } received_data = (char*)malloc(sizeof(end_msg)); CHECK(received_data != NULL); CHECK(sizeof(end_msg) == readn_any(&conn, received_data, sizeof(end_msg))); ASSERT(strncmp(received_data, end_msg, sizeof(end_msg)) == 0, "Received_data (%s)", received_data); free(received_data); exit(0); } else { conn.socket = parent_socket; return_value = initialize_tests(&conn, test_options, test_suite, test_suite_strlen); ASSERT(return_value == expected_return_value, "initialize_tests returned %d and not %d", return_value, expected_return_value); CHECK(sizeof(end_msg) == writen_any(&conn, end_msg, sizeof(end_msg))); waitpid(child_pid, &child_exit_code, 0); CHECK(WIFEXITED(child_exit_code) && WEXITSTATUS(child_exit_code) == 0); } }
int main(void) { int iface; char *addr1_data = "abcdefgh", *addr2_data = "12345678"; net_if_addr_t addr1 = { .addr_next = NULL, .addr_prev = NULL, .addr_protocol = NET_IF_L3P_IPV6_MULTICAST, .addr_data = (void *)addr1_data, .addr_len = (strlen(addr1_data) + 1) * 8 }; net_if_addr_t addr2 = { .addr_next = NULL, .addr_prev = NULL, .addr_protocol = NET_IF_L3P_IPV6_PREFIX, .addr_data = (void *)addr2_data, .addr_len = (strlen(addr2_data) + 1) * 8 }; uint16_t own = 1, target = 2; net_if_eui64_t eui64; iface = initialize_tests(); if (!test_net_if_initialization(iface)) { printf("FAILED: test_net_if_initialization()\n"); return -1; } if (!test_net_if_get_add_l3p_types(iface)) { printf("FAILED: test_net_if_get_add_l3p_types()\n"); return -1; } if (!test_net_if_add_address(iface, &addr1, &addr2)) { printf("FAILED: test_net_if_add_address()\n"); return -1; } if (!test_net_if_del_address(iface, &addr1, &addr2)) { printf("FAILED: test_net_if_del_address()\n"); return -1; } if (!test_net_if_get_set_hardware_address(iface, own)) { printf("FAILED: test_net_if_get_set_hardware_address()\n"); return -1; } if (!test_net_if_get_set_pan_id(iface)) { printf("FAILED: test_net_if_get_set_pan_id()\n"); return -1; } if (!test_net_if_get_set_eui64(iface, &eui64, own)) { printf("FAILED: test_net_if_get_set_eui64()\n"); return -1; } int count = net_if_send_packet(iface, target, "Test", 4); printf("Count was %i after net_if_send_packet()\n", count); printf("All test ran successfully.\n"); return 0; } int initialize_tests(void) { int iface; #ifndef MODULE_AUTO_INIT transceiver_init(TRANSCEIVER); transceiver_start(); net_if_init(); iface = net_if_init_interface(0, TRANSCEIVER); return iface; #else iface = -1; while ((iface = net_if_iter_interfaces(iface)) >= 0) { return iface; } return iface; #endif } int test_net_if_initialization(int iface) { net_if_addr_t *addr_ptr = NULL; if (net_if_get_l3p_types(iface)) { printf("FAILED: No L3 type expected on interface %d.\n", iface); return 0; } if (net_if_iter_addresses(iface + 1, &addr_ptr)) { printf("FAILED: Expected error on interface '%d'\n", iface + 1); return 0; } if (net_if_iter_addresses(iface, &addr_ptr)) { printf("FAILED: Expected error on interface '%d'\n", iface); return 0; } return 1; }