mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
CI: Cover all kernel aac
This commit is contained in:
parent
2ae3440128
commit
917cb4a299
4 changed files with 128 additions and 2 deletions
1
trunk/.gitignore
vendored
1
trunk/.gitignore
vendored
|
@ -35,4 +35,5 @@
|
|||
.DS_Store
|
||||
srs
|
||||
*.dSYM/
|
||||
*.gcov
|
||||
|
||||
|
|
|
@ -36,6 +36,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
// we add an empty macro for upp to show the smart tips.
|
||||
#define VOID
|
||||
|
||||
// Public all private and protected members.
|
||||
#define private public
|
||||
#define protected public
|
||||
|
||||
// the asserts of gtest:
|
||||
// * {ASSERT|EXPECT}_EQ(expected, actual): Tests that expected == actual
|
||||
// * {ASSERT|EXPECT}_NE(v1, v2): Tests that v1 != v2
|
||||
|
|
|
@ -30,17 +30,21 @@ using namespace std;
|
|||
#include <srs_kernel_utility.hpp>
|
||||
#include <srs_protocol_utility.hpp>
|
||||
#include <srs_kernel_buffer.hpp>
|
||||
#include <srs_kernel_aac.hpp>
|
||||
|
||||
#define MAX_MOCK_DATA_SIZE 1024 * 1024
|
||||
|
||||
MockSrsFileWriter::MockSrsFileWriter()
|
||||
{
|
||||
data = new char[MAX_MOCK_DATA_SIZE];
|
||||
offset = -1;
|
||||
offset = 0;
|
||||
err = srs_success;
|
||||
error_offset = 0;
|
||||
}
|
||||
|
||||
MockSrsFileWriter::~MockSrsFileWriter()
|
||||
{
|
||||
srs_freep(err);
|
||||
srs_freep(data);
|
||||
}
|
||||
|
||||
|
@ -48,6 +52,10 @@ srs_error_t MockSrsFileWriter::open(string /*file*/)
|
|||
{
|
||||
offset = 0;
|
||||
|
||||
if (err != srs_success) {
|
||||
return srs_error_copy(err);
|
||||
}
|
||||
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
|
@ -68,6 +76,10 @@ int64_t MockSrsFileWriter::tellg()
|
|||
|
||||
srs_error_t MockSrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite)
|
||||
{
|
||||
if (err != srs_success) {
|
||||
return srs_error_copy(err);
|
||||
}
|
||||
|
||||
int size = srs_min(MAX_MOCK_DATA_SIZE - offset, (int)count);
|
||||
|
||||
memcpy(data + offset, buf, size);
|
||||
|
@ -78,6 +90,10 @@ srs_error_t MockSrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite)
|
|||
|
||||
offset += size;
|
||||
|
||||
if (error_offset > 0 && offset >= error_offset) {
|
||||
return srs_error_new(-1, "exceed offset");
|
||||
}
|
||||
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
|
@ -2165,7 +2181,7 @@ VOID TEST(KernelUtility, RTMPUtils2)
|
|||
}
|
||||
}
|
||||
|
||||
VOID TEST(KernelError, CoverAll)
|
||||
VOID TEST(KernelErrorTest, CoverAll)
|
||||
{
|
||||
if (true) {
|
||||
EXPECT_TRUE(srs_is_system_control_error(ERROR_CONTROL_RTMP_CLOSE));
|
||||
|
@ -2215,3 +2231,106 @@ VOID TEST(KernelError, CoverAll)
|
|||
}
|
||||
}
|
||||
|
||||
VOID TEST(KernelAACTest, TransmaxRTMP2AAC)
|
||||
{
|
||||
if (true) {
|
||||
SrsAacTransmuxer m;
|
||||
MockSrsFileWriter f;
|
||||
EXPECT_TRUE(srs_success == m.initialize(&f));
|
||||
|
||||
srs_error_t err = m.write_audio(0, (char*)"", 0);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
err = m.write_audio(0, (char*)"\x0f", 1);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf", 1);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsAacTransmuxer m;
|
||||
MockSrsFileWriter f;
|
||||
EXPECT_TRUE(srs_success == m.initialize(&f));
|
||||
|
||||
srs_error_t err = m.write_audio(0, (char*)"\xaf\x01\x00", 3);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
EXPECT_TRUE(!m.got_sequence_header);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsAacTransmuxer m;
|
||||
MockSrsFileWriter f;
|
||||
EXPECT_TRUE(srs_success == m.initialize(&f));
|
||||
|
||||
srs_error_t err = m.write_audio(0, (char*)"\xaf\x00", 2);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x00\x12\x10", 4);
|
||||
EXPECT_TRUE(srs_success == err);
|
||||
srs_freep(err);
|
||||
|
||||
EXPECT_TRUE(m.got_sequence_header);
|
||||
EXPECT_EQ(44100, srs_aac_srates[m.aac_sample_rate]);
|
||||
EXPECT_EQ(2, m.aac_channels);
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x01\x00", 3);
|
||||
EXPECT_TRUE(srs_success == err);
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsAacTransmuxer m;
|
||||
MockSrsFileWriter f;
|
||||
EXPECT_TRUE(srs_success == m.initialize(&f));
|
||||
|
||||
srs_error_t err = m.write_audio(0, (char*)"\xaf\x00", 2);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x00\x12\x10", 4);
|
||||
EXPECT_TRUE(srs_success == err);
|
||||
srs_freep(err);
|
||||
|
||||
EXPECT_TRUE(m.got_sequence_header);
|
||||
EXPECT_EQ(44100, srs_aac_srates[m.aac_sample_rate]);
|
||||
EXPECT_EQ(2, m.aac_channels);
|
||||
|
||||
f.error_offset = 7;
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x01\x00", 3);
|
||||
EXPECT_TRUE(srs_success != err);
|
||||
srs_freep(err);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsAacTransmuxer m;
|
||||
MockSrsFileWriter f;
|
||||
EXPECT_TRUE(srs_success == m.initialize(&f));
|
||||
|
||||
srs_error_t err = m.write_audio(0, (char*)"\xaf\x00", 2);
|
||||
EXPECT_TRUE(ERROR_AAC_DECODE_ERROR == srs_error_code(err));
|
||||
srs_freep(err);
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x00\x12\x10", 4);
|
||||
EXPECT_TRUE(srs_success == err);
|
||||
srs_freep(err);
|
||||
|
||||
EXPECT_TRUE(m.got_sequence_header);
|
||||
EXPECT_EQ(44100, srs_aac_srates[m.aac_sample_rate]);
|
||||
EXPECT_EQ(2, m.aac_channels);
|
||||
|
||||
f.error_offset = 8;
|
||||
|
||||
err = m.write_audio(0, (char*)"\xaf\x01\x00", 3);
|
||||
EXPECT_TRUE(srs_success != err);
|
||||
srs_freep(err);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,8 @@ class MockSrsFileWriter : public SrsFileWriter
|
|||
public:
|
||||
char* data;
|
||||
int offset;
|
||||
srs_error_t err;
|
||||
int error_offset;
|
||||
public:
|
||||
MockSrsFileWriter();
|
||||
virtual ~MockSrsFileWriter();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue