133 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "ConfigurationManagement/Configurator.hpp"
 | |
| #include "Initializer.hpp"
 | |
| #include "PacketDissection/PacketInfo.hpp"
 | |
| #include "PacketDissection/PacketInfoCreator.hpp"
 | |
| #include "PacketDissection/PacketInfoIpv4Icmp.hpp"
 | |
| #include "PacketDissection/PacketInfoIpv4Tcp.hpp"
 | |
| #include "PacketDissection/PacketInfoIpv4Udp.hpp"
 | |
| #include <catch2/catch.hpp>
 | |
| #include <iostream>
 | |
| 
 | |
| TEST_CASE("Creation","[]")
 | |
| {
 | |
|     
 | |
|     SECTION("PacketInfo","[]"){
 | |
|       PacketInfo pkt_inf;
 | |
|       rte_mbuf* mbuf;
 | |
|       //REQUIRE_NOTHROW(pkt_inf.set_mbuf(mbuf));
 | |
|       //REQUIRE_NOTHROW(nbuf = pkt_inf.get_mbuf());
 | |
|       //CHECK(mbuf == nbuf);
 | |
|       CHECK(pkt_inf.get_type() == NONE);
 | |
|     }
 | |
| 
 | |
|     SECTION("Creation: IPv4ICMP", "[]") {
 | |
|         // PacketInfoIpv4Icmp* pkt_inf =
 | |
|         // static_cast<PacketInfoIpv4Icmp*>(PacketInfoCreator::create_pkt_info(IPv4ICMP));
 | |
|         PacketInfoIpv4Icmp pkt_inf;
 | |
|         CHECK(pkt_inf.get_type() == IPv4ICMP);
 | |
|         // pkt_inf->set_mbuf(mbuf);
 | |
|         // struct rte_ipv4_hdr* ip_hdr = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_ipv4_hdr*, 0); REQUIRE_NOTHROW(pkt_inf->set_ip_hdr(ip_hdr));
 | |
|         // struct rte_icmp_hdr* l4_header = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_icmp_hdr*, 20);
 | |
|         // REQUIRE_NOTHROW(pkt_inf->set_icmp_hdr(l4_header)); uint32_t num;
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_dst_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_src_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_packet_size());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_payload_size());
 | |
|     }
 | |
| 
 | |
|     SECTION("Creation: IPv4TCP", "[]") {
 | |
|         // PacketInfoIpv4Tcp* pkt_inf =
 | |
|         // static_cast<PacketInfoIpv4Tcp*>(PacketInfoCreator::create_pkt_info(IPv4TCP));
 | |
|         PacketInfoIpv4Tcp pkt_inf;
 | |
|         CHECK(pkt_inf.get_type() == IPv4TCP);
 | |
|         // pkt_inf->set_mbuf(mbuf);
 | |
|         // struct rte_ipv4_hdr* ip_hdr = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_ipv4_hdr*, 0); REQUIRE_NOTHROW(pkt_inf->set_ip_hdr(ip_hdr));
 | |
|         // struct rte_tcp_hdr* l4_header = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_tcp_hdr*, 20); REQUIRE_NOTHROW(pkt_inf->set_tcp_hdr(l4_header));
 | |
|         // uint32_t num;
 | |
|         // uint32_t num2;
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_dst_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_src_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_packet_size());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_payload_size());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_dst_port());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_src_port());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_flags());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_window_size());
 | |
|         // CHECK_NOTHROW(pkt_inf->set_ack_num(num));
 | |
|         // CHECK_NOTHROW(num2= pkt_inf->get_ack_num());
 | |
|         // CHECK(num == num2);
 | |
|         // CHECK_NOTHROW(pkt_inf->set_seq_num(num));
 | |
|         // CHECK_NOTHROW(num = pkt_inf->get_seq_num());
 | |
|         // CHECK(num == num2);
 | |
|     }
 | |
| 
 | |
|     SECTION("Creation: IPv4UDP", "[]") {
 | |
|         // PacketInfoIpv4Udp* pkt_inf =
 | |
|         // static_cast<PacketInfoIpv4Udp*>(PacketInfoCreator::create_pkt_info(IPv4UDP));
 | |
|         PacketInfoIpv4Udp pkt_inf;
 | |
|         CHECK(pkt_inf.get_type() == IPv4UDP);
 | |
|         // pkt_inf->set_mbuf(mbuf);
 | |
|         // struct rte_ipv4_hdr* ip_hdr = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_ipv4_hdr*, 0); REQUIRE_NOTHROW(pkt_inf->set_ip_hdr(ip_hdr));
 | |
|         // struct rte_udp_hdr* l4_header = rte_pktmbuf_mtod_offset(mbuf, struct
 | |
|         // rte_udp_hdr*, 20); REQUIRE_NOTHROW(pkt_inf->set_udp_hdr(l4_header));
 | |
|         // uint32_t num;
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_dst_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_src_ip());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_packet_size());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_payload_size());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_dst_port());
 | |
|         // CHECK_NOTHROW(num= pkt_inf->get_src_port());
 | |
|     }
 | |
| }
 | |
| 
 | |
| TEST_CASE("Transformation", "[]") {
 | |
| 
 | |
|     SECTION("keeping Type", "[]") {
 | |
|         PacketInfo* pkt_inf;
 | |
|         // pkt_inf = PacketInfoCreator::create_pkt_info(IPv4ICMP);
 | |
|         pkt_inf = new PacketInfoIpv4Icmp;
 | |
|         PacketInfoIpv4Icmp* pkt_inf_icmp;
 | |
|         pkt_inf_icmp = static_cast<PacketInfoIpv4Icmp*>(pkt_inf);
 | |
|         CHECK(pkt_inf_icmp->get_type() == IPv4ICMP);
 | |
| 
 | |
|         // PacketInfoCreator::create_pkt_info(IPv4TCP)
 | |
|         pkt_inf = new PacketInfoIpv4Tcp;
 | |
|         PacketInfoIpv4Tcp* pkt_inf_tcp;
 | |
|         pkt_inf_tcp = static_cast<PacketInfoIpv4Tcp*>(pkt_inf);
 | |
|         CHECK(pkt_inf_tcp->get_type() == IPv4TCP);
 | |
| 
 | |
|         // PacketInfoCreator::create_pkt_info(IPv4UDP)
 | |
|         pkt_inf = new PacketInfoIpv4Udp;
 | |
|         PacketInfoIpv4Udp* pkt_inf_udp;
 | |
|         pkt_inf_udp = static_cast<PacketInfoIpv4Udp*>(pkt_inf);
 | |
|         CHECK(pkt_inf_udp->get_type() == IPv4UDP);
 | |
| 
 | |
|         // PacketInfoCreator::create_pkt_info(NONE)
 | |
|         pkt_inf = new PacketInfo;
 | |
|         CHECK(pkt_inf->get_type() == NONE);
 | |
| 
 | |
|         PacketInfo* pkt_inf_arr[5];
 | |
|         pkt_inf_arr[0] = pkt_inf_icmp;
 | |
|         pkt_inf_arr[1] = pkt_inf_tcp;
 | |
|         pkt_inf_arr[2] = pkt_inf_udp;
 | |
|         pkt_inf_arr[3] = pkt_inf;
 | |
|         CHECK(pkt_inf_arr[0]->get_type() == IPv4ICMP);
 | |
|         CHECK(pkt_inf_arr[1]->get_type() == IPv4TCP);
 | |
|         CHECK(pkt_inf_arr[2]->get_type() == IPv4UDP);
 | |
|         CHECK(pkt_inf_arr[3]->get_type() == NONE);
 | |
| 
 | |
|         // clean up
 | |
|         delete pkt_inf;
 | |
|         delete pkt_inf_icmp;
 | |
|         delete pkt_inf_tcp;
 | |
|         delete pkt_inf_udp;
 | |
|         delete pkt_inf_arr;
 | |
|     }
 | |
| }
 | |
| 
 |