Exemple #1
0
static int run(void) {
	int ret;
	initialize_tests ();
	start_tests ();
	ret = g_test_run ();
	if (ret == 0)
		run_externals (&ret);
	stop_tests();
	return ret;
}
Exemple #2
0
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);
  }
}
Exemple #4
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;
}