unittests/lib/packet_parser_test.c in trema-0.3.19 vs unittests/lib/packet_parser_test.c in trema-0.3.20
- old
+ new
@@ -146,10 +146,46 @@
free_buffer( buffer );
}
static void
+test_parse_packet_rarp_request_succeeds() {
+ const char filename[] = "./unittests/lib/test_packets/rarp_req.cap";
+ buffer *buffer = store_packet_to_buffer( filename );
+
+ assert_true( parse_packet( buffer ) );
+ packet_info *packet_info = buffer->user_data;
+
+ assert_int_equal( packet_info->format, ETH_RARP );
+
+ u_char macda[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+ u_char macsa[] = { 0x0a, 0x1d, 0x79, 0x67, 0x55, 0xad };
+ assert_memory_equal( packet_info->eth_macda, macda, ETH_ADDRLEN );
+ assert_memory_equal( packet_info->eth_macsa, macsa, ETH_ADDRLEN );
+ assert_int_equal( packet_info->eth_type, ETH_ETHTYPE_RARP );
+
+ assert_int_equal( packet_info->l2_payload_length, 28 );
+
+ assert_int_equal( packet_info->arp_ar_hrd, 0x0001 );
+ assert_int_equal( packet_info->arp_ar_pro, 0x0800 );
+ assert_int_equal( packet_info->arp_ar_hln, 6 );
+ assert_int_equal( packet_info->arp_ar_pln, 4 );
+ assert_int_equal( packet_info->arp_ar_op, 3 );
+ assert_int_equal( packet_info->arp_spa, 0xc0a80003 );
+ assert_memory_equal( packet_info->arp_sha, macsa, ETH_ADDRLEN );
+ assert_int_equal( packet_info->arp_tpa, 0 );
+ u_char whois[] = { 0x22, 0x4f, 0x0d, 0x93, 0xae, 0xf0 };
+ assert_memory_equal( packet_info->arp_tha, whois, ETH_ADDRLEN );
+
+ assert_true( packet_type_rarp_request( buffer ) );
+ assert_false( packet_type_rarp_reply( buffer ) );
+
+ free_buffer( buffer );
+}
+
+
+static void
test_parse_packet_ipv6_succeeds() {
const char filename[] = "./unittests/lib/test_packets/icmp6_echo_req.cap";
buffer *buffer = store_packet_to_buffer( filename );
assert_true( parse_packet( buffer ) );
@@ -711,9 +747,10 @@
main() {
UnitTest tests[] = {
unit_test( test_parse_packet_snap_succeeds ),
unit_test( test_parse_packet_arp_request_succeeds ),
+ unit_test( test_parse_packet_rarp_request_succeeds ),
unit_test( test_parse_packet_ipv6_succeeds ),
unit_test( test_parse_packet_udp_succeeds ),
unit_test( test_parse_packet_udp_fragmented_head_succeeds ),