From 46c9a21a72b6e4681d067dd2a18be5f336cf7c00 Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Thu, 15 Sep 2011 10:21:51 -0300 Subject: [PATCH] Added UDP test. --- tests/src/udp.cpp | 120 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 tests/src/udp.cpp diff --git a/tests/src/udp.cpp b/tests/src/udp.cpp new file mode 100644 index 0000000..83e8135 --- /dev/null +++ b/tests/src/udp.cpp @@ -0,0 +1,120 @@ +#include +#include +#include "udp.h" +#include "pdu.h" + + +using namespace std; +using namespace Tins; + + + +TEST(UDP, DefaultContructor) { + UDP udp; + EXPECT_EQ(udp.dport(), 0); + EXPECT_EQ(udp.sport(), 0); + EXPECT_FALSE(udp.inner_pdu()); +} + +TEST(UDP, DPort) { + UDP udp; + uint16_t port = 0x1234; + udp.dport(port); + ASSERT_EQ(udp.dport(), port); +} + +TEST(UDP, SPort) { + UDP udp; + uint16_t port = 0x1234; + udp.sport(port); + ASSERT_EQ(udp.sport(), port); +} + +TEST(UDP, Length) { + UDP udp; + uint16_t length = 0x1234; + udp.length(length); + ASSERT_EQ(udp.length(), length); +} + +TEST(UDP, PDUType) { + UDP udp; + EXPECT_EQ(udp.pdu_type(), PDU::UDP); +} + +TEST(UDP, CopyConstructor) { + UDP udp1; + udp1.dport(0x1234); + udp1.sport(0x4321); + udp1.length(0xdead); + + UDP udp2(udp1); + EXPECT_EQ(udp2.sport(), udp1.sport()); + EXPECT_EQ(udp2.dport(), udp1.dport()); + EXPECT_EQ(udp2.length(), udp1.length()); +} + +TEST(UDP, CopyAssignmentOperator) { + UDP udp1; + udp1.dport(0x1234); + udp1.sport(0x4321); + udp1.length(0xdead); + + UDP udp2 = udp1; + EXPECT_EQ(udp2.sport(), udp1.sport()); + EXPECT_EQ(udp2.dport(), udp1.dport()); + EXPECT_EQ(udp2.length(), udp1.length()); +} + +TEST(UDP, Clone) { + UDP udp1; + uint16_t sport = 0x1234, dport = 0x4321, length = 0xdead; + udp1.dport(dport); + udp1.sport(sport); + udp1.length(length); + + UDP *udp2 = static_cast(udp1.clone_pdu()); + ASSERT_TRUE(udp2); + EXPECT_EQ(udp2->sport(), sport); + EXPECT_EQ(udp2->dport(), dport); + EXPECT_EQ(udp2->length(), length); + EXPECT_EQ(udp2->pdu_type(), PDU::UDP); + delete udp2; +} + +TEST(UDP, Serialize) { + UDP udp1; + uint16_t sport = 0x1234, dport = 0x4321, length = 0xdead; + udp1.dport(dport); + udp1.sport(sport); + udp1.length(length); + + uint32_t size; + uint8_t *buffer = udp1.serialize(size); + ASSERT_TRUE(buffer); + delete[] buffer; +} + +TEST(UDP, BufferClone) { + UDP udp1; + uint16_t sport = 0x1234, dport = 0x4321, length = 0xdead; + udp1.dport(dport); + udp1.sport(sport); + udp1.length(length); + + uint32_t size; + uint8_t *buffer = udp1.serialize(size); + ASSERT_TRUE(buffer); + + UDP udp2(buffer, size); + EXPECT_EQ(udp2.sport(), udp1.sport()); + EXPECT_EQ(udp2.dport(), udp1.dport()); + EXPECT_EQ(udp2.length(), udp1.length()); + EXPECT_EQ(udp2.pdu_type(), PDU::UDP); + + delete[] buffer; +} + + + +