1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

Cover protocol stack RTMP. 3.0.63

This commit is contained in:
winlin 2019-11-05 10:17:06 +08:00
parent 918a2943c9
commit ce8f778fe6
3 changed files with 85 additions and 10 deletions

View file

@ -38,19 +38,37 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
using namespace std;
class MockErrorPacket : public SrsPacket
class MockPacket : public SrsPacket
{
public:
int size;
public:
MockPacket() {
size = 0;
}
virtual ~MockPacket() {
}
protected:
virtual int get_size() {
return 1024;
return size;
}
};
class MockPayloadErrorPacket : public SrsPacket
class MockPacket2 : public MockPacket
{
protected:
public:
char* payload;
public:
MockPacket2() {
payload = NULL;
}
virtual ~MockPacket2() {
srs_freep(payload);
}
virtual srs_error_t encode(int& size, char*& payload) {
size = 1024;
size = this->size;
payload = this->payload;
this->payload = NULL;
return srs_success;
}
};
@ -63,12 +81,16 @@ VOID TEST(ProtoStackTest, PacketEncode)
char* payload;
if (true) {
MockErrorPacket pkt;
MockPacket pkt;
pkt.size = 1024;
HELPER_EXPECT_FAILED(pkt.encode(size, payload));
}
if (true) {
MockErrorPacket pkt;
MockPacket pkt;
pkt.size = 1024;
SrsBuffer b;
HELPER_EXPECT_FAILED(pkt.decode(&b));
}
@ -81,7 +103,9 @@ VOID TEST(ProtoStackTest, PacketEncode)
}
if (true) {
MockErrorPacket pkt;
MockPacket pkt;
pkt.size = 1024;
EXPECT_EQ(1024, pkt.get_size());
}
}
@ -192,7 +216,8 @@ VOID TEST(ProtoStackTest, SendPacketsError)
MockBufferIO io;
SrsProtocol p(&io);
SrsPacket* pkt = new MockErrorPacket();
MockPacket* pkt = new MockPacket();
pkt->size = 1024;
HELPER_EXPECT_FAILED(p.send_and_free_packet(pkt, 1));
}
@ -208,11 +233,39 @@ VOID TEST(ProtoStackTest, SendPacketsError)
MockBufferIO io;
SrsProtocol p(&io);
SrsPacket* pkt = new MockPayloadErrorPacket();
MockPacket2* pkt = new MockPacket2();
pkt->size = 1024;
HELPER_EXPECT_SUCCESS(p.send_and_free_packet(pkt, 1));
}
}
VOID TEST(ProtoStackTest, SendHugePacket)
{
srs_error_t err;
if (true) {
MockBufferIO io;
SrsProtocol p(&io);
MockPacket2* pkt = new MockPacket2();
pkt->size = 1024;
pkt->payload = new char[1024];
HELPER_EXPECT_SUCCESS(p.send_and_free_packet(pkt, 1));
}
if (true) {
MockBufferIO io;
SrsProtocol p(&io);
MockPacket2* pkt = new MockPacket2();
pkt->size = 16;
pkt->payload = new char[16];
io.out_err = srs_error_new(1, "fail");
HELPER_EXPECT_FAILED(p.send_and_free_packet(pkt, 1));
}
}
VOID TEST(ProtoStackTest, SendZeroMessages)
{
srs_error_t err;