1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-23 02:35:57 +01:00

Added ClonePDU test to ARPTest.

This commit is contained in:
Matias Fontanini
2011-09-15 11:58:01 -03:00
parent 13e260b825
commit bbf7892873

View File

@@ -33,6 +33,34 @@ TEST_F(ARPTest, DefaultContructor) {
EXPECT_EQ(arp.pdu_type(), PDU::ARP);
}
TEST_F(ARPTest, CopyContructor) {
ARP arp1(0x1234, 0xa3f1, hw_addr1, hw_addr2);
ARP arp2(arp1);
EXPECT_EQ(arp1.opcode(), arp2.opcode());
ASSERT_EQ(arp1.hw_addr_length(), arp2.hw_addr_length());
EXPECT_EQ(arp1.hw_addr_format(), arp2.hw_addr_format());
ASSERT_EQ(arp1.prot_addr_length(), arp2.prot_addr_length());
EXPECT_EQ(arp1.prot_addr_format(), arp2.prot_addr_format());
EXPECT_EQ(arp1.sender_ip_addr(), arp2.sender_ip_addr());
EXPECT_EQ(arp1.target_ip_addr(), arp2.target_ip_addr());
EXPECT_TRUE(memcmp(arp1.sender_hw_addr(), arp2.sender_hw_addr(), arp2.hw_addr_length()) == 0);
EXPECT_TRUE(memcmp(arp1.target_hw_addr(), arp2.target_hw_addr(), arp2.hw_addr_length()) == 0);
}
TEST_F(ARPTest, CopyAssignmentOperator) {
ARP arp1(0x1234, 0xa3f1, hw_addr1, hw_addr2);
ARP arp2 = arp1;
EXPECT_EQ(arp1.opcode(), arp2.opcode());
ASSERT_EQ(arp1.hw_addr_length(), arp2.hw_addr_length());
EXPECT_EQ(arp1.hw_addr_format(), arp2.hw_addr_format());
ASSERT_EQ(arp1.prot_addr_length(), arp2.prot_addr_length());
EXPECT_EQ(arp1.prot_addr_format(), arp2.prot_addr_format());
EXPECT_EQ(arp1.sender_ip_addr(), arp2.sender_ip_addr());
EXPECT_EQ(arp1.target_ip_addr(), arp2.target_ip_addr());
EXPECT_TRUE(memcmp(arp1.sender_hw_addr(), arp2.sender_hw_addr(), arp2.hw_addr_length()) == 0);
EXPECT_TRUE(memcmp(arp1.target_hw_addr(), arp2.target_hw_addr(), arp2.hw_addr_length()) == 0);
}
TEST_F(ARPTest, CompleteContructor) {
ARP arp(0x1234, 0xa3f1, hw_addr1, hw_addr2);
EXPECT_TRUE(memcmp(arp.target_hw_addr(), hw_addr1, sizeof(hw_addr1)) == 0);
@@ -122,6 +150,23 @@ TEST_F(ARPTest, Serialize) {
delete[] buffer;
}
TEST_F(ARPTest, ClonePDU) {
ARP arp1(0x1234, 0xa3f1, hw_addr1, hw_addr2);
ARP *arp2 = static_cast<ARP*>(arp1.clone_pdu());
ASSERT_TRUE(arp2);
EXPECT_EQ(arp1.opcode(), arp2->opcode());
ASSERT_EQ(arp1.hw_addr_length(), arp2->hw_addr_length());
EXPECT_EQ(arp1.hw_addr_format(), arp2->hw_addr_format());
ASSERT_EQ(arp1.prot_addr_length(), arp2->prot_addr_length());
EXPECT_EQ(arp1.prot_addr_format(), arp2->prot_addr_format());
EXPECT_EQ(arp1.sender_ip_addr(), arp2->sender_ip_addr());
EXPECT_EQ(arp1.target_ip_addr(), arp2->target_ip_addr());
EXPECT_TRUE(memcmp(arp1.sender_hw_addr(), arp2->sender_hw_addr(), arp2->hw_addr_length()) == 0);
EXPECT_TRUE(memcmp(arp1.target_hw_addr(), arp2->target_hw_addr(), arp2->hw_addr_length()) == 0);
delete arp2;
}
TEST_F(ARPTest, ConstructorFromBuffer) {
ARP arp1(expected_packet, sizeof(expected_packet));
uint32_t size;