bool test_tcp_v6_fin_rcv_state_handle( void )
{
    struct sk_buff *skb;
    struct session_entry session;
    bool success = true;

    /* A V4 FIN packet arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_FIN, V6_FIN_RCV, 10))
        return false;

    success &= assert_true(tcp_v6_fin_rcv_state_handle( skb, &session ), "V4 fin-result");
    success &= assert_equals_u8(V4_FIN_V6_FIN_RCV, session.state, "V4 fin-state");
    success &= assert_not_equals_int(10, session.dying_time, "V4 fin-lifetime");
    kfree_skb(skb);

    /* Something else arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_SYN, V6_FIN_RCV, 10))
        return false;

    success &= assert_true(tcp_v6_fin_rcv_state_handle(skb, &session), "else-result");
    success &= assert_equals_u8(V6_FIN_RCV, session.state, "else-state");
    success &= assert_not_equals_int(10, session.dying_time, "else-lifetime");
    kfree_skb(skb);

    return success;
}
bool test_tcp_v6_init_state_handle( void )
{
    struct sk_buff *skb;
    struct session_entry session;
    bool success = true;

    // A V4 SYN packet arrives.
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_SYN, V6_INIT, 10))
        return false;

    success &= assert_true(tcp_v6_init_state_handle(skb, &session), "V4 syn-result");
    success &= assert_equals_u8(ESTABLISHED, session.state, "V4 syn-state");
    success &= assert_not_equals_int(10, session.dying_time, "V4 syn-lifetime");
    kfree_skb(skb);

    // A V6 SYN packet arrives.
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V6_SYN, V6_INIT, 10))
        return false;

    success &= assert_true(tcp_v6_init_state_handle(skb, &session), "V6 syn-result");
    success &= assert_equals_u8(V6_INIT, session.state, "V6 syn-state");
    success &= assert_not_equals_int(10, session.dying_time, "V6 syn-lifetime");
    kfree_skb(skb);

    // Something else arrives.
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V6_RST, V6_INIT, 10))
        return false;

    success &= assert_true(tcp_v6_init_state_handle(skb, &session), "else-result");
    success &= assert_equals_u8(V6_INIT, session.state, "else-state");
    success &= assert_equals_int(10, session.dying_time, "else-lifetime");
    kfree_skb(skb);

    return success;
}
bool test_tcp_established_state_handle( void )
{
    struct sk_buff *skb;
    struct session_entry session;
    bool success = true;

    /* A V4 FIN packet arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_FIN, ESTABLISHED, 10))
        return false;

    success &= assert_true(tcp_established_state_handle( skb, &session ), "V4 fin-result");
    success &= assert_equals_u8(V4_FIN_RCV, session.state, "V4 fin-state");
    success &= assert_equals_int(10, session.dying_time, "V4 fin-lifetime");
    kfree_skb(skb);

    /* A V6 FIN packet arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V6_FIN, ESTABLISHED, 10))
        return false;

    success &= assert_true(tcp_established_state_handle( skb, &session ), "V6 fin-result");
    success &= assert_equals_u8(V6_FIN_RCV, session.state, "V6 fin-state");
    success &= assert_equals_int(10, session.dying_time, "V6 fin-lifetime");
    kfree_skb(skb);

    /* A V4 RST packet arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_RST, ESTABLISHED, 10))
        return false;

    success &= assert_true(tcp_established_state_handle( skb, &session ), "V4 rst-result");
    success &= assert_equals_u8(TRANS, session.state, "V4 rst-state");
    success &= assert_not_equals_int(10, session.dying_time, "V4 rst-lifetime");
    kfree_skb(skb);

    /* A V6 RST packet arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V6_RST, ESTABLISHED, 10))
        return false;

    success &= assert_true(tcp_established_state_handle( skb, &session ), "V6 rst-result");
    success &= assert_equals_u8(TRANS, session.state, "V6 rst-state");
    success &= assert_not_equals_int(10, session.dying_time, "V6 rst-lifetime");
    kfree_skb(skb);

    /* Something else arrives. */
    if (!init_skb_and_session(&skb, &session, PACKET_TYPE_V4_SYN, ESTABLISHED, 10))
        return false;

    success &= assert_true(tcp_established_state_handle(skb, &session), "else-result");
    success &= assert_equals_u8(ESTABLISHED, session.state, "else-state");
    success &= assert_not_equals_int(10, session.dying_time, "else-lifetime");
    kfree_skb(skb);

    return success;
}
Esempio n. 4
0
void test_assertions ()
{
        char *c;

        assert(1+1 == 2);
        assert(1+1 == 3);

        assert_true(1+1 == 2);
        assert_true(1+1 == 3);

        assert_false(1+1 == 3);
        assert_false(1+1 == 2);
        
        assert_equals_int(1, 1);
        assert_equals_int(1, 2);

        assert_not_equals_int(1, 2);
        assert_not_equals_int(1, 1);
        
        assert_equals_int(1, 1);
        assert_equals_int(1, 2);

        assert_not_equals_int(1, 2);
        assert_not_equals_int(1, 1);

        assert_equals_str("abc", "abc");
        assert_equals_str("abc", "def");

        assert_not_equals_str("abc", "def");
        assert_not_equals_str("abc", "abc");

        c = NULL;
        assert_null(c);
        c = malloc(sizeof(char));
        assert_null(c);

        c = malloc(sizeof(char));
        assert_not_null(c);
        c = NULL;
        assert_not_null(c);

        assert_equals_float(2.0, 2.0);
        assert_equals_float(2.0, 2.1);

        assert_not_equals_float(2.0, 2.1);
        assert_not_equals_float(2.0, 2.0);

        assert_equals_double(2.0, 2.0);
        assert_equals_double(2.0, 2.1);

        assert_not_equals_double(2.0, 2.1);
        assert_not_equals_double(2.0, 2.0);
}