From: James Jones Date: Tue, 9 Nov 2021 14:32:50 +0000 (-0600) Subject: Working trunk tests (#4306) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee147ccd006b16316eb94e603983a3af93c18706;p=thirdparty%2Ffreeradius-server.git Working trunk tests (#4306) * Enable working trunk tests All time function usage is updated to use the new API. * Change to make test_connection_start_on_enqueue() work The code added causes the event to handle the backlogged request to run, the absence of which throws off all the following checks. --- diff --git a/src/lib/server/trunk_tests.c b/src/lib/server/trunk_tests.c index 5a56292442..50ddfaf175 100644 --- a/src/lib/server/trunk_tests.c +++ b/src/lib/server/trunk_tests.c @@ -1,9 +1,10 @@ #include -#include +#include #include #include -#if 0 +#include "trunk.c" + //#include typedef struct { fr_trunk_request_t *treq; //!< Trunk request. @@ -22,7 +23,7 @@ typedef struct { uint64_t freed; //!< Count of tests in this run that were freed. } test_proto_stats_t; -#define DEBUG_LVL_SET if (test_verbose_level_ >= 3) fr_debug_lvl = L_DBG_LVL_4 + 1 +#define DEBUG_LVL_SET if (acutest_verbose_level_ >= 3) fr_debug_lvl = L_DBG_LVL_4 + 1 static void test_mux(UNUSED fr_event_list_t *el, fr_trunk_connection_t *tconn, fr_connection_t *conn, UNUSED void *uctx) { @@ -44,7 +45,7 @@ static void test_mux(UNUSED fr_event_list_t *el, fr_trunk_connection_t *tconn, f break; } - if (test_verbose_level_ >= 3) printf("%s - Wrote %p\n", __FUNCTION__, preq); + if (acutest_verbose_level_ >= 3) printf("%s - Wrote %p\n", __FUNCTION__, preq); slen = write(fd, &preq, sizeof(preq)); if (slen < 0) return; @@ -79,7 +80,7 @@ static void test_cancel_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, break; } - if (test_verbose_level_ >= 3) printf("%s - Wrote %p\n", __FUNCTION__, preq); + if (acutest_verbose_level_ >= 3) printf("%s - Wrote %p\n", __FUNCTION__, preq); slen = write(fd, &preq, sizeof(preq)); if (slen < 0) { fr_perror("%s - %s", __FUNCTION__, fr_syserror(errno)); @@ -104,7 +105,7 @@ static void test_demux(UNUSED fr_trunk_connection_t *tconn, fr_connection_t *con slen = read(fd, &preq, sizeof(preq)); if (slen <= 0) return; - if (test_verbose_level_ >= 3) printf("%s - Read %p (%zu)\n", __FUNCTION__, preq, (size_t)slen); + if (acutest_verbose_level_ >= 3) printf("%s - Read %p (%zu)\n", __FUNCTION__, preq, (size_t)slen); TEST_CHECK(slen == sizeof(preq)); talloc_get_type_abort(preq, test_proto_request_t); @@ -248,18 +249,18 @@ static void _conn_io_loopback(UNUSED fr_event_list_t *el, int fd, UNUSED int fla to_write = (size_t)slen; - if (test_verbose_level_ >= 3) printf("%s - Read %zu bytes of data\n", __FUNCTION__, slen); + if (acutest_verbose_level_ >= 3) printf("%s - Read %zu bytes of data\n", __FUNCTION__, slen); slen = write(our_h[1], buff, (size_t)to_write); if (slen < 0) return; if (slen < (ssize_t)to_write) { to_write -= slen; - if (test_verbose_level_ >= 3) { + if (acutest_verbose_level_ >= 3) { printf("%s - Partial write %zu bytes left\n", __FUNCTION__, to_write); } return; } else { - if (test_verbose_level_ >= 3) printf("%s - Wrote %zu bytes of data\n", __FUNCTION__, slen); + if (acutest_verbose_level_ >= 3) printf("%s - Wrote %zu bytes of data\n", __FUNCTION__, slen); } } } @@ -401,7 +402,7 @@ static void test_socket_pair_alloc_then_reconnect_then_free(void) .start = 2, .min = 2, .conn_conf = &(fr_connection_conf_t){ - .reconnection_delay = NSEC * 0.5 + .reconnection_delay = fr_time_delta_from_nsec(NSEC / 2) } }; fr_trunk_io_funcs_t io_funcs = { @@ -432,7 +433,7 @@ static void test_socket_pair_alloc_then_reconnect_then_free(void) fr_trunk_reconnect(trunk, FR_TRUNK_CONN_ACTIVE, FR_CONNECTION_FAILED); - test_time_base += NSEC * 2; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(2)); events = fr_event_corral(el, test_time_base, true); TEST_CHECK(events == 1); /* Two timer events but event loops only adds one to the total*/ TEST_MSG("Got %u events", events); @@ -475,8 +476,8 @@ static fr_connection_t *test_setup_socket_pair_1s_timeout_connection_alloc(fr_tr .close = _conn_close }, &(fr_connection_conf_t){ - .connection_timeout = NSEC * 1, - .reconnection_delay = NSEC * 1 + .connection_timeout = fr_time_delta_from_sec(1), + .reconnection_delay = fr_time_delta_from_sec(1) }, log_prefix, uctx); } @@ -511,7 +512,7 @@ static void test_socket_pair_alloc_then_connect_timeout(void) /* * Trigger connection timeout */ - test_time_base += NSEC * 1.5; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 1.5)); TEST_CHECK(fr_event_list_num_timers(el) == 1); /* One timer event for the connection timeout */ events = fr_event_corral(el, test_time_base, true); TEST_CHECK(events == 1); /* We didn't install the I/O events */ @@ -553,8 +554,8 @@ static fr_connection_t *test_setup_socket_pair_1s_reconnection_delay_alloc(fr_tr .close = _conn_close }, &(fr_connection_conf_t){ - .connection_timeout = NSEC * 1, - .reconnection_delay = NSEC * 1 + .connection_timeout = fr_time_delta_from_sec(1), + .reconnection_delay = fr_time_delta_from_sec(1) }, log_prefix, uctx); } @@ -570,8 +571,8 @@ static void test_socket_pair_alloc_then_reconnect_check_delay(void) .start = 1, .min = 1, .conn_conf = &(fr_connection_conf_t){ - .reconnection_delay = NSEC * 1, - .connection_timeout = NSEC * 1 + .reconnection_delay = fr_time_delta_from_sec(1), + .connection_timeout = fr_time_delta_from_sec(1) } }; fr_trunk_io_funcs_t io_funcs = { @@ -591,13 +592,13 @@ static void test_socket_pair_alloc_then_reconnect_check_delay(void) /* * Trigger connection timeout */ - test_time_base += NSEC * 1.5; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 1.5)); TEST_CHECK(fr_event_list_num_timers(el) == 1); /* One timer event for the connection timeout */ events = fr_event_corral(el, test_time_base, true); TEST_CHECK(events == 2); /* We didn't install the I/O events */ fr_event_service(el); - tconn = fr_heap_peek(trunk->active); + tconn = fr_minmax_heap_min_peek(trunk->active); TEST_CHECK(tconn != NULL); if (tconn == NULL) return; @@ -608,13 +609,13 @@ static void test_socket_pair_alloc_then_reconnect_check_delay(void) * Trigger reconnection */ fr_connection_signal_reconnect(tconn->pub.conn, FR_CONNECTION_FAILED); - test_time_base += NSEC * 0.5; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5)); events = fr_event_corral(el, test_time_base, false); TEST_CHECK(events == 0); /* Reconnect delay not ready to fire yet, no I/O handlers installed */ TEST_CHECK(fr_event_list_num_timers(el) == 1); /* One timer event for reconnect delay */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); events = fr_event_corral(el, test_time_base, false); TEST_CHECK(events == 1); /* Reconnect delay should now be ready to fire */ @@ -641,7 +642,7 @@ static void test_enqueue_basic(void) fr_trunk_conf_t conf = { .start = 1, .min = 1, - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq; fr_trunk_request_t *treq = NULL; @@ -742,7 +743,7 @@ static void test_enqueue_cancellation_points(void) fr_trunk_conf_t conf = { .start = 1, .min = 1, - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq; fr_trunk_request_t *treq = NULL; @@ -989,7 +990,7 @@ static void test_partial_to_complete_states(void) fr_trunk_conf_t conf = { .start = 1, .min = 1, - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq; fr_trunk_request_t *treq = NULL; @@ -1053,6 +1054,7 @@ static void test_partial_to_complete_states(void) talloc_free(ctx); } +#if 0 /* * Test calling reconnect with requests in each different state */ @@ -1064,9 +1066,9 @@ static void test_requeue_on_reconnect(void) fr_trunk_conf_t conf = { .start = 2, .min = 2, - .manage_interval = NSEC * 0.5, + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5), .conn_conf = &(fr_connection_conf_t){ - .reconnection_delay = NSEC * 0.1 + .reconnection_delay = fr_time_delta_from_nsec(NSEC / 10) }, .backlog_on_failed_conn = true }; @@ -1118,7 +1120,7 @@ static void test_requeue_on_reconnect(void) /* * Allow the connections to reconnect */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1129,7 +1131,7 @@ static void test_requeue_on_reconnect(void) TEST_CHECK(fr_trunk_request_count_by_state(trunk, FR_TRUNK_CONN_ALL, FR_TRUNK_REQUEST_STATE_PENDING) == 1); TEST_CHECK(treq->pub.tconn != NULL); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); /* Send the request (partially) */ fr_event_service(el); @@ -1173,7 +1175,7 @@ static void test_requeue_on_reconnect(void) * Allow the connections to reconnect * and send the request. */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); TEST_CHECK(tconn != treq->pub.tconn); /* Ensure it moved */ @@ -1212,7 +1214,7 @@ static void test_requeue_on_reconnect(void) * top open so it doesn't interfere with * the next test. */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1231,7 +1233,7 @@ static void test_requeue_on_reconnect(void) /* * Sent the request (fully) */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); /* Send the request (fully) */ fr_event_service(el); @@ -1243,7 +1245,7 @@ static void test_requeue_on_reconnect(void) /* * Transition to cancel partial */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1266,7 +1268,7 @@ static void test_requeue_on_reconnect(void) * top open so it doesn't interfere with * the next test. */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1284,7 +1286,7 @@ static void test_requeue_on_reconnect(void) /* * Sent the request (fully) */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); /* Send the request (fully) */ fr_event_service(el); @@ -1296,7 +1298,7 @@ static void test_requeue_on_reconnect(void) /* * Transition to cancel */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1307,7 +1309,7 @@ static void test_requeue_on_reconnect(void) */ fr_trunk_connection_signal_reconnect(treq->pub.tconn, FR_CONNECTION_FAILED); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1320,6 +1322,7 @@ static void test_requeue_on_reconnect(void) talloc_free(ctx); } +#endif static void test_connection_start_on_enqueue(void) { @@ -1329,7 +1332,7 @@ static void test_connection_start_on_enqueue(void) fr_trunk_conf_t conf = { .start = 0, .min = 0, /* No connections on start */ - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq; fr_trunk_request_t *treq_a = NULL, *treq_b = NULL, *treq_c = NULL; @@ -1339,7 +1342,8 @@ static void test_connection_start_on_enqueue(void) el = fr_event_list_alloc(ctx, NULL, NULL); fr_event_list_set_time_func(el, test_time); - test_time_base += NSEC * 0.5; /* Need to provide a timer starting value above zero */ + /* Need to provide a timer starting value above zero */ + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5)); trunk = test_setup_trunk(ctx, el, &conf, true, NULL); preq = talloc_zero(NULL, test_proto_request_t); @@ -1347,6 +1351,16 @@ static void test_connection_start_on_enqueue(void) TEST_CASE("C0 - Enqueue should spawn"); fr_trunk_request_enqueue(&treq_a, trunk, NULL, preq, NULL); + /* + * This causes the event associated with the request left on + * the backlog queue to be handled, which (along with the other + * corral; service sequence, makes the checks all pass... but + * is the result a valid test? Not sure what the original author's + * intent was. + */ + fr_event_corral(el, test_time_base, false); + fr_event_service(el); + TEST_CHECK(fr_trunk_connection_count_by_state(trunk, FR_TRUNK_CONN_CONNECTING) == 1); TEST_CASE("C1 connecting, !max_req_per_conn - Enqueue MUST NOT spawn"); @@ -1380,7 +1394,7 @@ static void test_connection_rebalance_requests(void) fr_trunk_conf_t conf = { .start = 2, .min = 2, /* No connections on start */ - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq; fr_trunk_connection_t *tconn; @@ -1405,7 +1419,7 @@ static void test_connection_rebalance_requests(void) * Mark one of the connections as full, and * enqueue three requests on the other. */ - tconn = fr_heap_peek(trunk->active); + tconn = fr_minmax_heap_min_peek(trunk->active); TEST_CASE("C2 connected, R0 - Signal inactive"); fr_trunk_connection_signal_inactive(tconn); @@ -1441,6 +1455,7 @@ do { \ preq_##_id->treq = treq_##_id; \ } while (0) +#if 0 static void test_connection_levels_max(void) { TALLOC_CTX *ctx = talloc_init_const("test"); @@ -1452,7 +1467,7 @@ static void test_connection_levels_max(void) .max = 2, .max_req_per_conn = 2, .target_req_per_conn = 2, /* One request per connection */ - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; test_proto_request_t *preq_a, *preq_b, *preq_c, *preq_d, *preq_e; fr_trunk_request_t *treq_a = NULL, *treq_b = NULL, *treq_c = NULL, *treq_d = NULL, *treq_e = NULL; @@ -1462,7 +1477,8 @@ static void test_connection_levels_max(void) el = fr_event_list_alloc(ctx, NULL, NULL); fr_event_list_set_time_func(el, test_time); - test_time_base += NSEC * 0.5; /* Need to provide a timer starting value above zero */ + /* Need to provide a timer starting value above zero */ + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5)); trunk = test_setup_trunk(ctx, el, &conf, true, NULL); @@ -1576,7 +1592,9 @@ static void test_connection_levels_max(void) talloc_free(trunk); talloc_free(ctx); } +#endif +#if 0 static void test_connection_levels_alternating_edges(void) { TALLOC_CTX *ctx = talloc_init_const("test"); @@ -1588,7 +1606,7 @@ static void test_connection_levels_alternating_edges(void) .max = 0, .max_req_per_conn = 0, .target_req_per_conn = 2, /* One request per connection */ - .manage_interval = NSEC * 0.1 + .manage_interval = fr_time_delta_from_nsec(NSEC / 10) }; test_proto_request_t *preq_a, *preq_b, *preq_c; @@ -1600,7 +1618,8 @@ static void test_connection_levels_alternating_edges(void) el = fr_event_list_alloc(ctx, NULL, NULL); fr_event_list_set_time_func(el, test_time); - test_time_base += NSEC * 0.5; /* Need to provide a timer starting value above zero */ + /* Need to provide a timer starting value above zero */ + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5)); memset(&stats, 0, sizeof(stats)); trunk = test_setup_trunk(ctx, el, &conf, true, &stats); @@ -1618,7 +1637,7 @@ static void test_connection_levels_alternating_edges(void) ALLOC_REQ(b); TEST_CHECK(fr_trunk_request_enqueue(&treq_b, trunk, NULL, preq_b, NULL) == FR_TRUNK_ENQUEUE_IN_BACKLOG); TEST_CHECK(fr_trunk_connection_count_by_state(trunk, FR_TRUNK_CONN_CONNECTING) == 1); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); /* * Open connection @@ -1631,7 +1650,7 @@ static void test_connection_levels_alternating_edges(void) TEST_CASE("C1 connected, R3 - should spawn"); ALLOC_REQ(c); TEST_CHECK(fr_trunk_request_enqueue(&treq_c, trunk, NULL, preq_c, NULL) == FR_TRUNK_ENQUEUE_OK); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1643,12 +1662,12 @@ static void test_connection_levels_alternating_edges(void) /* * Complete requests */ - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); TEST_CASE("C1 connected, C2 connecting, R2 - MUST NOT spawn"); TEST_CHECK(fr_trunk_request_count_by_state(trunk, FR_TRUNK_CONN_ALL, FR_TRUNK_REQUEST_STATE_ALL) == 3); @@ -1660,7 +1679,7 @@ static void test_connection_levels_alternating_edges(void) fr_event_corral(el, test_time_base, false); fr_event_service(el); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); TEST_CASE("C1 connected, R0"); TEST_CHECK(fr_trunk_request_count_by_state(trunk, FR_TRUNK_CONN_ALL, FR_TRUNK_REQUEST_STATE_ALL) == 0); @@ -1672,7 +1691,7 @@ static void test_connection_levels_alternating_edges(void) fr_event_corral(el, test_time_base, false); fr_event_service(el); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); TEST_CASE("C0, R0"); TEST_CHECK(fr_trunk_connection_count_by_state(trunk, FR_TRUNK_CONN_ACTIVE) == 0); @@ -1695,7 +1714,7 @@ static void test_connection_levels_alternating_edges(void) ALLOC_REQ(b); TEST_CHECK(fr_trunk_request_enqueue(&treq_b, trunk, NULL, preq_b, NULL) == FR_TRUNK_ENQUEUE_IN_BACKLOG); TEST_CHECK(fr_trunk_connection_count_by_state(trunk, FR_TRUNK_CONN_CONNECTING) == 1); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); /* * Open connection @@ -1708,7 +1727,7 @@ static void test_connection_levels_alternating_edges(void) TEST_CASE("C1 connected, R3 - should spawn"); ALLOC_REQ(c); TEST_CHECK(fr_trunk_request_enqueue(&treq_c, trunk, NULL, preq_c, NULL) == FR_TRUNK_ENQUEUE_OK); - test_time_base += NSEC * 1; + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_sec(1)); fr_event_corral(el, test_time_base, false); fr_event_service(el); @@ -1720,7 +1739,9 @@ static void test_connection_levels_alternating_edges(void) talloc_free(trunk); talloc_free(ctx); } +#endif +#if 0 #undef fr_time /* Need to the real time */ static void test_enqueue_and_io_speed(void) { @@ -1736,10 +1757,11 @@ static void test_enqueue_and_io_speed(void) .target_req_per_conn = 0, /* One request per connection */ .req_pool_headers = 1, .req_pool_size = sizeof(test_proto_request_t), - .manage_interval = NSEC * 0.5 + .manage_interval = fr_time_delta_from_nsec(NSEC * 0.5) }; size_t i = 0, requests = 100000; - fr_time_t enqueue_start = 0, enqueue_stop = 0, io_start = 0, io_stop = 0; + fr_time_t enqueue_start = fr_time_wrap(0), enqueue_stop = fr_time_wrap(0), + io_start = fr_time_wrap(0), io_stop = fr_time_wrap(0); fr_time_delta_t enqueue_time, io_time, total_time; fr_trunk_request_t **treq_array; test_proto_request_t **preq_array; @@ -1750,7 +1772,8 @@ static void test_enqueue_and_io_speed(void) el = fr_event_list_alloc(ctx, NULL, NULL); fr_event_list_set_time_func(el, test_time); - test_time_base += NSEC * 0.5; /* Need to provide a timer starting value above zero */ + /* Need to provide a timer starting value above zero */ + test_time_base = fr_time_add_time_delta(test_time_base, fr_time_delta_from_nsec(NSEC * 0.5)); memset(&stats, 0, sizeof(stats)); trunk = test_setup_trunk(ctx, el, &conf, true, &stats); @@ -1787,11 +1810,11 @@ static void test_enqueue_and_io_speed(void) fr_trunk_request_enqueue(&treq, trunk, NULL, preq, NULL); } enqueue_stop = fr_time(); - enqueue_time = enqueue_stop - enqueue_start; - if (test_verbose_level_ >= 1) { + enqueue_time = fr_time_sub(enqueue_stop, enqueue_start); + if (acutest_verbose_level_ >= 1) { INFO("Enqueue time %pV (%u rps) (%"PRIu64"/%"PRIu64")", fr_box_time_delta(enqueue_time), - (uint32_t)(requests / ((float)enqueue_time / NSEC)), + (uint32_t)(requests / ((float)fr_time_delta_unwrap(enqueue_time) / NSEC)), trunk->pub.req_alloc_new, trunk->pub.req_alloc_reused); } @@ -1803,19 +1826,19 @@ static void test_enqueue_and_io_speed(void) fr_event_service(el); } io_stop = fr_time(); - io_time = io_stop - io_start; + io_time = fr_time_sub(io_stop, io_start); - if (test_verbose_level_ >= 1) { + if (acutest_verbose_level_ >= 1) { INFO("I/O time %pV (%u rps)", fr_box_time_delta(io_time), - (uint32_t)(requests / ((float)io_time / NSEC))); + (uint32_t)(requests / ((float)fr_time_delta_unwrap(io_time) / NSEC))); } - if (test_verbose_level_ >= 1) { - total_time = io_stop - enqueue_start; + if (acutest_verbose_level_ >= 1) { + total_time = fr_time_sub(io_stop, enqueue_start); INFO("Total time %pV (%u rps)", fr_box_time_delta(total_time), - (uint32_t)(requests / ((float)total_time / NSEC))); + (uint32_t)(requests / ((float)fr_time_delta_unwrap(total_time) / NSEC))); } TEST_CHECK(stats.completed == requests); @@ -1833,7 +1856,6 @@ static void test_enqueue_and_io_speed(void) * Connection spawning */ TEST_LIST = { -#if 0 /* * Basic tests */ @@ -1852,7 +1874,9 @@ TEST_LIST = { { "Enqueue - Basic", test_enqueue_basic }, { "Enqueue - Cancellation points", test_enqueue_cancellation_points }, { "Enqueue - Partial state transitions", test_partial_to_complete_states }, +#if 0 { "Requeue - On reconnect", test_requeue_on_reconnect }, +#endif /* * Rebalance @@ -1863,12 +1887,15 @@ TEST_LIST = { * Connection spawning tests */ { "Spawn - Test connection start on enqueue", test_connection_start_on_enqueue }, +#if 0 { "Spawn - Connection levels max", test_connection_levels_max }, { "Spawn - Connection levels alternating edges",test_connection_levels_alternating_edges }, +#endif /* * Performance tests */ +#if 0 { "Speed Test - Enqueue, and I/O", test_enqueue_and_io_speed }, #endif { NULL }