Skip to content

Commit 02466f6

Browse files
committed
SCTP: add one more Packet test
1 parent 5d67d5c commit 02466f6

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

worker/test/src/RTC/SCTP/packet/TestPacket.cpp

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -789,4 +789,48 @@ SCENARIO("SCTP Packet", "[sctp][serializable]")
789789

790790
delete packet;
791791
}
792+
793+
SECTION("Packet::BuildChunkInPlace() throws if given Chunk exceeds Packet buffer length")
794+
{
795+
auto* packet = Packet::Factory(FactoryBuffer, 28);
796+
797+
CHECK_PACKET(
798+
/*packet*/ packet,
799+
/*buffer*/ FactoryBuffer,
800+
/*bufferLength*/ 28,
801+
/*length*/ 12,
802+
/*frozen*/ false,
803+
/*sourcePort*/ 0,
804+
/*destinationPort*/ 0,
805+
/*verificationTag*/ 0,
806+
/*checksum*/ 0,
807+
/*hasValidCrc32cChecksum*/ false,
808+
/*chunksCount*/ 0);
809+
810+
// Chunk 1: DATA, length: 16 bytes.
811+
auto* chunk1 = packet->BuildChunkInPlace<DataChunk>();
812+
813+
// Adding user data 10 bytes, must throw.
814+
REQUIRE_THROWS_AS(chunk1->SetUserData(DataBuffer, 10), MediaSoupError);
815+
816+
delete chunk1;
817+
818+
// Chunk 2: INIT, length: 20 bytes. Must throw.
819+
REQUIRE_THROWS_AS(packet->BuildChunkInPlace<InitChunk>(), MediaSoupError);
820+
821+
CHECK_PACKET(
822+
/*packet*/ packet,
823+
/*buffer*/ FactoryBuffer,
824+
/*bufferLength*/ 28,
825+
/*length*/ 12,
826+
/*frozen*/ false,
827+
/*sourcePort*/ 0,
828+
/*destinationPort*/ 0,
829+
/*verificationTag*/ 0,
830+
/*checksum*/ 0,
831+
/*hasValidCrc32cChecksum*/ false,
832+
/*chunksCount*/ 0);
833+
834+
delete packet;
835+
}
792836
}

0 commit comments

Comments
 (0)