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

CI: Cover kernel ts

This commit is contained in:
winlin 2019-02-04 16:12:37 +08:00
parent 4187fa0068
commit 3f59c7885e
3 changed files with 136 additions and 0 deletions

View file

@ -35,6 +35,7 @@ using namespace std;
#include <srs_kernel_file.hpp>
#include <srs_kernel_log.hpp>
#include <srs_kernel_mp3.hpp>
#include <srs_kernel_ts.hpp>
#define MAX_MOCK_DATA_SIZE 1024 * 1024
@ -240,6 +241,19 @@ srs_error_t MockSrsCodec::decode(SrsBuffer* /*buf*/)
return srs_success;
}
MockTsHandler::MockTsHandler()
{
}
MockTsHandler::~MockTsHandler()
{
}
srs_error_t MockTsHandler::on_ts_message(SrsTsMessage* /*msg*/)
{
return srs_success;
}
VOID TEST(KernelBufferTest, DefaultObject)
{
SrsSimpleStream b;
@ -3187,3 +3201,114 @@ VOID TEST(KernelUtilityTest, CoverTimeUtilityAll)
}
}
VOID TEST(KernelTSTest, CoverBasicUtility)
{
if (true) {
EXPECT_STREQ("Reserved", srs_ts_stream2string(SrsTsStreamReserved).c_str());
EXPECT_STREQ("MP3", srs_ts_stream2string(SrsTsStreamAudioMp3).c_str());
EXPECT_STREQ("AAC", srs_ts_stream2string(SrsTsStreamAudioAAC).c_str());
EXPECT_STREQ("AC3", srs_ts_stream2string(SrsTsStreamAudioAC3).c_str());
EXPECT_STREQ("AudioDTS", srs_ts_stream2string(SrsTsStreamAudioDTS).c_str());
EXPECT_STREQ("H.264", srs_ts_stream2string(SrsTsStreamVideoH264).c_str());
EXPECT_STREQ("MP4", srs_ts_stream2string(SrsTsStreamVideoMpeg4).c_str());
EXPECT_STREQ("MP4A", srs_ts_stream2string(SrsTsStreamAudioMpeg4).c_str());
EXPECT_STREQ("Other", srs_ts_stream2string(SrsTsStreamForbidden).c_str());
}
if (true) {
SrsTsContext ctx;
SrsTsPacket p(&ctx);
SrsTsChannel c;
SrsTsMessage m(&c, &p);
EXPECT_TRUE(m.fresh());
EXPECT_TRUE(!m.is_audio());
EXPECT_TRUE(!m.is_video());
EXPECT_EQ(-1, m.stream_number());
m.sid = SrsTsPESStreamId(0x06<<5 | 0x01);
EXPECT_TRUE(m.is_audio());
EXPECT_EQ(1, m.stream_number());
m.sid = SrsTsPESStreamId(0x0e<<4 | 0x02);
EXPECT_TRUE(m.is_video());
EXPECT_EQ(2, m.stream_number());
SrsTsMessage* cp = m.detach();
EXPECT_TRUE(cp != NULL);
srs_freep(cp);
}
if (true) {
SrsTsContext ctx;
SrsTsPacket p(&ctx);
SrsTsChannel c;
SrsTsMessage m(&c, &p);
m.PES_packet_length = 8;
SrsBuffer b;
int nb_bytes = 0;
EXPECT_TRUE(srs_success == m.dump(&b, &nb_bytes));
EXPECT_EQ(0, nb_bytes);
}
if (true) {
SrsTsContext ctx;
SrsTsPacket p(&ctx);
SrsTsChannel c;
SrsTsMessage m(&c, &p);
m.PES_packet_length = 8;
SrsBuffer b((char*)"\x00\x01\x02\x03", 4);
int nb_bytes = 0;
EXPECT_TRUE(srs_success == m.dump(&b, &nb_bytes));
EXPECT_EQ(4, nb_bytes);
}
if (true) {
SrsTsContext ctx;
SrsTsPacket p(&ctx);
SrsTsChannel c;
SrsTsMessage m(&c, &p);
EXPECT_TRUE(m.completed(1));
EXPECT_TRUE(!m.completed(0));
m.PES_packet_length = 8;
SrsBuffer b((char*)"\x00\x01\x02\x03", 4);
int nb_bytes = 0;
EXPECT_TRUE(srs_success == m.dump(&b, &nb_bytes));
EXPECT_EQ(4, nb_bytes);
b.skip(-4);
EXPECT_TRUE(srs_success == m.dump(&b, &nb_bytes));
EXPECT_EQ(4, nb_bytes);
EXPECT_TRUE(m.completed(0));
}
if (true) {
MockTsHandler* h = new MockTsHandler();
srs_freep(h);
SrsTsContext ctx;
EXPECT_TRUE(!ctx.is_pure_audio());
ctx.set(100, SrsTsPidApplyPAT);
ctx.set(101, SrsTsPidApplyPMT);
ctx.set(102, SrsTsPidApplyAudio);
ctx.on_pmt_parsed();
EXPECT_TRUE(ctx.is_pure_audio());
EXPECT_EQ(100, ctx.get(100)->pid);
}
}