mirror of
https://github.com/mfontanini/libtins
synced 2026-01-23 02:35:57 +01:00
Added OfflinePacketFilter class.
This commit is contained in:
@@ -54,6 +54,7 @@ ADD_CUSTOM_TARGET(
|
||||
LLCTest
|
||||
MatchesResponseTest
|
||||
NetworkInterfaceTest
|
||||
OfflinePacketFilterTest
|
||||
PDUTest
|
||||
PPITest
|
||||
PPPoETest
|
||||
@@ -93,6 +94,7 @@ ADD_EXECUTABLE(IPv6AddressTest EXCLUDE_FROM_ALL ipv6address.cpp)
|
||||
ADD_EXECUTABLE(LLCTest EXCLUDE_FROM_ALL llc.cpp)
|
||||
ADD_EXECUTABLE(MatchesResponseTest EXCLUDE_FROM_ALL matches_response.cpp)
|
||||
ADD_EXECUTABLE(NetworkInterfaceTest EXCLUDE_FROM_ALL network_interface.cpp)
|
||||
ADD_EXECUTABLE(OfflinePacketFilterTest EXCLUDE_FROM_ALL offline_packet_filter.cpp)
|
||||
ADD_EXECUTABLE(PDUTest EXCLUDE_FROM_ALL pdu.cpp)
|
||||
ADD_EXECUTABLE(PPITest EXCLUDE_FROM_ALL ppi.cpp)
|
||||
ADD_EXECUTABLE(PPPoETest EXCLUDE_FROM_ALL pppoe.cpp)
|
||||
@@ -170,6 +172,7 @@ ADD_TEST(IPv6Address IPv6AddressTest)
|
||||
ADD_TEST(LLC LLCTest)
|
||||
ADD_TEST(MatchesResponse MatchesResponseTest)
|
||||
ADD_TEST(NetworkInterface NetworkInterfaceTest)
|
||||
ADD_TEST(OfflinePacketFilter OfflinePacketFilterTest)
|
||||
ADD_TEST(PDU PDUTest)
|
||||
ADD_TEST(PPI PPITest)
|
||||
ADD_TEST(PPPoE PPPoETest)
|
||||
|
||||
77
tests/src/offline_packet_filter.cpp
Normal file
77
tests/src/offline_packet_filter.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
#include <gtest/gtest.h>
|
||||
#include <cstring>
|
||||
#include <string>
|
||||
#include <stdint.h>
|
||||
#include "offline_packet_filter.h"
|
||||
#include "ip.h"
|
||||
#include "tcp.h"
|
||||
#include "ethernetII.h"
|
||||
#include "dot3.h"
|
||||
#include "sll.h"
|
||||
#include "llc.h"
|
||||
#include "udp.h"
|
||||
#include "rawpdu.h"
|
||||
|
||||
using namespace Tins;
|
||||
|
||||
class OfflinePacketFilterTest : public testing::Test {
|
||||
public:
|
||||
|
||||
};
|
||||
|
||||
TEST_F(OfflinePacketFilterTest, CopyConstructor) {
|
||||
OfflinePacketFilter filter1("udp and port 111", DataLinkType<EthernetII>());
|
||||
OfflinePacketFilter filter2(filter1);
|
||||
OfflinePacketFilter filter3("tcp", DataLinkType<RadioTap>());
|
||||
filter3 = filter1;
|
||||
|
||||
{
|
||||
EthernetII pkt = EthernetII() / IP() / UDP(111, 11) / RawPDU("test");
|
||||
EXPECT_TRUE(filter1.matches_filter(pkt));
|
||||
EXPECT_TRUE(filter2.matches_filter(pkt));
|
||||
EXPECT_TRUE(filter3.matches_filter(pkt));
|
||||
}
|
||||
|
||||
{
|
||||
EthernetII pkt = EthernetII() / IP() / TCP(111, 11) / RawPDU("test");
|
||||
EXPECT_FALSE(filter1.matches_filter(pkt));
|
||||
EXPECT_FALSE(filter2.matches_filter(pkt));
|
||||
EXPECT_FALSE(filter3.matches_filter(pkt));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(OfflinePacketFilterTest, MatchesFilterEthTcp) {
|
||||
OfflinePacketFilter filter("ip and port 55", DataLinkType<EthernetII>());
|
||||
{
|
||||
EthernetII pkt = EthernetII() / IP() / TCP(55, 11) / RawPDU("test");
|
||||
EXPECT_TRUE(filter.matches_filter(pkt));
|
||||
}
|
||||
{
|
||||
EthernetII pkt = EthernetII() / IP() / TCP(45, 11) / RawPDU("test");
|
||||
EXPECT_FALSE(filter.matches_filter(pkt));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(OfflinePacketFilterTest, MatchesFilterEth) {
|
||||
OfflinePacketFilter filter("ether dst 00:01:02:03:04:05", DataLinkType<EthernetII>());
|
||||
{
|
||||
EthernetII pkt = EthernetII("00:01:02:03:04:05") / IP() / TCP(55, 11) / RawPDU("test");
|
||||
EXPECT_TRUE(filter.matches_filter(pkt));
|
||||
}
|
||||
{
|
||||
EthernetII pkt = EthernetII() / IP() / TCP(45, 11) / RawPDU("test");
|
||||
EXPECT_FALSE(filter.matches_filter(pkt));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(OfflinePacketFilterTest, MatchesFilterSLLTcp) {
|
||||
OfflinePacketFilter filter("ip and port 55", DataLinkType<SLL>());
|
||||
{
|
||||
SLL pkt = SLL() / IP() / TCP(55, 11) / RawPDU("test");
|
||||
EXPECT_TRUE(filter.matches_filter(pkt));
|
||||
}
|
||||
{
|
||||
SLL pkt = SLL() / IP() / TCP(45, 11) / RawPDU("test");
|
||||
EXPECT_FALSE(filter.matches_filter(pkt));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user