From 918a2943c9b3550c0f973dee716ea49d526f2b38 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 5 Nov 2019 09:55:45 +0800 Subject: [PATCH] Cover protocol stack RTMP. 3.0.63 --- trunk/src/utest/srs_utest_protostack.cpp | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/trunk/src/utest/srs_utest_protostack.cpp b/trunk/src/utest/srs_utest_protostack.cpp index e2323add2..fdb8c23ea 100644 --- a/trunk/src/utest/srs_utest_protostack.cpp +++ b/trunk/src/utest/srs_utest_protostack.cpp @@ -46,6 +46,15 @@ protected: } }; +class MockPayloadErrorPacket : public SrsPacket +{ +protected: + virtual srs_error_t encode(int& size, char*& payload) { + size = 1024; + return srs_success; + } +}; + VOID TEST(ProtoStackTest, PacketEncode) { srs_error_t err; @@ -175,6 +184,35 @@ VOID TEST(ProtoStackTest, ManualFlush) } } +VOID TEST(ProtoStackTest, SendPacketsError) +{ + srs_error_t err; + + if (true) { + MockBufferIO io; + SrsProtocol p(&io); + + SrsPacket* pkt = new MockErrorPacket(); + HELPER_EXPECT_FAILED(p.send_and_free_packet(pkt, 1)); + } + + if (true) { + MockBufferIO io; + SrsProtocol p(&io); + + SrsPacket* pkt = new SrsPacket(); + HELPER_EXPECT_SUCCESS(p.send_and_free_packet(pkt, 1)); + } + + if (true) { + MockBufferIO io; + SrsProtocol p(&io); + + SrsPacket* pkt = new MockPayloadErrorPacket(); + HELPER_EXPECT_SUCCESS(p.send_and_free_packet(pkt, 1)); + } +} + VOID TEST(ProtoStackTest, SendZeroMessages) { srs_error_t err; @@ -244,3 +282,22 @@ VOID TEST(ProtoStackTest, HugeMessages) } } +VOID TEST(ProtoStackTest, DecodeMessages) +{ + srs_error_t err; + + if (true) { + MockBufferIO io; + SrsProtocol p(&io); + + // AMF0 message with 1B should fail. + SrsCommonMessage msg; + msg.header.initialize_amf0_script(1, 1); + msg.create_payload(1); + msg.size = 1; + + SrsPacket* pkt; + HELPER_EXPECT_FAILED(p.decode_message(&msg, &pkt)); + } +} +