@@ -10237,6 +10237,21 @@ START_TEST(test_tcp_sort_sack_blocks_swaps_out_of_order)
1023710237}
1023810238END_TEST
1023910239
10240+ START_TEST(test_tcp_sort_sack_blocks_wrap_order)
10241+ {
10242+ struct tcp_sack_block blocks[2];
10243+
10244+ blocks[0].left = 0x00000010U;
10245+ blocks[0].right = 0x00000020U;
10246+ blocks[1].left = 0xFFFFFFF0U;
10247+ blocks[1].right = 0xFFFFFFF8U;
10248+
10249+ tcp_sort_sack_blocks(blocks, 2);
10250+ ck_assert_uint_eq(blocks[0].left, 0xFFFFFFF0U);
10251+ ck_assert_uint_eq(blocks[1].left, 0x00000010U);
10252+ }
10253+ END_TEST
10254+
1024010255START_TEST(test_tcp_merge_sack_blocks_adjacent_and_disjoint)
1024110256{
1024210257 struct tcp_sack_block blocks[3];
@@ -10255,6 +10270,23 @@ START_TEST(test_tcp_merge_sack_blocks_adjacent_and_disjoint)
1025510270}
1025610271END_TEST
1025710272
10273+ START_TEST(test_tcp_merge_sack_blocks_wrap_order)
10274+ {
10275+ struct tcp_sack_block blocks[2];
10276+ uint8_t merged;
10277+
10278+ blocks[0].left = 0x00000010U;
10279+ blocks[0].right = 0x00000020U;
10280+ blocks[1].left = 0xFFFFFFF0U;
10281+ blocks[1].right = 0xFFFFFFF8U;
10282+
10283+ merged = tcp_merge_sack_blocks(blocks, 2);
10284+ ck_assert_uint_eq(merged, 2U);
10285+ ck_assert_uint_eq(blocks[0].left, 0xFFFFFFF0U);
10286+ ck_assert_uint_eq(blocks[1].left, 0x00000010U);
10287+ }
10288+ END_TEST
10289+
1025810290START_TEST(test_tcp_recv_tracks_holes_and_sack_blocks)
1025910291{
1026010292 struct wolfIP s;
@@ -17393,7 +17425,9 @@ Suite *wolf_suite(void)
1739317425 tcase_add_test(tc_utils, test_tcp_build_ack_options_does_not_write_past_returned_len);
1739417426 tcase_add_test(tc_utils, test_tcp_build_ack_options_omits_ts_when_not_negotiated);
1739517427 tcase_add_test(tc_utils, test_tcp_sort_sack_blocks_swaps_out_of_order);
17428+ tcase_add_test(tc_utils, test_tcp_sort_sack_blocks_wrap_order);
1739617429 tcase_add_test(tc_utils, test_tcp_merge_sack_blocks_adjacent_and_disjoint);
17430+ tcase_add_test(tc_utils, test_tcp_merge_sack_blocks_wrap_order);
1739717431 tcase_add_test(tc_utils, test_tcp_recv_tracks_holes_and_sack_blocks);
1739817432 tcase_add_test(tc_utils, test_tcp_rebuild_rx_sack_right_edge_wraps);
1739917433 tcase_add_test(tc_utils, test_tcp_consume_ooo_wrap_trim_and_promote);
0 commit comments