mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
update amf0 strict array test, fix bug of count zero init
This commit is contained in:
parent
373f92551d
commit
5a06909d75
2 changed files with 69 additions and 0 deletions
|
@ -1037,6 +1037,7 @@ SrsAmf0Any* SrsAmf0EcmaArray::ensure_property_number(string name)
|
|||
SrsAmf0StrictArray::SrsAmf0StrictArray()
|
||||
{
|
||||
marker = RTMP_AMF0_StrictArray;
|
||||
_count = 0;
|
||||
}
|
||||
|
||||
SrsAmf0StrictArray::~SrsAmf0StrictArray()
|
||||
|
|
|
@ -1049,3 +1049,71 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps)
|
|||
EXPECT_EQ(2, o->count());
|
||||
}
|
||||
}
|
||||
|
||||
VOID TEST(AMF0Test, ApiStrictArray)
|
||||
{
|
||||
SrsStream s;
|
||||
|
||||
char buf[1024];
|
||||
memset(buf, 0, sizeof(buf));
|
||||
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
|
||||
|
||||
SrsAmf0StrictArray* o = NULL;
|
||||
|
||||
// append property
|
||||
if (true) {
|
||||
o = SrsAmf0Any::strict_array();
|
||||
SrsAutoFree(SrsAmf0StrictArray, o);
|
||||
|
||||
o->append(SrsAmf0Any::number(100));
|
||||
EXPECT_DOUBLE_EQ(100, o->at(0)->to_number());
|
||||
|
||||
o->append(SrsAmf0Any::number(101));
|
||||
EXPECT_DOUBLE_EQ(101, o->at(1)->to_number());
|
||||
|
||||
o->append(SrsAmf0Any::str("winlin"));
|
||||
EXPECT_STREQ("winlin", o->at(2)->to_str().c_str());
|
||||
}
|
||||
|
||||
// count
|
||||
if (true) {
|
||||
o = SrsAmf0Any::strict_array();
|
||||
SrsAutoFree(SrsAmf0StrictArray, o);
|
||||
|
||||
EXPECT_EQ(0, o->count());
|
||||
|
||||
o->append(SrsAmf0Any::boolean());
|
||||
EXPECT_EQ(1, o->count());
|
||||
|
||||
o->append(SrsAmf0Any::boolean());
|
||||
EXPECT_EQ(2, o->count());
|
||||
|
||||
o->clear();
|
||||
EXPECT_EQ(0, o->count());
|
||||
}
|
||||
|
||||
// io
|
||||
if (true) {
|
||||
o = SrsAmf0Any::strict_array();
|
||||
SrsAutoFree(SrsAmf0StrictArray, o);
|
||||
|
||||
s.reset();
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(5, s.pos());
|
||||
|
||||
s.reset();
|
||||
EXPECT_EQ(0x0a, s.read_1bytes());
|
||||
EXPECT_EQ(0x00, s.read_4bytes());
|
||||
}
|
||||
|
||||
if (true) {
|
||||
o = SrsAmf0Any::strict_array();
|
||||
SrsAutoFree(SrsAmf0StrictArray, o);
|
||||
|
||||
o->append(SrsAmf0Any::number(0));
|
||||
|
||||
s.reset();
|
||||
EXPECT_EQ(ERROR_SUCCESS, o->write(&s));
|
||||
EXPECT_EQ(5 + SrsAmf0Size::number(), s.pos());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue