mirror of
https://github.com/mfontanini/libtins
synced 2026-01-27 20:24:26 +01:00
ARP now uses HWAddress. Utils have been updated as well.
This commit is contained in:
@@ -11,11 +11,13 @@
|
||||
using namespace std;
|
||||
using namespace Tins;
|
||||
|
||||
typedef ARP::hwaddress_type address_type;
|
||||
|
||||
class ARPTest : public testing::Test {
|
||||
public:
|
||||
static const uint8_t empty_addr[];
|
||||
static const uint8_t hw_addr1[];
|
||||
static const uint8_t hw_addr2[];
|
||||
static const address_type empty_addr;
|
||||
static const address_type hw_addr1;
|
||||
static const address_type hw_addr2;
|
||||
static const string ip_addr1;
|
||||
static const uint8_t expected_packet[];
|
||||
static const IPv4Address addr1, addr2;
|
||||
@@ -23,10 +25,15 @@ public:
|
||||
void test_equals(const ARP &arp1, const ARP &arp2);
|
||||
};
|
||||
|
||||
const uint8_t ARPTest::empty_addr[] = {'\x00', '\x00', '\x00', '\x00', '\x00', '\x00'};
|
||||
const uint8_t ARPTest::hw_addr1[] = {'\x13', '\xda', '\xde', '\xf1', '\x01', '\x85'};
|
||||
const uint8_t ARPTest::hw_addr2[] = {'\x7a', '\x1f', '\xf4', '\x39', '\xab', '\x0d'};
|
||||
const uint8_t ARPTest::expected_packet[] = {'\x00', '\x01', '\x08', '\x00', '\x06', '\x04', '\x00', '\x02', '\x03', '\xde', '\xf5', '\x12', '\t', '\xfa', '\xc0', '\xa8', '-', '\xe7', '\xf5', '\x12', '\xda', 'g', '\xbd', '\r', ' ', '\x9b', 'Q', '\xfe'};
|
||||
const address_type ARPTest::empty_addr;
|
||||
const address_type ARPTest::hw_addr1("13:da:de:f1:01:85");
|
||||
const address_type ARPTest::hw_addr2("7a:1f:f4:39:ab:0d");
|
||||
const uint8_t ARPTest::expected_packet[] = {
|
||||
'\x00', '\x01', '\x08', '\x00', '\x06', '\x04', '\x00', '\x02',
|
||||
'\x03', '\xde', '\xf5', '\x12', '\t', '\xfa', '\xc0', '\xa8', '-',
|
||||
'\xe7', '\xf5', '\x12', '\xda', 'g', '\xbd', '\r', ' ', '\x9b', 'Q',
|
||||
'\xfe'
|
||||
};
|
||||
const IPv4Address ARPTest::addr1(0x1234), ARPTest::addr2(0xa3f1);
|
||||
|
||||
void ARPTest::test_equals(const ARP &arp1, const ARP &arp2) {
|
||||
@@ -37,8 +44,8 @@ void ARPTest::test_equals(const ARP &arp1, const ARP &arp2) {
|
||||
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);
|
||||
EXPECT_EQ(arp1.sender_hw_addr(), arp2.sender_hw_addr());
|
||||
EXPECT_EQ(arp1.target_hw_addr(), arp2.target_hw_addr());
|
||||
EXPECT_EQ((bool)arp1.inner_pdu(), (bool)arp2.inner_pdu());
|
||||
}
|
||||
|
||||
@@ -46,8 +53,8 @@ TEST_F(ARPTest, DefaultContructor) {
|
||||
ARP arp;
|
||||
EXPECT_EQ(arp.target_ip_addr(), 0);
|
||||
EXPECT_EQ(arp.sender_ip_addr(), 0);
|
||||
EXPECT_TRUE(memcmp(arp.target_hw_addr(), empty_addr, sizeof(empty_addr)) == 0);
|
||||
EXPECT_TRUE(memcmp(arp.target_hw_addr(), empty_addr, sizeof(empty_addr)) == 0);
|
||||
EXPECT_EQ(arp.target_hw_addr(), empty_addr);
|
||||
EXPECT_EQ(arp.target_hw_addr(), empty_addr);
|
||||
EXPECT_EQ(arp.pdu_type(), PDU::ARP);
|
||||
}
|
||||
|
||||
@@ -73,8 +80,8 @@ TEST_F(ARPTest, NestedCopy) {
|
||||
|
||||
TEST_F(ARPTest, CompleteContructor) {
|
||||
ARP arp(addr1, addr2, hw_addr1, hw_addr2);
|
||||
EXPECT_TRUE(memcmp(arp.target_hw_addr(), hw_addr1, sizeof(hw_addr1)) == 0);
|
||||
EXPECT_TRUE(memcmp(arp.sender_hw_addr(), hw_addr2, sizeof(hw_addr2)) == 0);
|
||||
EXPECT_EQ(arp.target_hw_addr(), hw_addr1);
|
||||
EXPECT_EQ(arp.sender_hw_addr(), hw_addr2);
|
||||
EXPECT_EQ(arp.target_ip_addr(), addr1);
|
||||
EXPECT_EQ(arp.sender_ip_addr(), addr2);
|
||||
}
|
||||
@@ -94,13 +101,13 @@ TEST_F(ARPTest, TargetIPAddrInt) {
|
||||
TEST_F(ARPTest, TargetHWAddr) {
|
||||
ARP arp;
|
||||
arp.target_hw_addr(hw_addr1);
|
||||
EXPECT_TRUE(memcmp(arp.target_hw_addr(), hw_addr1, sizeof(hw_addr1)) == 0);
|
||||
EXPECT_EQ(arp.target_hw_addr(), hw_addr1);
|
||||
}
|
||||
|
||||
TEST_F(ARPTest, SenderHWAddr) {
|
||||
ARP arp;
|
||||
arp.sender_hw_addr(hw_addr1);
|
||||
EXPECT_TRUE(memcmp(arp.sender_hw_addr(), hw_addr1, sizeof(hw_addr1)) == 0);
|
||||
EXPECT_EQ(arp.sender_hw_addr(), hw_addr1);
|
||||
}
|
||||
|
||||
TEST_F(ARPTest, ProtAddrFormat) {
|
||||
@@ -162,8 +169,8 @@ TEST_F(ARPTest, ConstructorFromBuffer) {
|
||||
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);
|
||||
EXPECT_EQ(arp1.sender_hw_addr(), arp2.sender_hw_addr());
|
||||
EXPECT_EQ(arp1.target_hw_addr(), arp2.target_hw_addr());
|
||||
|
||||
delete[] buffer;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user