1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-27 12:14:26 +01:00

Added concat operator to Packet and an overload that takes a PDU*.

This commit is contained in:
Matias Fontanini
2012-12-05 17:04:39 -03:00
parent 765285c6ee
commit 75b32c75bc
6 changed files with 95 additions and 11 deletions

View File

@@ -6,6 +6,7 @@
#include "tcp.h"
#include "rawpdu.h"
#include "pdu.h"
#include "packet.h"
using namespace std;
using namespace Tins;
@@ -30,3 +31,26 @@ TEST_F(PDUTest, OperatorConcat) {
EXPECT_TRUE(std::equal(raw_payload.begin(), raw_payload.end(), raw->payload().begin()));
}
TEST_F(PDUTest, OperatorConcatOnPointers) {
std::string raw_payload = "Test";
IP ip = IP("192.168.0.1") / TCP(22, 52);
TCP *tcp = ip.find_pdu<TCP>();
ASSERT_TRUE(tcp);
tcp /= RawPDU(raw_payload);
RawPDU *raw = ip.find_pdu<RawPDU>();
ASSERT_TRUE(raw);
ASSERT_EQ(raw->payload_size(), raw_payload.size());
EXPECT_TRUE(std::equal(raw->payload().begin(), raw->payload().end(), raw_payload.begin()));
}
TEST_F(PDUTest, OperatorConcatOnPacket) {
std::string raw_payload = "Test";
Packet packet = IP("192.168.0.1") / TCP(22, 52);
TCP *tcp = packet.pdu()->find_pdu<TCP>();
ASSERT_TRUE(tcp);
tcp /= RawPDU(raw_payload);
RawPDU *raw = packet.pdu()->find_pdu<RawPDU>();
ASSERT_TRUE(raw);
ASSERT_EQ(raw->payload_size(), raw_payload.size());
EXPECT_TRUE(std::equal(raw->payload().begin(), raw->payload().end(), raw_payload.begin()));
}