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

amf0 utest: refine interface of amf0, only export required objects

This commit is contained in:
winlin 2014-03-08 21:56:14 +08:00
parent b55efef2ee
commit 3129c738cb
5 changed files with 357 additions and 288 deletions

View file

@ -46,221 +46,239 @@ VOID TEST(AMF0Test, Size)
// object: empty
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
// object: elem
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
o.set("age", SrsAmf0Any::number(9));
o->set("age", SrsAmf0Any::number(9));
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
o.set("email", SrsAmf0Any::null());
o->set("email", SrsAmf0Any::null());
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
o.set("email", SrsAmf0Any::undefined());
o->set("email", SrsAmf0Any::undefined());
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
o.set("sex", SrsAmf0Any::boolean(true));
o->set("sex", SrsAmf0Any::boolean(true));
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
// array: empty
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
// array: elem
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
o.set("age", SrsAmf0Any::number(9));
o->set("age", SrsAmf0Any::number(9));
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
o.set("email", SrsAmf0Any::null());
o->set("email", SrsAmf0Any::null());
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
o.set("email", SrsAmf0Any::undefined());
o->set("email", SrsAmf0Any::undefined());
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
o.set("sex", SrsAmf0Any::boolean(true));
o->set("sex", SrsAmf0Any::boolean(true));
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
// object: array
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
o.set("args", args);
o->set("args", args);
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
o.set("args", args);
o->set("args", args);
SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
SrsAmf0EcmaArray* params = SrsAmf0Any::array();
params->set("p1", SrsAmf0Any::number(10));
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
o.set("params", params);
o->set("params", params);
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
// array: object
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0Object* args = new SrsAmf0Object();
SrsAmf0Object* args = SrsAmf0Any::object();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
o.set("args", args);
o->set("args", args);
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0Object* args = new SrsAmf0Object();
SrsAmf0Object* args = SrsAmf0Any::object();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
o.set("args", args);
o->set("args", args);
SrsAmf0Object* params = new SrsAmf0Object();
SrsAmf0Object* params = SrsAmf0Any::object();
params->set("p1", SrsAmf0Any::number(10));
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
o.set("params", params);
o->set("params", params);
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
// object: object
if (true) {
int size = 1+3;
SrsAmf0Object o;
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0Object* args = new SrsAmf0Object();
SrsAmf0Object* args = SrsAmf0Any::object();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
o.set("args", args);
o->set("args", args);
SrsAmf0Object* params = new SrsAmf0Object();
SrsAmf0Object* params = SrsAmf0Any::object();
params->set("p1", SrsAmf0Any::number(10));
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
o.set("params", params);
o->set("params", params);
EXPECT_EQ(size, SrsAmf0Size::object(&o));
EXPECT_EQ(size, SrsAmf0Size::object(o));
}
// array: array
if (true) {
int size = 1+4+3;
SrsAmf0EcmaArray o;
SrsAmf0EcmaArray* o = SrsAmf0Any::array();
SrsAutoFree(SrsAmf0EcmaArray, o, false);
size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
o.set("name", SrsAmf0Any::str("winlin"));
o->set("name", SrsAmf0Any::str("winlin"));
SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
SrsAmf0EcmaArray* args = SrsAmf0Any::array();
args->set("p0", SrsAmf0Any::str("function"));
size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
o.set("args", args);
o->set("args", args);
SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
SrsAmf0EcmaArray* params = SrsAmf0Any::array();
params->set("p1", SrsAmf0Any::number(10));
size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
o.set("params", params);
o->set("params", params);
EXPECT_EQ(size, SrsAmf0Size::array(&o));
EXPECT_EQ(size, SrsAmf0Size::array(o));
}
}
@ -656,3 +674,24 @@ VOID TEST(AMF0Test, AnyIO)
srs_freep(po);
}
}
VOID TEST(AMF0Test, AnyAssert)
{
SrsStream s;
SrsAmf0Any* o = NULL;
char buf[1024];
memset(buf, 0, sizeof(buf));
EXPECT_EQ(ERROR_SUCCESS, s.initialize(buf, sizeof(buf)));
// read any
if (true) {
s.reset();
s.current()[0] = 0x12;
EXPECT_NE(ERROR_SUCCESS, srs_amf0_read_any(&s, &o));
EXPECT_TRUE(NULL == o);
srs_freep(o);
}
//
}