mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
For #913, APP support complex error.
This commit is contained in:
parent
e2c1f58674
commit
db08f1586c
14 changed files with 623 additions and 591 deletions
|
@ -80,10 +80,9 @@ VOID TEST(ProtocolAMF0Test, ScenarioMain)
|
|||
bytes = new char[nb_bytes];
|
||||
|
||||
// use SrsBuffer to write props/info to binary buf.
|
||||
SrsBuffer s;
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(bytes, nb_bytes));
|
||||
EXPECT_EQ(ERROR_SUCCESS, props->write(&s));
|
||||
EXPECT_EQ(ERROR_SUCCESS, info->write(&s));
|
||||
SrsBuffer s(bytes, nb_bytes);
|
||||
EXPECT_EQ(srs_success, props->write(&s));
|
||||
EXPECT_EQ(srs_success, info->write(&s));
|
||||
EXPECT_TRUE(s.empty());
|
||||
|
||||
// now, user can use the buf
|
||||
|
@ -98,20 +97,19 @@ VOID TEST(ProtocolAMF0Test, ScenarioMain)
|
|||
ASSERT_TRUE(NULL != bytes);
|
||||
|
||||
// use SrsBuffer to assist amf0 object to read from bytes.
|
||||
SrsBuffer s;
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(bytes, nb_bytes));
|
||||
SrsBuffer s(bytes, nb_bytes);
|
||||
|
||||
// decoding
|
||||
// if user know the schema, for instance, it's an amf0 object,
|
||||
// user can use specified object to decoding.
|
||||
SrsAmf0Object* props = SrsAmf0Any::object();
|
||||
SrsAutoFree(SrsAmf0Object, props);
|
||||
EXPECT_EQ(ERROR_SUCCESS, props->read(&s));
|
||||
EXPECT_EQ(srs_success, props->read(&s));
|
||||
|
||||
// user can use specified object to decoding.
|
||||
SrsAmf0Object* info = SrsAmf0Any::object();
|
||||
SrsAutoFree(SrsAmf0Object, info);
|
||||
EXPECT_EQ(ERROR_SUCCESS, info->read(&s));
|
||||
EXPECT_EQ(srs_success, info->read(&s));
|
||||
|
||||
// use the decoded data.
|
||||
SrsAmf0Any* prop = NULL;
|
||||
|
@ -149,12 +147,11 @@ VOID TEST(ProtocolAMF0Test, ScenarioMain)
|
|||
ASSERT_TRUE(NULL != bytes);
|
||||
|
||||
// use SrsBuffer to assist amf0 object to read from bytes.
|
||||
SrsBuffer s;
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(bytes, nb_bytes));
|
||||
SrsBuffer s(bytes, nb_bytes);
|
||||
|
||||
// decoding a amf0 any, for user donot know
|
||||
SrsAmf0Any* any = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &any));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &any));
|
||||
SrsAutoFree(SrsAmf0Any, any);
|
||||
|
||||
// for amf0 object
|
||||
|
@ -526,12 +523,11 @@ VOID TEST(ProtocolAMF0Test, ApiAnyElem)
|
|||
*/
|
||||
VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
||||
{
|
||||
SrsBuffer s;
|
||||
SrsAmf0Any* o = NULL;
|
||||
|
||||
char buf[1024];
|
||||
memset(buf, 0, sizeof(buf));
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
|
||||
SrsBuffer s(buf, sizeof(buf));
|
||||
|
||||
// object eof
|
||||
if (true) {
|
||||
|
@ -541,13 +537,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::object_eof();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_EQ(3, s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
(s.data() + s.pos())[0] = 0x01;
|
||||
EXPECT_NE(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_NE(srs_success, o->read(&s));
|
||||
}
|
||||
if (true) {
|
||||
s.skip(-1 * s.pos());
|
||||
|
@ -555,7 +551,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::object_eof();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_EQ(3, s.pos());
|
||||
|
||||
|
@ -570,7 +566,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::str("winlin");
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
@ -581,7 +577,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
|
||||
s.skip(-1 * s.pos());
|
||||
(s.data() + s.pos())[3] = 'x';
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_STREQ("xinlin", o->to_str().c_str());
|
||||
}
|
||||
|
@ -593,14 +589,14 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::number(10);
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(0, s.read_1bytes());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_DOUBLE_EQ(10, o->to_number());
|
||||
}
|
||||
|
@ -612,14 +608,14 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::boolean(true);
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(1, s.read_1bytes());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_TRUE(o->to_boolean());
|
||||
}
|
||||
|
@ -629,14 +625,14 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::boolean(false);
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(1, s.read_1bytes());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_FALSE(o->to_boolean());
|
||||
}
|
||||
|
@ -648,14 +644,14 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::null();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(5, s.read_1bytes());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_TRUE(o->is_null());
|
||||
}
|
||||
|
@ -667,14 +663,14 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::undefined();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(6, s.read_1bytes());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->read(&s));
|
||||
EXPECT_EQ(srs_success, o->read(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
EXPECT_TRUE(o->is_undefined());
|
||||
}
|
||||
|
@ -686,13 +682,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::str("winlin");
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
||||
SrsAmf0Any* po = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
SrsAutoFree(SrsAmf0Any, po);
|
||||
ASSERT_TRUE(po->is_string());
|
||||
|
@ -706,13 +702,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::number(10);
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
||||
SrsAmf0Any* po = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
SrsAutoFree(SrsAmf0Any, po);
|
||||
ASSERT_TRUE(po->is_number());
|
||||
|
@ -726,13 +722,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::boolean(true);
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
||||
SrsAmf0Any* po = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
SrsAutoFree(SrsAmf0Any, po);
|
||||
ASSERT_TRUE(po->is_boolean());
|
||||
|
@ -746,13 +742,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::null();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
||||
SrsAmf0Any* po = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
SrsAutoFree(SrsAmf0Any, po);
|
||||
ASSERT_TRUE(po->is_null());
|
||||
|
@ -765,13 +761,13 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
o = SrsAmf0Any::undefined();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(o->total_size(), s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
||||
SrsAmf0Any* po = NULL;
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
SrsAutoFree(SrsAmf0Any, po);
|
||||
ASSERT_TRUE(po->is_undefined());
|
||||
|
@ -782,52 +778,52 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
s.skip(-1 * s.pos());
|
||||
|
||||
o = SrsAmf0Any::str("winlin");
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
srs_freep(o);
|
||||
|
||||
o = SrsAmf0Any::number(10);
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
srs_freep(o);
|
||||
|
||||
o = SrsAmf0Any::boolean(true);
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
srs_freep(o);
|
||||
|
||||
o = SrsAmf0Any::null();
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
srs_freep(o);
|
||||
|
||||
o = SrsAmf0Any::undefined();
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
srs_freep(o);
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
SrsAmf0Any* po = NULL;
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
ASSERT_TRUE(po->is_string());
|
||||
EXPECT_STREQ("winlin", po->to_str().c_str());
|
||||
srs_freep(po);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
ASSERT_TRUE(po->is_number());
|
||||
EXPECT_DOUBLE_EQ(10, po->to_number());
|
||||
srs_freep(po);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
ASSERT_TRUE(po->is_boolean());
|
||||
EXPECT_TRUE(po->to_boolean());
|
||||
srs_freep(po);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
ASSERT_TRUE(po->is_null());
|
||||
srs_freep(po);
|
||||
|
||||
EXPECT_EQ(ERROR_SUCCESS, srs_amf0_read_any(&s, &po));
|
||||
EXPECT_EQ(srs_success, srs_amf0_read_any(&s, &po));
|
||||
ASSERT_TRUE(NULL != po);
|
||||
ASSERT_TRUE(po->is_undefined());
|
||||
srs_freep(po);
|
||||
|
@ -837,20 +833,19 @@ VOID TEST(ProtocolAMF0Test, ApiAnyIO)
|
|||
/**
|
||||
* to get the type identity
|
||||
*/
|
||||
VOID TEST(ProtocolAMF0Test, ApiAnyTypeAssert)
|
||||
VOID TEST(ProtocolAMF0Test, ApiAnyTypeAssert)
|
||||
{
|
||||
SrsBuffer s;
|
||||
SrsAmf0Any* o = NULL;
|
||||
|
||||
char buf[1024];
|
||||
memset(buf, 0, sizeof(buf));
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
|
||||
SrsBuffer s(buf, sizeof(buf));
|
||||
|
||||
// read any
|
||||
if (true) {
|
||||
s.skip(-1 * s.pos());
|
||||
(s.data() + s.pos())[0] = 0x12;
|
||||
EXPECT_NE(ERROR_SUCCESS, srs_amf0_read_any(&s, &o));
|
||||
EXPECT_NE(srs_success, srs_amf0_read_any(&s, &o));
|
||||
EXPECT_TRUE(NULL == o);
|
||||
srs_freep(o);
|
||||
}
|
||||
|
@ -902,7 +897,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyTypeAssert)
|
|||
o = SrsAmf0Any::object();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(1+3, s.pos());
|
||||
}
|
||||
|
||||
|
@ -911,7 +906,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyTypeAssert)
|
|||
o = SrsAmf0Any::ecma_array();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(1+4+3, s.pos());
|
||||
}
|
||||
|
||||
|
@ -920,7 +915,7 @@ VOID TEST(ProtocolAMF0Test, ApiAnyTypeAssert)
|
|||
o = SrsAmf0Any::strict_array();
|
||||
SrsAutoFree(SrsAmf0Any, o);
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(1+4, s.pos());
|
||||
}
|
||||
}
|
||||
|
@ -1092,11 +1087,9 @@ VOID TEST(ProtocolAMF0Test, ApiEcmaArrayProps)
|
|||
*/
|
||||
VOID TEST(ProtocolAMF0Test, ApiStrictArray)
|
||||
{
|
||||
SrsBuffer s;
|
||||
|
||||
char buf[1024];
|
||||
memset(buf, 0, sizeof(buf));
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
|
||||
SrsBuffer s(buf, sizeof(buf));
|
||||
|
||||
SrsAmf0StrictArray* o = NULL;
|
||||
|
||||
|
@ -1138,7 +1131,7 @@ VOID TEST(ProtocolAMF0Test, ApiStrictArray)
|
|||
SrsAutoFree(SrsAmf0StrictArray, o);
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(5, s.pos());
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
|
@ -1153,7 +1146,7 @@ VOID TEST(ProtocolAMF0Test, ApiStrictArray)
|
|||
o->append(SrsAmf0Any::number(0));
|
||||
|
||||
s.skip(-1 * s.pos());
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(srs_success, o->write(&s));
|
||||
EXPECT_EQ(5 + SrsAmf0Size::number(), s.pos());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,13 +44,11 @@ MockSrsFileWriter::~MockSrsFileWriter()
|
|||
srs_freep(data);
|
||||
}
|
||||
|
||||
int MockSrsFileWriter::open(string /*file*/)
|
||||
srs_error_t MockSrsFileWriter::open(string /*file*/)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
offset = 0;
|
||||
|
||||
return ret;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockSrsFileWriter::close()
|
||||
|
@ -68,10 +66,8 @@ int64_t MockSrsFileWriter::tellg()
|
|||
return offset;
|
||||
}
|
||||
|
||||
int MockSrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite)
|
||||
srs_error_t MockSrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
int size = srs_min(MAX_MOCK_DATA_SIZE - offset, (int)count);
|
||||
|
||||
memcpy(data + offset, buf, size);
|
||||
|
@ -82,7 +78,7 @@ int MockSrsFileWriter::write(void* buf, size_t count, ssize_t* pnwrite)
|
|||
|
||||
offset += size;
|
||||
|
||||
return ret;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockSrsFileWriter::mock_reset_offset()
|
||||
|
@ -102,13 +98,11 @@ MockSrsFileReader::~MockSrsFileReader()
|
|||
srs_freep(data);
|
||||
}
|
||||
|
||||
int MockSrsFileReader::open(string /*file*/)
|
||||
srs_error_t MockSrsFileReader::open(string /*file*/)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
offset = 0;
|
||||
|
||||
return ret;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockSrsFileReader::close()
|
||||
|
@ -142,14 +136,12 @@ int64_t MockSrsFileReader::filesize()
|
|||
return size;
|
||||
}
|
||||
|
||||
int MockSrsFileReader::read(void* buf, size_t count, ssize_t* pnread)
|
||||
srs_error_t MockSrsFileReader::read(void* buf, size_t count, ssize_t* pnread)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
|
||||
int s = srs_min(size - offset, (int)count);
|
||||
|
||||
if (s <= 0) {
|
||||
return ret;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
memcpy(buf, data + offset, s);
|
||||
|
@ -160,13 +152,13 @@ int MockSrsFileReader::read(void* buf, size_t count, ssize_t* pnread)
|
|||
|
||||
offset += s;
|
||||
|
||||
return ret;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
int MockSrsFileReader::lseek(off_t _offset, int /*whence*/, off_t* /*seeked*/)
|
||||
srs_error_t MockSrsFileReader::lseek(off_t _offset, int /*whence*/, off_t* /*seeked*/)
|
||||
{
|
||||
offset = (int)_offset;
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockSrsFileReader::mock_append_data(const char* _data, int _size)
|
||||
|
@ -192,7 +184,7 @@ MockBufferReader::~MockBufferReader()
|
|||
{
|
||||
}
|
||||
|
||||
int MockBufferReader::read(void* buf, size_t size, ssize_t* nread)
|
||||
srs_error_t MockBufferReader::read(void* buf, size_t size, ssize_t* nread)
|
||||
{
|
||||
int len = srs_min(str.length(), size);
|
||||
|
||||
|
@ -202,7 +194,7 @@ int MockBufferReader::read(void* buf, size_t size, ssize_t* nread)
|
|||
*nread = len;
|
||||
}
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_UTEST_KERNEL
|
||||
|
@ -965,56 +957,13 @@ VOID TEST(KernelFlvTest, FlvVSDecoderSeek)
|
|||
EXPECT_TRUE(5 == fs.offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* test the stream utility, bytes from/to basic types.
|
||||
*/
|
||||
VOID TEST(KernelStreamTest, StreamInitialize)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
EXPECT_TRUE(ERROR_SUCCESS != s.initialize(NULL, 1024));
|
||||
EXPECT_TRUE(ERROR_SUCCESS != s.initialize(data, 0));
|
||||
EXPECT_TRUE(ERROR_SUCCESS != s.initialize(data, -1));
|
||||
}
|
||||
|
||||
/**
|
||||
* test the stream utility, access data
|
||||
*/
|
||||
VOID TEST(KernelStreamTest, StreamData)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(s.data() == NULL);
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
EXPECT_TRUE(s.data() == data);
|
||||
}
|
||||
|
||||
/**
|
||||
* test the stream utility, access size
|
||||
*/
|
||||
VOID TEST(KernelStreamTest, StreamSize)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(s.size() == 0);
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
EXPECT_TRUE(s.size() == 1024);
|
||||
}
|
||||
|
||||
/**
|
||||
* test the stream utility, access pos
|
||||
*/
|
||||
VOID TEST(KernelStreamTest, StreamPos)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(s.pos() == 0);
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
EXPECT_TRUE(s.pos() == 0);
|
||||
|
||||
s.read_bytes(data, 1024);
|
||||
|
@ -1026,11 +975,8 @@ VOID TEST(KernelStreamTest, StreamPos)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamEmpty)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(s.empty());
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
EXPECT_FALSE(s.empty());
|
||||
|
||||
s.read_bytes(data, 1024);
|
||||
|
@ -1042,11 +988,8 @@ VOID TEST(KernelStreamTest, StreamEmpty)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRequire)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_FALSE(s.require(1));
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
EXPECT_TRUE(s.require(1));
|
||||
EXPECT_TRUE(s.require(1024));
|
||||
|
||||
|
@ -1062,10 +1005,8 @@ VOID TEST(KernelStreamTest, StreamRequire)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamSkip)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
EXPECT_EQ(0, s.pos());
|
||||
|
||||
s.skip(1);
|
||||
|
@ -1080,10 +1021,8 @@ VOID TEST(KernelStreamTest, StreamSkip)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRead1Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
data[0] = 0x12;
|
||||
data[99] = 0x13;
|
||||
|
@ -1101,10 +1040,8 @@ VOID TEST(KernelStreamTest, StreamRead1Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRead2Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
data[0] = 0x01;
|
||||
data[1] = 0x02;
|
||||
|
@ -1130,10 +1067,8 @@ VOID TEST(KernelStreamTest, StreamRead2Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRead3Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
data[0] = 0x01;
|
||||
data[1] = 0x02;
|
||||
|
@ -1159,10 +1094,8 @@ VOID TEST(KernelStreamTest, StreamRead3Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRead4Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
data[0] = 0x01;
|
||||
data[1] = 0x02;
|
||||
|
@ -1188,10 +1121,8 @@ VOID TEST(KernelStreamTest, StreamRead4Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamRead8Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
data[0] = 0x01;
|
||||
data[1] = 0x02;
|
||||
|
@ -1227,10 +1158,8 @@ VOID TEST(KernelStreamTest, StreamRead8Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamReadString)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[] = "Hello, world!";
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, sizeof(data) - 1));
|
||||
SrsBuffer s(data, sizeof(data) - 1);
|
||||
|
||||
string str = s.read_string(2);
|
||||
EXPECT_STREQ("He", str.c_str());
|
||||
|
@ -1250,10 +1179,8 @@ VOID TEST(KernelStreamTest, StreamReadString)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamReadBytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[] = "Hello, world!";
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, sizeof(data) - 1));
|
||||
SrsBuffer s(data, sizeof(data) - 1);
|
||||
|
||||
char bytes[64];
|
||||
s.read_bytes(bytes, 2);
|
||||
|
@ -1277,10 +1204,8 @@ VOID TEST(KernelStreamTest, StreamReadBytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWrite1Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
s.write_1bytes(0x10);
|
||||
s.write_1bytes(0x11);
|
||||
|
@ -1298,10 +1223,8 @@ VOID TEST(KernelStreamTest, StreamWrite1Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWrite2Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
s.write_2bytes(0x1011);
|
||||
s.write_2bytes(0x1213);
|
||||
|
@ -1322,10 +1245,8 @@ VOID TEST(KernelStreamTest, StreamWrite2Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWrite3Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
s.write_3bytes(0x101112);
|
||||
s.write_3bytes(0x131415);
|
||||
|
@ -1345,10 +1266,8 @@ VOID TEST(KernelStreamTest, StreamWrite3Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWrite4Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
s.write_4bytes(0x10111213);
|
||||
s.write_4bytes(0x14151617);
|
||||
|
@ -1367,10 +1286,8 @@ VOID TEST(KernelStreamTest, StreamWrite4Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWrite8Bytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
s.write_8bytes(0x1011121314151617LL);
|
||||
s.write_8bytes(0x1819202122232425LL);
|
||||
|
@ -1388,10 +1305,8 @@ VOID TEST(KernelStreamTest, StreamWrite8Bytes)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWriteString)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
char str[] = {
|
||||
(char)0x10, (char)0x11, (char)0x12, (char)0x13,
|
||||
|
@ -1416,10 +1331,8 @@ VOID TEST(KernelStreamTest, StreamWriteString)
|
|||
*/
|
||||
VOID TEST(KernelStreamTest, StreamWriteBytes)
|
||||
{
|
||||
SrsBuffer s;
|
||||
char data[1024];
|
||||
|
||||
EXPECT_TRUE(ERROR_SUCCESS == s.initialize(data, 1024));
|
||||
SrsBuffer s(data, 1024);
|
||||
|
||||
char str[] = {
|
||||
(char)0x10, (char)0x11, (char)0x12, (char)0x13,
|
||||
|
@ -1522,90 +1435,89 @@ VOID TEST(KernelUtilityTest, UtilityString)
|
|||
VOID TEST(KernelUtility, AvcUev)
|
||||
{
|
||||
int32_t v;
|
||||
SrsBuffer buf;
|
||||
SrsBitBuffer bb;
|
||||
char data[32];
|
||||
|
||||
if (true) {
|
||||
data[0] = 0xff;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 1;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 1;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(0, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x40;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(1, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x60;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(2, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x20;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(3, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x28;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(4, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x30;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(5, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x38;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(6, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x10;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(7, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x12;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(8, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x14;
|
||||
buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 1); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(9, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x01; data[1] = 0x12;
|
||||
buf.initialize((char*)data, 2); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 2); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(128-1+9, v);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
data[0] = 0x00; data[1] = 0x91; data[2] = 0x00;
|
||||
buf.initialize((char*)data, 3); bb.initialize(&buf); v = 0;
|
||||
SrsBuffer buf((char*)data, 3); bb.initialize(&buf); v = 0;
|
||||
srs_avc_nalu_read_uev(&bb, v);
|
||||
EXPECT_EQ(256-1+0x22, v);
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public:
|
|||
MockBufferReader(const char* data);
|
||||
virtual ~MockBufferReader();
|
||||
public:
|
||||
virtual int read(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t read(void* buf, size_t size, ssize_t* nread);
|
||||
};
|
||||
|
||||
class MockSrsFileWriter : public SrsFileWriter
|
||||
|
@ -53,13 +53,13 @@ public:
|
|||
MockSrsFileWriter();
|
||||
virtual ~MockSrsFileWriter();
|
||||
public:
|
||||
virtual int open(std::string file);
|
||||
virtual srs_error_t open(std::string file);
|
||||
virtual void close();
|
||||
public:
|
||||
virtual bool is_open();
|
||||
virtual int64_t tellg();
|
||||
public:
|
||||
virtual int write(void* buf, size_t count, ssize_t* pnwrite);
|
||||
virtual srs_error_t write(void* buf, size_t count, ssize_t* pnwrite);
|
||||
// for mock
|
||||
public:
|
||||
void mock_reset_offset();
|
||||
|
@ -75,7 +75,7 @@ public:
|
|||
MockSrsFileReader();
|
||||
virtual ~MockSrsFileReader();
|
||||
public:
|
||||
virtual int open(std::string file);
|
||||
virtual srs_error_t open(std::string file);
|
||||
virtual void close();
|
||||
public:
|
||||
virtual bool is_open();
|
||||
|
@ -84,8 +84,8 @@ public:
|
|||
virtual int64_t seek2(int64_t offset);
|
||||
virtual int64_t filesize();
|
||||
public:
|
||||
virtual int read(void* buf, size_t count, ssize_t* pnread);
|
||||
virtual int lseek(off_t offset, int whence, off_t* seeked);
|
||||
virtual srs_error_t read(void* buf, size_t count, ssize_t* pnread);
|
||||
virtual srs_error_t lseek(off_t offset, int whence, off_t* seeked);
|
||||
// for mock
|
||||
public:
|
||||
// append data to current offset, modify the offset and size.
|
||||
|
|
|
@ -47,14 +47,14 @@ bool MockEmptyIO::is_never_timeout(int64_t /*tm*/)
|
|||
return true;
|
||||
}
|
||||
|
||||
int MockEmptyIO::read_fully(void* /*buf*/, size_t /*size*/, ssize_t* /*nread*/)
|
||||
srs_error_t MockEmptyIO::read_fully(void* /*buf*/, size_t /*size*/, ssize_t* /*nread*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
int MockEmptyIO::write(void* /*buf*/, size_t /*size*/, ssize_t* /*nwrite*/)
|
||||
srs_error_t MockEmptyIO::write(void* /*buf*/, size_t /*size*/, ssize_t* /*nwrite*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockEmptyIO::set_recv_timeout(int64_t /*tm*/)
|
||||
|
@ -85,14 +85,14 @@ int64_t MockEmptyIO::get_send_bytes()
|
|||
return 0;
|
||||
}
|
||||
|
||||
int MockEmptyIO::writev(const iovec */*iov*/, int /*iov_size*/, ssize_t* /*nwrite*/)
|
||||
srs_error_t MockEmptyIO::writev(const iovec */*iov*/, int /*iov_size*/, ssize_t* /*nwrite*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
int MockEmptyIO::read(void* /*buf*/, size_t /*size*/, ssize_t* /*nread*/)
|
||||
srs_error_t MockEmptyIO::read(void* /*buf*/, size_t /*size*/, ssize_t* /*nread*/)
|
||||
{
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
MockBufferIO::MockBufferIO()
|
||||
|
@ -110,10 +110,10 @@ bool MockBufferIO::is_never_timeout(int64_t tm)
|
|||
return tm == SRS_CONSTS_NO_TMMS;
|
||||
}
|
||||
|
||||
int MockBufferIO::read_fully(void* buf, size_t size, ssize_t* nread)
|
||||
srs_error_t MockBufferIO::read_fully(void* buf, size_t size, ssize_t* nread)
|
||||
{
|
||||
if (in_buffer.length() < (int)size) {
|
||||
return ERROR_SOCKET_READ;
|
||||
return srs_error_new(ERROR_SOCKET_READ, "read");
|
||||
}
|
||||
memcpy(buf, in_buffer.bytes(), size);
|
||||
|
||||
|
@ -122,17 +122,17 @@ int MockBufferIO::read_fully(void* buf, size_t size, ssize_t* nread)
|
|||
*nread = size;
|
||||
}
|
||||
in_buffer.erase(size);
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
int MockBufferIO::write(void* buf, size_t size, ssize_t* nwrite)
|
||||
srs_error_t MockBufferIO::write(void* buf, size_t size, ssize_t* nwrite)
|
||||
{
|
||||
sbytes += size;
|
||||
if (nwrite) {
|
||||
*nwrite = size;
|
||||
}
|
||||
out_buffer.append((char*)buf, size);
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
void MockBufferIO::set_recv_timeout(int64_t tm)
|
||||
|
@ -165,17 +165,17 @@ int64_t MockBufferIO::get_send_bytes()
|
|||
return sbytes;
|
||||
}
|
||||
|
||||
int MockBufferIO::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
|
||||
srs_error_t MockBufferIO::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
|
||||
{
|
||||
int ret = ERROR_SUCCESS;
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
ssize_t total = 0;
|
||||
for (int i = 0; i <iov_size; i++) {
|
||||
const iovec& pi = iov[i];
|
||||
|
||||
ssize_t writen = 0;
|
||||
if ((ret = write(pi.iov_base, pi.iov_len, &writen)) != ERROR_SUCCESS) {
|
||||
return ret;
|
||||
if ((err = write(pi.iov_base, pi.iov_len, &writen)) != srs_success) {
|
||||
return err;
|
||||
}
|
||||
total += writen;
|
||||
}
|
||||
|
@ -185,13 +185,13 @@ int MockBufferIO::writev(const iovec *iov, int iov_size, ssize_t* nwrite)
|
|||
if (nwrite) {
|
||||
*nwrite = total;
|
||||
}
|
||||
return ret;
|
||||
return err;
|
||||
}
|
||||
|
||||
int MockBufferIO::read(void* buf, size_t size, ssize_t* nread)
|
||||
srs_error_t MockBufferIO::read(void* buf, size_t size, ssize_t* nread)
|
||||
{
|
||||
if (in_buffer.length() <= 0) {
|
||||
return ERROR_SOCKET_READ;
|
||||
return srs_error_new(ERROR_SOCKET_READ, "read");
|
||||
}
|
||||
|
||||
size_t available = srs_min(in_buffer.length(), (int)size);
|
||||
|
@ -202,7 +202,7 @@ int MockBufferIO::read(void* buf, size_t size, ssize_t* nread)
|
|||
*nread = available;
|
||||
}
|
||||
in_buffer.erase(available);
|
||||
return ERROR_SUCCESS;
|
||||
return srs_success;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_UTEST_PROTOCOL
|
||||
|
|
|
@ -52,8 +52,8 @@ public:
|
|||
virtual bool is_never_timeout(int64_t tm);
|
||||
// for handshake.
|
||||
public:
|
||||
virtual int read_fully(void* buf, size_t size, ssize_t* nread);
|
||||
virtual int write(void* buf, size_t size, ssize_t* nwrite);
|
||||
virtual srs_error_t read_fully(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t write(void* buf, size_t size, ssize_t* nwrite);
|
||||
// for protocol
|
||||
public:
|
||||
virtual void set_recv_timeout(int64_t tm);
|
||||
|
@ -64,10 +64,10 @@ public:
|
|||
virtual void set_send_timeout(int64_t tm);
|
||||
virtual int64_t get_send_timeout();
|
||||
virtual int64_t get_send_bytes();
|
||||
virtual int writev(const iovec *iov, int iov_size, ssize_t* nwrite);
|
||||
virtual srs_error_t writev(const iovec *iov, int iov_size, ssize_t* nwrite);
|
||||
// for protocol/amf0/msg-codec
|
||||
public:
|
||||
virtual int read(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t read(void* buf, size_t size, ssize_t* nread);
|
||||
};
|
||||
|
||||
class MockBufferIO : public ISrsProtocolReaderWriter
|
||||
|
@ -91,8 +91,8 @@ public:
|
|||
virtual bool is_never_timeout(int64_t tm);
|
||||
// for handshake.
|
||||
public:
|
||||
virtual int read_fully(void* buf, size_t size, ssize_t* nread);
|
||||
virtual int write(void* buf, size_t size, ssize_t* nwrite);
|
||||
virtual srs_error_t read_fully(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t write(void* buf, size_t size, ssize_t* nwrite);
|
||||
// for protocol
|
||||
public:
|
||||
virtual void set_recv_timeout(int64_t tm);
|
||||
|
@ -103,10 +103,10 @@ public:
|
|||
virtual void set_send_timeout(int64_t tm);
|
||||
virtual int64_t get_send_timeout();
|
||||
virtual int64_t get_send_bytes();
|
||||
virtual int writev(const iovec *iov, int iov_size, ssize_t* nwrite);
|
||||
virtual srs_error_t writev(const iovec *iov, int iov_size, ssize_t* nwrite);
|
||||
// for protocol/amf0/msg-codec
|
||||
public:
|
||||
virtual int read(void* buf, size_t size, ssize_t* nread);
|
||||
virtual srs_error_t read(void* buf, size_t size, ssize_t* nread);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue