mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Support address sanitizer for utest and fix some leaks. (#3242)
* MP4: Fix memory leak when error. * Kernel: Support free global objects for utest. * HTTP: Fix memory leak when error. * MP4: Support more sample rate for audio. * RTMP: Support free field for utest. * UTest: Support address sanitizer.
This commit is contained in:
parent
be0241efdb
commit
368356c223
18 changed files with 360 additions and 154 deletions
|
@ -81,6 +81,9 @@ srs_error_t prepare_main() {
|
|||
return err;
|
||||
}
|
||||
|
||||
// Free global data, for address sanitizer.
|
||||
extern void srs_free_global_system_ips();
|
||||
|
||||
// We could do something in the main of utest.
|
||||
// Copy from gtest-1.6.0/src/gtest_main.cc
|
||||
GTEST_API_ int main(int argc, char **argv) {
|
||||
|
@ -97,7 +100,11 @@ GTEST_API_ int main(int argc, char **argv) {
|
|||
}
|
||||
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
int r0 = RUN_ALL_TESTS();
|
||||
|
||||
srs_free_global_system_ips();
|
||||
|
||||
return r0;
|
||||
}
|
||||
|
||||
MockEmptyLog::MockEmptyLog(SrsLogLevel l)
|
||||
|
|
|
@ -75,7 +75,7 @@ VOID TEST(ProtocolAMF0Test, ScenarioMain)
|
|||
EXPECT_EQ(0x03, bytes[0]);
|
||||
EXPECT_EQ(0x09, bytes[nb_bytes - 1]);
|
||||
}
|
||||
SrsAutoFree(char, bytes);
|
||||
SrsAutoFreeA(char, bytes);
|
||||
|
||||
// decoding amf0 object from bytes
|
||||
// when user know the schema
|
||||
|
@ -1301,7 +1301,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesString)
|
|||
EXPECT_TRUE(string("hello") == pp->to_str());
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(string("hello") == cp->to_str());
|
||||
}
|
||||
|
||||
|
@ -1430,7 +1430,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesBoolean)
|
|||
EXPECT_FALSE(p->to_boolean());
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_FALSE(cp->to_boolean());
|
||||
}
|
||||
|
||||
|
@ -1527,7 +1527,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesNumber)
|
|||
EXPECT_TRUE(100.1 == p->to_number());
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(100.1 == cp->to_number());
|
||||
}
|
||||
|
||||
|
@ -1790,6 +1790,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesObject)
|
|||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(NULL != cp->to_object());
|
||||
}
|
||||
|
||||
|
@ -1992,7 +1993,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesObjectEOF)
|
|||
HELPER_EXPECT_SUCCESS(pp->read(&b));
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(cp->is_object_eof());
|
||||
}
|
||||
|
||||
|
@ -2084,7 +2085,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesEcmaArray)
|
|||
EXPECT_TRUE(NULL != pp->to_ecma_array());
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(NULL != cp->to_ecma_array());
|
||||
}
|
||||
|
||||
|
@ -2211,7 +2212,7 @@ VOID TEST(ProtocolAMF0Test, InterfacesStrictArray)
|
|||
EXPECT_TRUE(NULL != pp->to_strict_array());
|
||||
|
||||
// For copy.
|
||||
SrsAmf0Any* cp = p->copy();
|
||||
SrsAmf0Any* cp = p->copy(); SrsAutoFree(SrsAmf0Any, cp);
|
||||
EXPECT_TRUE(NULL != cp->to_strict_array());
|
||||
}
|
||||
|
||||
|
|
|
@ -222,7 +222,7 @@ VOID TEST(SrsAVCTest, H264IPBFrame)
|
|||
EXPECT_EQ(SrsVideoAvcFrameTraitSequenceHeader, uint8_t(flv[1]));
|
||||
EXPECT_EQ(01, flv[2]); EXPECT_EQ(02, flv[3]); EXPECT_EQ(03, flv[4]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+5, 5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
|
||||
// For muxing I/P/B frame.
|
||||
|
@ -493,7 +493,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(6, nb_flv);
|
||||
EXPECT_EQ(0x23, (uint8_t)flv[0]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
|
||||
// For Opus frame.
|
||||
|
@ -508,7 +508,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(6, nb_flv);
|
||||
EXPECT_EQ(0xd3, (uint8_t)flv[0]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
|
||||
// For Speex frame.
|
||||
|
@ -523,7 +523,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(6, nb_flv);
|
||||
EXPECT_EQ(0xb3, (uint8_t)flv[0]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+1,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
|
||||
// For AAC frame.
|
||||
|
@ -539,7 +539,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(0xa3, (uint8_t)flv[0]);
|
||||
EXPECT_EQ(0x04, (uint8_t)flv[1]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
if (true) {
|
||||
SrsRawAacStream h;
|
||||
|
@ -553,7 +553,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(0xa6, (uint8_t)flv[0]);
|
||||
EXPECT_EQ(0x04, (uint8_t)flv[1]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
if (true) {
|
||||
SrsRawAacStream h;
|
||||
|
@ -567,7 +567,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(0xa5, (uint8_t)flv[0]);
|
||||
EXPECT_EQ(0x04, (uint8_t)flv[1]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
if (true) {
|
||||
SrsRawAacStream h;
|
||||
|
@ -581,7 +581,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(0xa7, (uint8_t)flv[0]);
|
||||
EXPECT_EQ(0x04, (uint8_t)flv[1]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
if (true) {
|
||||
SrsRawAacStream h;
|
||||
|
@ -595,7 +595,7 @@ VOID TEST(SrsAVCTest, AACMuxToFLV)
|
|||
EXPECT_EQ(0xaf, (uint8_t)flv[0]);
|
||||
EXPECT_EQ(0x04, (uint8_t)flv[1]);
|
||||
EXPECT_STREQ("Hello", HELPER_ARR2STR(flv+2,5).c_str());
|
||||
srs_freep(flv);
|
||||
srs_freepa(flv);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2081,6 +2081,7 @@ VOID TEST(ProtocolHTTPTest, QueryEscape)
|
|||
} else {
|
||||
HELPER_ASSERT_FAILED(SrsHttpUri::query_unescape(d.in, value));
|
||||
}
|
||||
srs_freep(d.err);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -227,8 +227,11 @@ MockSrsFileReader::MockSrsFileReader(const char* src, int nb_src)
|
|||
seekable = true;
|
||||
uf = new MockSrsFile();
|
||||
|
||||
uf->write((void*)src, nb_src, NULL);
|
||||
uf->lseek(0, SEEK_SET, NULL);
|
||||
srs_error_t err = uf->write((void*)src, nb_src, NULL);
|
||||
srs_freep(err);
|
||||
|
||||
err = uf->lseek(0, SEEK_SET, NULL);
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
MockSrsFileReader::~MockSrsFileReader()
|
||||
|
@ -255,20 +258,25 @@ bool MockSrsFileReader::is_open()
|
|||
int64_t MockSrsFileReader::tellg()
|
||||
{
|
||||
off_t offset = 0;
|
||||
lseek(0, SEEK_CUR, &offset);
|
||||
srs_error_t err = lseek(0, SEEK_CUR, &offset);
|
||||
srs_freep(err);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
void MockSrsFileReader::skip(int64_t _size)
|
||||
{
|
||||
int64_t offset = tellg() + _size;
|
||||
lseek(offset, SEEK_SET, NULL);
|
||||
srs_error_t err = lseek(offset, SEEK_SET, NULL);
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
int64_t MockSrsFileReader::seek2(int64_t _offset)
|
||||
{
|
||||
off_t offset = 0;
|
||||
lseek(_offset, SEEK_SET, &offset);
|
||||
srs_error_t err = lseek(_offset, SEEK_SET, &offset);
|
||||
srs_freep(err);
|
||||
|
||||
return offset;
|
||||
}
|
||||
|
||||
|
@ -277,7 +285,8 @@ int64_t MockSrsFileReader::filesize()
|
|||
int64_t cur = tellg();
|
||||
|
||||
off_t offset = 0;
|
||||
lseek(0, SEEK_END, &offset);
|
||||
srs_error_t err = lseek(0, SEEK_END, &offset);
|
||||
srs_freep(err);
|
||||
|
||||
seek2(cur);
|
||||
return offset;
|
||||
|
@ -298,7 +307,8 @@ srs_error_t MockSrsFileReader::lseek(off_t offset, int whence, off_t* seeked)
|
|||
|
||||
void MockSrsFileReader::mock_append_data(const char* data, int size)
|
||||
{
|
||||
uf->write((void*)data, size, NULL);
|
||||
srs_error_t err = uf->write((void*)data, size, NULL);
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
void MockSrsFileReader::mock_reset_offset()
|
||||
|
@ -1127,6 +1137,11 @@ VOID TEST(KernelFLVTest, CoverVodStreamErrorCase)
|
|||
|
||||
HELPER_EXPECT_FAILED(d.seek2(1));
|
||||
}
|
||||
}
|
||||
|
||||
VOID TEST(KernelFLVTest, CoverVodStreamErrorCase2)
|
||||
{
|
||||
srs_error_t err;
|
||||
|
||||
if (true) {
|
||||
MockSrsFileReader r("HELLO", 5);
|
||||
|
@ -3076,22 +3091,21 @@ VOID TEST(KernelUtility, RTMPUtils2)
|
|||
|
||||
VOID TEST(KernelErrorTest, CoverAll)
|
||||
{
|
||||
srs_error_t err;
|
||||
if (true) {
|
||||
EXPECT_TRUE(srs_is_system_control_error(srs_error_new(ERROR_CONTROL_RTMP_CLOSE, "err")));
|
||||
EXPECT_TRUE(srs_is_system_control_error(srs_error_new(ERROR_CONTROL_REPUBLISH, "err")));
|
||||
EXPECT_TRUE(srs_is_system_control_error(srs_error_new(ERROR_CONTROL_REDIRECT, "err")));
|
||||
EXPECT_TRUE(srs_is_system_control_error(err = srs_error_new(ERROR_CONTROL_RTMP_CLOSE, "err"))); srs_freep(err);
|
||||
EXPECT_TRUE(srs_is_system_control_error(err = srs_error_new(ERROR_CONTROL_REPUBLISH, "err"))); srs_freep(err);
|
||||
EXPECT_TRUE(srs_is_system_control_error(err = srs_error_new(ERROR_CONTROL_REDIRECT, "err"))); srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
srs_error_t err = srs_error_new(ERROR_CONTROL_RTMP_CLOSE, "control error");
|
||||
EXPECT_TRUE(srs_is_system_control_error(err));
|
||||
srs_freep(err);
|
||||
EXPECT_TRUE(srs_is_system_control_error(err = srs_error_new(ERROR_CONTROL_RTMP_CLOSE, "control error"))); srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(srs_error_new(ERROR_SOCKET_READ, "err")));
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(srs_error_new(ERROR_SOCKET_READ_FULLY, "err")));
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(srs_error_new(ERROR_SOCKET_WRITE, "err")));
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(err = srs_error_new(ERROR_SOCKET_READ, "err"))); srs_freep(err);
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(err = srs_error_new(ERROR_SOCKET_READ_FULLY, "err"))); srs_freep(err);
|
||||
EXPECT_TRUE(srs_is_client_gracefully_close(err = srs_error_new(ERROR_SOCKET_WRITE, "err"))); srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
|
@ -5646,8 +5660,11 @@ VOID TEST(KernelMP4Test, CoverMP4M2tsSegmentEncoder)
|
|||
0x32, 0x0f, 0x18, 0x31, 0x96, 0x01, 0x00, 0x05, 0x68, 0xeb, 0xec, 0xb2, 0x2c
|
||||
};
|
||||
HELPER_EXPECT_SUCCESS(fmt.on_video(0, (char*)raw, sizeof(raw)));
|
||||
|
||||
uint8_t* cp = mock_copy_bytes(fmt.raw, fmt.nb_raw);
|
||||
SrsAutoFreeA(uint8_t, cp);
|
||||
HELPER_EXPECT_SUCCESS(enc.write_sample(
|
||||
SrsMp4HandlerTypeVIDE, fmt.video->frame_type, 0, 0, mock_copy_bytes(fmt.raw, fmt.nb_raw), fmt.nb_raw
|
||||
SrsMp4HandlerTypeVIDE, fmt.video->frame_type, 0, 0, cp, fmt.nb_raw
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -5656,8 +5673,11 @@ VOID TEST(KernelMP4Test, CoverMP4M2tsSegmentEncoder)
|
|||
0xaf, 0x00, 0x12, 0x10
|
||||
};
|
||||
HELPER_EXPECT_SUCCESS(fmt.on_audio(0, (char*)raw, sizeof(raw)));
|
||||
|
||||
uint8_t* cp = mock_copy_bytes(fmt.raw, fmt.nb_raw);
|
||||
SrsAutoFreeA(uint8_t, cp);
|
||||
HELPER_EXPECT_SUCCESS(enc.write_sample(
|
||||
SrsMp4HandlerTypeSOUN, 0x00, 0, 0, mock_copy_bytes(fmt.raw, fmt.nb_raw), fmt.nb_raw
|
||||
SrsMp4HandlerTypeSOUN, 0x00, 0, 0, cp, fmt.nb_raw
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -5672,8 +5692,11 @@ VOID TEST(KernelMP4Test, CoverMP4M2tsSegmentEncoder)
|
|||
0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5e
|
||||
};
|
||||
HELPER_EXPECT_SUCCESS(fmt.on_audio(0, (char*)raw, sizeof(raw)));
|
||||
|
||||
uint8_t* cp = mock_copy_bytes(fmt.raw, fmt.nb_raw);
|
||||
SrsAutoFreeA(uint8_t, cp);
|
||||
HELPER_EXPECT_SUCCESS(enc.write_sample(
|
||||
SrsMp4HandlerTypeSOUN, 0x00, 34, 34, mock_copy_bytes(fmt.raw, fmt.nb_raw), fmt.nb_raw
|
||||
SrsMp4HandlerTypeSOUN, 0x00, 34, 34, cp, fmt.nb_raw
|
||||
));
|
||||
}
|
||||
|
||||
|
@ -5691,8 +5714,11 @@ VOID TEST(KernelMP4Test, CoverMP4M2tsSegmentEncoder)
|
|||
0xb2, 0x72, 0x5a
|
||||
};
|
||||
HELPER_EXPECT_SUCCESS(fmt.on_video(0, (char*)raw, sizeof(raw)));
|
||||
|
||||
uint8_t* cp = mock_copy_bytes(fmt.raw, fmt.nb_raw);
|
||||
SrsAutoFreeA(uint8_t, cp);
|
||||
HELPER_EXPECT_SUCCESS(enc.write_sample(
|
||||
SrsMp4HandlerTypeVIDE, fmt.video->frame_type, 40, 40, mock_copy_bytes(fmt.raw, fmt.nb_raw), fmt.nb_raw
|
||||
SrsMp4HandlerTypeVIDE, fmt.video->frame_type, 40, 40, cp, fmt.nb_raw
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -85,6 +85,8 @@ MockBufferIO::MockBufferIO()
|
|||
|
||||
MockBufferIO::~MockBufferIO()
|
||||
{
|
||||
srs_freep(in_err);
|
||||
srs_freep(out_err);
|
||||
}
|
||||
|
||||
int MockBufferIO::length()
|
||||
|
@ -397,7 +399,7 @@ VOID TEST(ProtocolHandshakeTest, VerifyFPC0C1)
|
|||
// manually validate the c1
|
||||
// @see: calc_c1_digest
|
||||
char* c1s1_joined_bytes = new char[1536 -32];
|
||||
SrsAutoFree(char, c1s1_joined_bytes);
|
||||
SrsAutoFreeA(char, c1s1_joined_bytes);
|
||||
HELPER_ASSERT_SUCCESS( c1.payload->copy_to(&c1, c1s1_joined_bytes, 1536 - 32, false));
|
||||
|
||||
bool is_valid;
|
||||
|
@ -599,6 +601,13 @@ VOID TEST(ProtocolUtilityTest, GenerateTcUrl)
|
|||
EXPECT_STREQ("rtmp://demo:19351/live", tcUrl.c_str());
|
||||
}
|
||||
|
||||
void srs_utest_free_message_array(SrsMessageArray* arr)
|
||||
{
|
||||
for (int i = 0; i < arr->max; i++) {
|
||||
srs_freep(arr->msgs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* shared ptr message array test
|
||||
*/
|
||||
|
@ -614,6 +623,9 @@ VOID TEST(ProtocolMsgArrayTest, MessageArray)
|
|||
|
||||
if (true) {
|
||||
SrsMessageArray arr(3);
|
||||
|
||||
SrsMessageArray* parr = &arr;
|
||||
SrsAutoFreeH(SrsMessageArray, parr, srs_utest_free_message_array);
|
||||
|
||||
arr.msgs[0] = msg.copy();
|
||||
EXPECT_EQ(1, msg.count());
|
||||
|
@ -624,18 +636,21 @@ VOID TEST(ProtocolMsgArrayTest, MessageArray)
|
|||
arr.msgs[2] = msg.copy();
|
||||
EXPECT_EQ(3, msg.count());
|
||||
}
|
||||
EXPECT_EQ(3, msg.count());
|
||||
EXPECT_EQ(0, msg.count());
|
||||
|
||||
if (true) {
|
||||
SrsMessageArray arr(3);
|
||||
|
||||
SrsMessageArray* parr = &arr;
|
||||
SrsAutoFreeH(SrsMessageArray, parr, srs_utest_free_message_array);
|
||||
|
||||
arr.msgs[0] = msg.copy();
|
||||
EXPECT_EQ(4, msg.count());
|
||||
EXPECT_EQ(1, msg.count());
|
||||
|
||||
arr.msgs[2] = msg.copy();
|
||||
EXPECT_EQ(5, msg.count());
|
||||
EXPECT_EQ(2, msg.count());
|
||||
}
|
||||
EXPECT_EQ(5, msg.count());
|
||||
EXPECT_EQ(0, msg.count());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2720,7 +2735,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendVMessage)
|
|||
|
||||
uint8_t data[] = {0x01, 0x02, 0x03, 0x04};
|
||||
|
||||
SrsCommonMessage* msg = new SrsCommonMessage();
|
||||
SrsCommonMessage* msg = new SrsCommonMessage(); SrsAutoFree(SrsCommonMessage, msg);
|
||||
msg->size = sizeof(data);
|
||||
msg->payload = new char[msg->size];
|
||||
memcpy(msg->payload, data, msg->size);
|
||||
|
@ -2831,7 +2846,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsCreateStreamPacket)
|
|||
SrsProtocol proto(&bio);
|
||||
|
||||
SrsCreateStreamPacket* pkt = new SrsCreateStreamPacket();
|
||||
pkt->command_object = SrsAmf0Any::null();
|
||||
pkt->set_command_object(SrsAmf0Any::null());
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
char buf[] = {
|
||||
|
@ -2856,7 +2871,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsFMLEStartPacket)
|
|||
|
||||
SrsFMLEStartPacket* pkt = new SrsFMLEStartPacket();
|
||||
pkt->command_name = "FMLEStart";
|
||||
pkt->command_object = SrsAmf0Any::null();
|
||||
pkt->set_command_object(SrsAmf0Any::null());
|
||||
pkt->stream_name = "livestream";
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
|
@ -2885,8 +2900,8 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsFMLEStartResPacket)
|
|||
|
||||
SrsFMLEStartResPacket* pkt = new SrsFMLEStartResPacket(1);
|
||||
pkt->command_name = "FMLEStart";
|
||||
pkt->command_object = SrsAmf0Any::null();
|
||||
pkt->args = args;
|
||||
pkt->set_command_object(SrsAmf0Any::null());
|
||||
pkt->set_args(args);
|
||||
|
||||
args->set("stream" , SrsAmf0Any::str("livestream"));
|
||||
args->set("start" , SrsAmf0Any::number(0));
|
||||
|
@ -2914,7 +2929,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsPublishPacket)
|
|||
|
||||
SrsPublishPacket* pkt = new SrsPublishPacket();
|
||||
pkt->command_name = "publish";
|
||||
pkt->command_object = SrsAmf0Any::null();
|
||||
pkt->set_command_object(SrsAmf0Any::null());
|
||||
pkt->stream_name = "livestream";
|
||||
pkt->type = "live";
|
||||
|
||||
|
@ -2945,8 +2960,8 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsPlayResPacket)
|
|||
|
||||
SrsPlayResPacket* pkt = new SrsPlayResPacket();
|
||||
pkt->command_name = "_result";
|
||||
pkt->command_object = SrsAmf0Any::null();
|
||||
pkt->desc = args;
|
||||
pkt->set_command_object(SrsAmf0Any::null());
|
||||
pkt->set_desc(args);
|
||||
|
||||
args->set("stream" , SrsAmf0Any::str("livestream"));
|
||||
args->set("start" , SrsAmf0Any::number(0));
|
||||
|
@ -2979,7 +2994,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsOnBWDonePacket)
|
|||
|
||||
SrsOnBWDonePacket* pkt = new SrsOnBWDonePacket();
|
||||
pkt->command_name = "onBWDone";
|
||||
pkt->args = SrsAmf0Any::null();
|
||||
pkt->set_args(SrsAmf0Any::null());
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
char buf[] = {
|
||||
|
@ -3009,8 +3024,8 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsOnStatusCallPacket)
|
|||
|
||||
SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
|
||||
pkt->command_name = "onStatus";
|
||||
pkt->args = SrsAmf0Any::null();
|
||||
pkt->data = args;
|
||||
pkt->set_args(SrsAmf0Any::null());
|
||||
pkt->set_data(args);
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
char buf[] = {
|
||||
|
@ -3045,7 +3060,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsOnStatusDataPacket)
|
|||
|
||||
SrsOnStatusDataPacket* pkt = new SrsOnStatusDataPacket();
|
||||
pkt->command_name = "onData";
|
||||
pkt->data = args;
|
||||
pkt->set_data(args);
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
char buf[] = {
|
||||
|
@ -3104,7 +3119,7 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsOnMetaDataPacket)
|
|||
|
||||
SrsOnMetaDataPacket* pkt = new SrsOnMetaDataPacket();
|
||||
pkt->name = "onMetaData";
|
||||
pkt->metadata = args;
|
||||
pkt->set_metadata(args);
|
||||
|
||||
HELPER_EXPECT_SUCCESS(proto.send_and_free_packet(pkt, 0));
|
||||
uint8_t buf[] = {
|
||||
|
@ -3299,7 +3314,7 @@ VOID TEST(ProtocolStackTest, ProtocolAckSizeFlow)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = new SrsCommonMessage();
|
||||
SrsCommonMessage* msg = new SrsCommonMessage(); SrsAutoFree(SrsCommonMessage, msg);
|
||||
msg->header.payload_length = msg->size = 4096;
|
||||
msg->payload = new char[msg->size];
|
||||
|
||||
|
@ -3340,15 +3355,14 @@ VOID TEST(ProtocolStackTest, ProtocolAckSizeFlow)
|
|||
}
|
||||
// recv auto send acked size. #1
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_ASSERT_SUCCESS(proto.recv_message(&msg));
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
ASSERT_TRUE(msg->header.is_ackledgement());
|
||||
}
|
||||
|
||||
// send again
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = new SrsCommonMessage();
|
||||
SrsCommonMessage* msg = new SrsCommonMessage(); SrsAutoFree(SrsCommonMessage, msg);
|
||||
msg->header.payload_length = msg->size = 4096;
|
||||
msg->payload = new char[msg->size];
|
||||
|
||||
|
@ -3425,12 +3439,11 @@ VOID TEST(ProtocolStackTest, ProtocolPingFlow)
|
|||
}
|
||||
// recv ping
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_ASSERT_SUCCESS(proto.recv_message(&msg));
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
ASSERT_TRUE(msg->header.is_user_control_message());
|
||||
|
||||
SrsPacket* pkt = NULL;
|
||||
SrsPacket* pkt = NULL; SrsAutoFree(SrsPacket, pkt);
|
||||
HELPER_ASSERT_SUCCESS(proto.decode_message(msg, &pkt));
|
||||
SrsUserControlPacket* spkt = dynamic_cast<SrsUserControlPacket*>(pkt);
|
||||
ASSERT_TRUE(spkt != NULL);
|
||||
|
|
|
@ -68,7 +68,7 @@ VOID TEST(KernelRTCTest, RtpSTAPPayloadException)
|
|||
EXPECT_TRUE(nalu_type == kStapA);
|
||||
ISrsRtpPayloader* payload = new SrsRtpSTAPPayload();
|
||||
|
||||
EXPECT_TRUE((err = payload->decode(&buf)) != srs_success);
|
||||
HELPER_ASSERT_FAILED(payload->decode(&buf));
|
||||
srs_freep(payload);
|
||||
}
|
||||
|
||||
|
@ -710,7 +710,8 @@ VOID TEST(KernelRTCTest, NACKFetchRTPPacket)
|
|||
SrsRtcPlayStream play(&s, SrsContextId());
|
||||
|
||||
SrsRtcTrackDescription ds;
|
||||
SrsRtcVideoSendTrack *track = new SrsRtcVideoSendTrack(&s, &ds);
|
||||
SrsRtcVideoSendTrack* track = new SrsRtcVideoSendTrack(&s, &ds);
|
||||
SrsAutoFree(SrsRtcVideoSendTrack, track);
|
||||
|
||||
// The RTP queue will free the packet.
|
||||
if (true) {
|
||||
|
|
|
@ -435,10 +435,9 @@ VOID TEST(ProtocolRTMPTest, OnDecodeMessages)
|
|||
// Always response ACK message.
|
||||
HELPER_EXPECT_SUCCESS(p.set_in_window_ack_size(1));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
io.in_buffer.append(&bytes);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -884,8 +883,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage)
|
|||
uint8_t bytes[] = {0x01, 0x00, 0x00};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
|
@ -896,8 +894,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage)
|
|||
uint8_t bytes[] = {0x00, 0x00};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
|
@ -908,8 +905,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage)
|
|||
uint8_t bytes[] = {0x00};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
|
@ -917,8 +913,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage)
|
|||
MockBufferIO io;
|
||||
SrsProtocol p(&io);
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
}
|
||||
|
@ -934,8 +929,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage2)
|
|||
uint8_t bytes[] = {0x03, 0,0,0, 0,0,4, 0, 0,0,0,0, 1,2,3};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
|
@ -948,10 +942,12 @@ VOID TEST(ProtocolRTMPTest, RecvMessage2)
|
|||
uint8_t bytes[] = {0x03, 0,0,0, 0,0,4, 0, 0,0,0,0, 1,2,3};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
uint8_t bytes2[] = {0x43, 0,0,0, 0,0,5, 0, 0,0,0,0, 1,2,3};
|
||||
io.in_buffer.append((char*)bytes2, sizeof(bytes2));
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
|
@ -964,8 +960,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage2)
|
|||
uint8_t bytes[] = {0x03};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
|
||||
|
@ -976,8 +971,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage2)
|
|||
uint8_t bytes[] = {0x43, 0,0,0, 0,0,0, 0};
|
||||
io.in_buffer.append((char*)bytes, sizeof(bytes));
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(p.recv_message(&msg));
|
||||
}
|
||||
}
|
||||
|
@ -1060,8 +1054,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage4)
|
|||
|
||||
io.in_buffer.append(&io.out_buffer);
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
|
||||
EXPECT_EQ(256, p.out_chunk_size);
|
||||
|
@ -1078,8 +1071,7 @@ VOID TEST(ProtocolRTMPTest, RecvMessage4)
|
|||
|
||||
io.in_buffer.append(&io.out_buffer);
|
||||
|
||||
SrsCommonMessage* msg;
|
||||
SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
|
||||
EXPECT_EQ(256, p.in_buffer_length);
|
||||
|
@ -1534,9 +1526,8 @@ VOID TEST(ProtocolRTMPTest, ServerCommandMessage)
|
|||
|
||||
SrsProtocol p(&tio);
|
||||
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
|
||||
EXPECT_EQ(1024, p.in_chunk_size);
|
||||
}
|
||||
|
@ -2239,7 +2230,7 @@ VOID TEST(ProtocolRTMPTest, CoverAll)
|
|||
EXPECT_EQ(0, r.get_recv_bytes());
|
||||
EXPECT_EQ(0, r.get_send_bytes());
|
||||
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(r.recv_message(&msg));
|
||||
|
||||
SrsCallPacket* pkt = new SrsCallPacket();
|
||||
|
@ -2262,7 +2253,7 @@ VOID TEST(ProtocolRTMPTest, CoverAll)
|
|||
EXPECT_EQ(0, r.get_recv_bytes());
|
||||
EXPECT_EQ(0, r.get_send_bytes());
|
||||
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_FAILED(r.recv_message(&msg));
|
||||
|
||||
SrsCallPacket* pkt = new SrsCallPacket();
|
||||
|
@ -2585,8 +2576,8 @@ VOID TEST(ProtocolRTMPTest, ConnectAppWithArgs)
|
|||
if (true) {
|
||||
tio.in_buffer.append(&io.out_buffer);
|
||||
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsConnectAppPacket* pkt = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
SrsConnectAppPacket* pkt = NULL; SrsAutoFree(SrsConnectAppPacket, pkt);
|
||||
HELPER_ASSERT_SUCCESS(p.expect_message(&msg, &pkt));
|
||||
|
||||
SrsAmf0Any* prop = pkt->command_object->get_property("tcUrl");
|
||||
|
@ -2616,9 +2607,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageCodec)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2633,14 +2623,11 @@ VOID TEST(ProtocolRTMPTest, AgentMessageCodec)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_ASSERT_SUCCESS(p.recv_message(&msg));
|
||||
|
||||
SrsPacket* pkt = NULL;
|
||||
SrsPacket* pkt = NULL; SrsAutoFree(SrsPacket, pkt);
|
||||
HELPER_EXPECT_SUCCESS(p.decode_message(msg, &pkt));
|
||||
|
||||
srs_freep(msg);
|
||||
srs_freep(pkt);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2655,9 +2642,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageCodec)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2672,14 +2658,11 @@ VOID TEST(ProtocolRTMPTest, AgentMessageCodec)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_ASSERT_SUCCESS(p.recv_message(&msg));
|
||||
|
||||
SrsPacket* pkt = NULL;
|
||||
SrsPacket* pkt = NULL; SrsAutoFree(SrsPacket, pkt);
|
||||
HELPER_EXPECT_SUCCESS(p.decode_message(msg, &pkt));
|
||||
|
||||
srs_freep(msg);
|
||||
srs_freep(pkt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2733,17 +2716,15 @@ VOID TEST(ProtocolRTMPTest, CheckStreamID)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
EXPECT_EQ(1, msg->header.stream_id);
|
||||
srs_freep(msg);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
EXPECT_EQ(2, msg->header.stream_id);
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2767,9 +2748,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageTransform)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2788,9 +2768,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageTransform)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2809,9 +2788,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageTransform)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2830,9 +2808,8 @@ VOID TEST(ProtocolRTMPTest, AgentMessageTransform)
|
|||
}
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(p.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2865,9 +2842,8 @@ VOID TEST(ProtocolRTMPTest, MergeReadHandler)
|
|||
r.set_merge_read(true, &h);
|
||||
|
||||
if (true) {
|
||||
SrsCommonMessage* msg = NULL;
|
||||
SrsCommonMessage* msg = NULL; SrsAutoFree(SrsCommonMessage, msg);
|
||||
HELPER_EXPECT_SUCCESS(r.recv_message(&msg));
|
||||
srs_freep(msg);
|
||||
}
|
||||
|
||||
EXPECT_TRUE(h.nn > 0);
|
||||
|
@ -2925,6 +2901,8 @@ VOID TEST(ProtocolRTMPTest, CreateRTMPMessage)
|
|||
}
|
||||
}
|
||||
|
||||
extern void srs_utest_free_message_array(SrsMessageArray* arr);
|
||||
|
||||
VOID TEST(ProtocolRTMPTest, OthersAll)
|
||||
{
|
||||
if (true) {
|
||||
|
@ -2995,6 +2973,10 @@ VOID TEST(ProtocolRTMPTest, OthersAll)
|
|||
|
||||
if (true) {
|
||||
SrsMessageArray h(10);
|
||||
|
||||
SrsMessageArray* parr = &h;
|
||||
SrsAutoFreeH(SrsMessageArray, parr, srs_utest_free_message_array);
|
||||
|
||||
h.msgs[0] = new SrsSharedPtrMessage();
|
||||
h.msgs[1] = new SrsSharedPtrMessage();
|
||||
EXPECT_TRUE(NULL != h.msgs[0]);
|
||||
|
|
|
@ -636,6 +636,7 @@ VOID TEST(HTTPServerTest, ContentLength)
|
|||
|
||||
SrsHttpParser hp; HELPER_ASSERT_SUCCESS(hp.initialize(HTTP_RESPONSE));
|
||||
ISrsHttpMessage* msg = NULL; HELPER_ASSERT_SUCCESS(hp.parse_message(&io, &msg));
|
||||
SrsAutoFree(ISrsHttpMessage, msg);
|
||||
|
||||
char buf[32]; ssize_t nread = 0;
|
||||
ISrsHttpResponseReader* r = msg->body_reader();
|
||||
|
@ -664,6 +665,7 @@ VOID TEST(HTTPServerTest, HTTPChunked)
|
|||
|
||||
SrsHttpParser hp; HELPER_ASSERT_SUCCESS(hp.initialize(HTTP_RESPONSE));
|
||||
ISrsHttpMessage* msg = NULL; HELPER_ASSERT_SUCCESS(hp.parse_message(&io, &msg));
|
||||
SrsAutoFree(ISrsHttpMessage, msg);
|
||||
|
||||
char buf[32]; ssize_t nread = 0;
|
||||
ISrsHttpResponseReader* r = msg->body_reader();
|
||||
|
@ -720,6 +722,7 @@ VOID TEST(HTTPServerTest, InfiniteChunked)
|
|||
|
||||
SrsHttpParser hp; HELPER_ASSERT_SUCCESS(hp.initialize(HTTP_RESPONSE));
|
||||
ISrsHttpMessage* msg = NULL; HELPER_ASSERT_SUCCESS(hp.parse_message(&io, &msg));
|
||||
SrsAutoFree(ISrsHttpMessage, msg);
|
||||
|
||||
char buf[32]; ssize_t nread = 0;
|
||||
ISrsHttpResponseReader* r = msg->body_reader();
|
||||
|
@ -1110,7 +1113,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("127.0.0.1", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1123,7 +1126,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("192.168.0.1", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1168,7 +1171,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("2001:da8:6000:291:21f:d0ff:fed4:928c", NULL, &hints, &r));
|
||||
|
||||
EXPECT_TRUE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1179,7 +1182,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("3ffe:dead:beef::1", NULL, &hints, &r));
|
||||
|
||||
EXPECT_TRUE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1192,7 +1195,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("::", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1205,7 +1208,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("fec0::", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1218,7 +1221,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("FE80::", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
@ -1231,7 +1234,7 @@ VOID TEST(TCPServerTest, CoverUtility)
|
|||
hints.ai_family = AF_INET6;
|
||||
|
||||
addrinfo* r = NULL;
|
||||
SrsAutoFree(addrinfo, r);
|
||||
SrsAutoFreeH(addrinfo, r, freeaddrinfo);
|
||||
ASSERT_TRUE(!getaddrinfo("::1", NULL, &hints, &r));
|
||||
|
||||
EXPECT_FALSE(srs_net_device_is_internet((sockaddr*)r->ai_addr));
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <srs_protocol_rtmp_stack.hpp>
|
||||
#include <srs_app_srt_utility.hpp>
|
||||
#include <srs_app_srt_server.hpp>
|
||||
#include <srs_core_autofree.hpp>
|
||||
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
|
@ -194,6 +195,7 @@ VOID TEST(ServiceStSRTTest, ListenConnectAccept)
|
|||
HELPER_EXPECT_SUCCESS(srs_srt_socket(&srt_client_fd));
|
||||
|
||||
SrsSrtSocket* srt_client_socket = new SrsSrtSocket(_srt_eventloop->poller(), srt_client_fd);
|
||||
SrsAutoFree(SrsSrtSocket, srt_client_socket);
|
||||
|
||||
// No client connected, accept will timeout.
|
||||
srs_srt_t srt_fd = srs_srt_socket_invalid();
|
||||
|
@ -202,6 +204,7 @@ VOID TEST(ServiceStSRTTest, ListenConnectAccept)
|
|||
err = srt_server.accept(&srt_fd);
|
||||
EXPECT_EQ(srs_error_code(err), ERROR_SRT_TIMEOUT);
|
||||
EXPECT_EQ(srt_fd, srs_srt_socket_invalid());
|
||||
srs_freep(err);
|
||||
|
||||
// Client connect to server
|
||||
HELPER_EXPECT_SUCCESS(srt_client_socket->connect(server_ip, server_port));
|
||||
|
@ -308,6 +311,7 @@ VOID TEST(ServiceStSRTTest, ReadWrite)
|
|||
// Recv msg from client, but client no send any msg, so will be timeout.
|
||||
err = srt_server_accepted_socket->recvmsg(buf, sizeof(buf), &nb_read);
|
||||
EXPECT_EQ(srs_error_code(err), ERROR_SRT_TIMEOUT);
|
||||
srs_freep(err);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -524,7 +528,7 @@ VOID TEST(ServiceSRTTest, Encrypt)
|
|||
|
||||
if (true) {
|
||||
int pbkeylens[4] = {0, 16, 24, 32};
|
||||
for (int i = 0; i < sizeof(pbkeylens) / sizeof(pbkeylens[0]); ++i) {
|
||||
for (int i = 0; i < (int)(sizeof(pbkeylens) / sizeof(pbkeylens[0])); ++i) {
|
||||
srs_srt_t srt_client_fd = srs_srt_socket_invalid();
|
||||
HELPER_EXPECT_SUCCESS(srs_srt_socket_with_default_option(&srt_client_fd));
|
||||
HELPER_EXPECT_SUCCESS(srs_srt_set_streamid(srt_client_fd, streamid));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue