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()
|
SrsAmf0StrictArray::SrsAmf0StrictArray()
|
||||||
{
|
{
|
||||||
marker = RTMP_AMF0_StrictArray;
|
marker = RTMP_AMF0_StrictArray;
|
||||||
|
_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
SrsAmf0StrictArray::~SrsAmf0StrictArray()
|
SrsAmf0StrictArray::~SrsAmf0StrictArray()
|
||||||
|
|
|
@ -1049,3 +1049,71 @@ VOID TEST(AMF0Test, ApiEcmaArrayProps)
|
||||||
EXPECT_EQ(2, o->count());
|
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