Skip to content

Commit cd40b5e

Browse files
update tests
1 parent 59cadd0 commit cd40b5e

12 files changed

+409
-1884
lines changed

libudpard/udpard.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1326,11 +1326,13 @@ bool udpard_tx_cancel(udpard_tx_t* const self, const uint64_t transfer_id, const
13261326
tx_transfer_t,
13271327
index_transfer_id);
13281328
while ((tr != NULL) && (tr->transfer_id == transfer_id)) {
1329+
tx_transfer_t* const next =
1330+
CAVL2_TO_OWNER(cavl2_next_greater(&tr->index_transfer_id), tx_transfer_t, index_transfer_id);
13291331
if (tr->kind == (reliable ? frame_msg_reliable : frame_msg_best)) { // Cancel all matching (normally <=1).
13301332
tx_transfer_retire(self, tr, false);
13311333
cancelled = true;
13321334
}
1333-
tr = CAVL2_TO_OWNER(cavl2_next_greater(&tr->index_transfer_id), tx_transfer_t, index_transfer_id);
1335+
tr = next;
13341336
}
13351337
}
13361338
return cancelled;

tests/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ gen_test_single(test_e2e_random "src/test_e2e_random.cpp;${library_dir}/udpard.c
9898
gen_test_single(test_e2e_edge "src/test_e2e_edge.cpp;${library_dir}/udpard.c")
9999
gen_test_single(test_e2e_api "src/test_e2e_api.cpp;${library_dir}/udpard.c")
100100
gen_test_single(test_e2e_responses "src/test_e2e_responses.cpp;${library_dir}/udpard.c")
101-
gen_test_single(test_e2e_reliable_ordered "src/test_e2e_reliable_ordered.cpp;${library_dir}/udpard.c")
102101
gen_test_single(test_integration_sockets "src/test_integration_sockets.cpp;${library_dir}/udpard.c")
103102

104103
# Coverage targets. Usage:

tests/src/test_e2e_api.cpp

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ struct RxContext
3131
std::array<udpard_udpip_ep_t, UDPARD_IFACE_COUNT_MAX> sources{};
3232
uint64_t remote_uid = 0;
3333
size_t received = 0;
34-
size_t collisions = 0;
3534
};
3635

3736
// Refcount helpers keep captured datagrams alive.
@@ -115,19 +114,14 @@ void on_message(udpard_rx_t* const rx, udpard_rx_port_t* const port, const udpar
115114
ctx->received++;
116115
}
117116

118-
void on_collision(udpard_rx_t* const rx, udpard_rx_port_t* const /*port*/, const udpard_remote_t /*remote*/)
119-
{
120-
auto* ctx = static_cast<RxContext*>(rx->user);
121-
ctx->collisions++;
122-
}
123-
constexpr udpard_rx_port_vtable_t callbacks{ .on_message = &on_message, .on_collision = &on_collision };
117+
constexpr udpard_rx_port_vtable_t callbacks{ .on_message = &on_message };
124118

125119
// Ack port frees responses.
126120
void on_ack_response(udpard_rx_t*, udpard_rx_port_t* port, const udpard_rx_transfer_t tr)
127121
{
128122
udpard_fragment_free_all(tr.payload, udpard_make_deleter(port->memory.fragment));
129123
}
130-
constexpr udpard_rx_port_vtable_t ack_callbacks{ .on_message = &on_ack_response, .on_collision = &on_collision };
124+
constexpr udpard_rx_port_vtable_t ack_callbacks{ .on_message = &on_ack_response };
131125

132126
// Reliable delivery must survive data and ack loss.
133127
// Each node uses exactly one TX and one RX instance as per the library design.
@@ -184,8 +178,7 @@ void test_reliable_delivery_under_losses()
184178
udpard_rx_t pub_rx{};
185179
udpard_rx_new(&pub_rx, &pub_tx);
186180
udpard_rx_port_t pub_p2p_port{};
187-
TEST_ASSERT_TRUE(
188-
udpard_rx_port_new(&pub_p2p_port, pub_uid, 16, udpard_rx_unordered, 0, pub_rx_mem, &ack_callbacks));
181+
TEST_ASSERT_TRUE(udpard_rx_port_new_p2p(&pub_p2p_port, 16, pub_rx_mem, &ack_callbacks));
189182

190183
// Subscriber node: single TX, single RX (linked to TX for sending ACKs).
191184
constexpr uint64_t sub_uid = 0xABCDEF0012345678ULL;
@@ -197,8 +190,7 @@ void test_reliable_delivery_under_losses()
197190
udpard_rx_t sub_rx{};
198191
udpard_rx_new(&sub_rx, &sub_tx);
199192
udpard_rx_port_t sub_port{};
200-
const uint64_t topic_hash = 0x0123456789ABCDEFULL;
201-
TEST_ASSERT_TRUE(udpard_rx_port_new(&sub_port, topic_hash, 6000, udpard_rx_unordered, 0, sub_rx_mem, &callbacks));
193+
TEST_ASSERT_TRUE(udpard_rx_port_new(&sub_port, 6000, sub_rx_mem, &callbacks));
202194

203195
// Endpoints.
204196
const std::array<udpard_udpip_ep_t, UDPARD_IFACE_COUNT_MAX> publisher_sources{
@@ -235,7 +227,6 @@ void test_reliable_delivery_under_losses()
235227
deadline,
236228
iface_bitmap_all,
237229
udpard_prio_fast,
238-
topic_hash,
239230
1U,
240231
payload_view,
241232
&record_feedback,
@@ -296,8 +287,6 @@ void test_reliable_delivery_under_losses()
296287
TEST_ASSERT_EQUAL_size_t(1, fb.count);
297288
TEST_ASSERT_EQUAL_UINT32(1, fb.acknowledgements);
298289
TEST_ASSERT_EQUAL_size_t(1, ctx.received);
299-
TEST_ASSERT_EQUAL_size_t(0, ctx.collisions);
300-
301290
// Cleanup.
302291
udpard_rx_port_free(&sub_rx, &sub_port);
303292
udpard_rx_port_free(&pub_rx, &pub_p2p_port);
@@ -350,7 +339,6 @@ void test_reliable_stats_and_failures()
350339
10,
351340
iface_bitmap_1,
352341
udpard_prio_fast,
353-
0xABCULL,
354342
5U,
355343
exp_payload,
356344
&record_feedback,
@@ -399,7 +387,7 @@ void test_reliable_stats_and_failures()
399387
ctx.expected.assign({ 1U, 2U, 3U, 4U });
400388
udpard_rx_new(&rx, nullptr);
401389
rx.user = &ctx;
402-
TEST_ASSERT_TRUE(udpard_rx_port_new(&port, 0x12340000ULL, 64, udpard_rx_unordered, 0, rx_mem, &callbacks));
390+
TEST_ASSERT_TRUE(udpard_rx_port_new(&port, 64, rx_mem, &callbacks));
403391

404392
const udpard_bytes_scattered_t src_payload = make_scattered(ctx.expected.data(), ctx.expected.size());
405393
FeedbackState fb_ignore{};
@@ -408,7 +396,6 @@ void test_reliable_stats_and_failures()
408396
1000,
409397
iface_bitmap_1,
410398
udpard_prio_fast,
411-
port.topic_hash,
412399
7U,
413400
src_payload,
414401
&record_feedback,

0 commit comments

Comments
 (0)