Changeset 1ddbf81 in mainline for uspace/srv/net/tcp/test


Ignore:
Timestamp:
2017-09-03T09:22:21Z (8 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
20c82e3
Parents:
e73dbc1
Message:

Add TCP iqueue test and missing seq_no_segment_ready test. Fix iqueue segments being inserted in the wrong order and fix infinite loop when two segments inserted in iqueue in descending order.

Location:
uspace/srv/net/tcp/test
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/tcp/test/main.c

    re73dbc1 r1ddbf81  
    5757PCUT_INIT
    5858
     59PCUT_IMPORT(iqueue);
    5960PCUT_IMPORT(pdu);
    6061PCUT_IMPORT(segment);
  • uspace/srv/net/tcp/test/seq_no.c

    re73dbc1 r1ddbf81  
    242242}
    243243
     244/** Test seq_no_segment_ready() */
     245PCUT_TEST(segment_ready)
     246{
     247        tcp_conn_t *conn;
     248        inet_ep2_t epp;
     249        tcp_segment_t *seg;
     250        uint8_t *data;
     251        size_t dsize;
     252
     253        inet_ep2_init(&epp);
     254        conn = tcp_conn_new(&epp);
     255        PCUT_ASSERT_NOT_NULL(conn);
     256
     257        dsize = 15;
     258        data = calloc(dsize, 1);
     259        PCUT_ASSERT_NOT_NULL(data);
     260
     261        seg = tcp_segment_make_data(0, data, dsize);
     262        PCUT_ASSERT_NOT_NULL(seg);
     263
     264        /* Segment must be acceptable. Ready iff intersects RCV.NXT */
     265
     266        conn->rcv_nxt = 30;
     267        conn->rcv_wnd = 20;
     268
     269        PCUT_ASSERT_INT_EQUALS(dsize, seg->len);
     270
     271        seg->seq = 16;
     272        PCUT_ASSERT_TRUE(seq_no_segment_ready(conn, seg));
     273
     274        seg->seq = 17;
     275        PCUT_ASSERT_TRUE(seq_no_segment_ready(conn, seg));
     276
     277        seg->seq = 29;
     278        PCUT_ASSERT_TRUE(seq_no_segment_ready(conn, seg));
     279
     280        seg->seq = 30;
     281        PCUT_ASSERT_TRUE(seq_no_segment_ready(conn, seg));
     282
     283        seg->seq = 31;
     284        PCUT_ASSERT_FALSE(seq_no_segment_ready(conn, seg));
     285
     286        tcp_segment_delete(seg);
     287        tcp_conn_delete(conn);
     288        free(data);
     289}
     290
    244291/** Test seq_no_segment_acceptable() */
    245292PCUT_TEST(segment_acceptable)
Note: See TracChangeset for help on using the changeset viewer.