@@ -774,46 +774,30 @@ PTF_TEST_CASE(TestSendPacket)
774774 PTF_ASSERT_TRUE (fileReaderDev.open ());
775775
776776 PTF_ASSERT_GREATER_THAN (liveDev->getMtu (), 0 );
777- uint32_t mtu = liveDev->getMtu ();
777+ auto mtu = liveDev->getMtu ();
778778 int buffLen = mtu + 1 + sizeof (pcpp::ether_header);
779- uint8_t * buff = new uint8_t [buffLen];
780- memset (buff, 0 , buffLen);
779+ std::vector<uint8_t > buff (buffLen, 0 );
781780 pcpp::Logger::getInstance ().suppressLogs ();
782- PTF_ASSERT_FALSE (liveDev->sendPacket (buff, buffLen, true ));
781+ PTF_ASSERT_FALSE (liveDev->sendPacket (buff. data () , buffLen, true ));
783782 pcpp::Logger::getInstance ().enableLogs ();
784783
785- pcpp::RawPacket rawPacket;
786- int packetsSent = 0 ;
787- int packetsRead = 0 ;
788- while (fileReaderDev.getNextPacket (rawPacket))
784+ pcpp::RawPacketVector rawPackets;
785+ PTF_ASSERT_EQUAL (fileReaderDev.getNextPackets (rawPackets, 10 ), 10 );
786+ for (const auto & rawPacket : rawPackets)
789787 {
790- packetsRead++;
791-
792- // send packet as RawPacket
793- PTF_ASSERT_TRUE (liveDev->sendPacket (rawPacket));
794-
795- // send packet as raw data
796- PTF_ASSERT_TRUE (liveDev->sendPacket (rawPacket.getRawData (), rawPacket.getRawDataLen ()));
797-
798- // send packet as parsed EthPacekt
799- pcpp::Packet packet (&rawPacket);
788+ PTF_ASSERT_TRUE (liveDev->sendPacket (*rawPacket));
789+ PTF_ASSERT_TRUE (liveDev->sendPacket (rawPacket->getRawData (), rawPacket->getRawDataLen ()));
790+ pcpp::Packet packet (rawPacket);
800791 PTF_ASSERT_TRUE (liveDev->sendPacket (packet));
801-
802- packetsSent++;
803792 }
804793
805- PTF_ASSERT_EQUAL (packetsRead, packetsSent);
806-
807- liveDev->close ();
808794 fileReaderDev.close ();
809-
810- delete[] buff;
811795} // TestSendPacket
812796
813797PTF_TEST_CASE (TestSendPackets)
814798{
815799 pcpp::PcapLiveDevice* liveDev = nullptr ;
816- pcpp::IPv4Address ipToSearch (PcapTestGlobalArgs.ipToSendReceivePackets . c_str () );
800+ pcpp::IPv4Address ipToSearch (PcapTestGlobalArgs.ipToSendReceivePackets );
817801 liveDev = pcpp::PcapLiveDeviceList::getInstance ().getDeviceByIp (ipToSearch);
818802 PTF_ASSERT_NOT_NULL (liveDev);
819803 PTF_ASSERT_TRUE (liveDev->open ());
@@ -822,28 +806,25 @@ PTF_TEST_CASE(TestSendPackets)
822806 pcpp::PcapFileReaderDevice fileReaderDev (EXAMPLE_PCAP_PATH);
823807 PTF_ASSERT_TRUE (fileReaderDev.open ());
824808
825- std::vector<pcpp::RawPacket> rawPacketArr (10000 );
826- pcpp::PointerVector<pcpp::Packet> packetVec;
827- int packetsRead = 0 ;
828- while (fileReaderDev.getNextPacket (rawPacketArr[packetsRead]))
829- {
830- packetVec.pushBack (new pcpp::Packet (&rawPacketArr[packetsRead]));
831- packetsRead++;
832- }
809+ int expectedPacketCount = 10 ;
810+ pcpp::RawPacketVector rawPacketPtrVec;
811+ PTF_ASSERT_EQUAL (fileReaderDev.getNextPackets (rawPacketPtrVec, expectedPacketCount), expectedPacketCount);
833812
834- // send packets as RawPacket array
835- int packetsSentAsRaw = liveDev->sendPackets (rawPacketArr.data (), packetsRead);
813+ PTF_ASSERT_EQUAL (liveDev->sendPackets (rawPacketPtrVec), expectedPacketCount);
836814
837- // send packets as parsed EthPacekt array
838- std::vector<pcpp::Packet*> packetArr ;
839- packetArr. reserve ( 10000 );
840- std::copy (packetVec. begin (), packetVec. end (), std::back_inserter (packetArr) );
841- int packetsSentAsParsed = liveDev->sendPackets (packetArr .data (), packetsRead );
815+ std::vector<pcpp::RawPacket> rawPacketVec;
816+ rawPacketVec. reserve (rawPacketPtrVec. size ()) ;
817+ std::transform (rawPacketPtrVec. begin (), rawPacketPtrVec. end (), std::back_inserter (rawPacketVec),
818+ []( const auto & rawPacketPtr) { return *rawPacketPtr; } );
819+ PTF_ASSERT_EQUAL ( liveDev->sendPackets (rawPacketVec .data (), expectedPacketCount), expectedPacketCount );
842820
843- PTF_ASSERT_EQUAL (packetsSentAsRaw, packetsRead);
844- PTF_ASSERT_EQUAL (packetsSentAsParsed, packetsRead);
821+ pcpp::PointerVector<pcpp::Packet> packetPtrVec;
822+ for (const auto & rawPacket : rawPacketPtrVec)
823+ {
824+ packetPtrVec.pushBack (new pcpp::Packet (rawPacket));
825+ }
826+ PTF_ASSERT_EQUAL (liveDev->sendPackets (packetPtrVec.data (), expectedPacketCount), expectedPacketCount);
845827
846- liveDev->close ();
847828 fileReaderDev.close ();
848829} // TestSendPackets
849830
0 commit comments