1
0
mirror of https://github.com/mfontanini/libtins synced 2026-01-26 20:01:35 +01:00

Added tins_cast as a replacement for dynamic_cast when using it on PDU classes.

This commit is contained in:
Matias Fontanini
2013-10-18 09:28:43 -03:00
parent 87fdd62b57
commit a507355e27
9 changed files with 59 additions and 9 deletions

View File

@@ -67,3 +67,15 @@ TEST_F(PDUTest, OperatorConcatOnPacket) {
ASSERT_EQ(raw->payload_size(), raw_payload.size());
EXPECT_TRUE(std::equal(raw->payload().begin(), raw->payload().end(), raw_payload.begin()));
}
TEST_F(PDUTest, TinsCast) {
PDU *null_pdu = 0;
TCP tcp;
PDU *pdu = &tcp;
EXPECT_EQ(tins_cast<TCP*>(pdu), &tcp);
EXPECT_EQ(tins_cast<const TCP*>(pdu), &tcp);
EXPECT_EQ(tins_cast<TCP*>(null_pdu), null_pdu);
EXPECT_EQ(tins_cast<UDP*>(pdu), null_pdu);
EXPECT_THROW(tins_cast<UDP>(*pdu), bad_tins_cast);
}