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; }
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); }