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

Cover AMF0 codec. 3.0.61

This commit is contained in:
winlin 2019-10-12 00:32:25 +00:00
parent b2e4a5f834
commit 9d1249e256

View file

@ -487,6 +487,68 @@ VOID TEST(ProtocolAMF0Test, InterfacesObject2)
o->remove("version");
EXPECT_TRUE(NULL == o->get_property("version"));
char* s = p->human_print(NULL, NULL);
EXPECT_TRUE(s != NULL);
srs_freepa(s);
}
if (true) {
SrsAmf0Any* p = SrsAmf0Any::strict_array();
SrsAutoFree(SrsAmf0Any, p);
SrsAmf0StrictArray* o = p->to_strict_array();
EXPECT_TRUE(NULL != o);
o->append(SrsAmf0Any::number(3.0));
o->append(SrsAmf0Any::str("srs"));
SrsAmf0Any* prop = o->at(0);
EXPECT_TRUE(prop->is_number());
EXPECT_TRUE(3.0 == prop->to_number());
prop = o->at(0);
EXPECT_TRUE(NULL != prop);
prop = o->at(1);
EXPECT_TRUE(NULL != prop);
char* s = p->human_print(NULL, NULL);
EXPECT_TRUE(s != NULL);
srs_freepa(s);
}
if (true) {
SrsAmf0Any* p = SrsAmf0Any::ecma_array();
SrsAutoFree(SrsAmf0Any, p);
SrsAmf0EcmaArray* o = p->to_ecma_array();
EXPECT_TRUE(NULL != o);
o->set("version", SrsAmf0Any::number(3.0));
o->set("name", SrsAmf0Any::str("srs"));
EXPECT_TRUE(string("version") == o->key_at(0));
EXPECT_STREQ("version", o->key_raw_at(0));
EXPECT_TRUE(string("name") == o->key_at(1));
SrsAmf0Any* prop = o->get_property("version");
EXPECT_TRUE(prop->is_number());
EXPECT_TRUE(3.0 == prop->to_number());
prop = o->ensure_property_number("version");
EXPECT_TRUE(NULL != prop);
prop = o->ensure_property_string("name");
EXPECT_TRUE(NULL != prop);
prop = o->value_at(1);
EXPECT_TRUE(NULL != prop);
EXPECT_TRUE(prop->is_string());
char* s = p->human_print(NULL, NULL);
EXPECT_TRUE(s != NULL);
srs_freepa(s);
}
}
@ -641,3 +703,81 @@ VOID TEST(ProtocolAMF0Test, InterfacesOthers)
}
}
VOID TEST(ProtocolAMF0Test, InterfacesError)
{
srs_error_t err;
if (true) {
SrsBuffer b;
HELPER_EXPECT_FAILED(SrsAmf0Any::discovery(&b, NULL));
}
if (true) {
char data = 0x3f;
SrsBuffer b(&data, 1);
HELPER_EXPECT_FAILED(SrsAmf0Any::discovery(&b, NULL));
}
if (true) {
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o);
o->set("name", SrsAmf0Any::number(3.0));
o->set("name", SrsAmf0Any::str("srs"));
SrsAmf0Any* prop;
prop = o->ensure_property_number("name");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_string("id");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_string("name");
ASSERT_TRUE(prop != NULL);
EXPECT_STREQ("srs", prop->to_str_raw());
}
if (true) {
SrsAmf0Object* o = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, o);
o->set("name", SrsAmf0Any::str("srs"));
o->set("name", SrsAmf0Any::number(3.0));
SrsAmf0Any* prop;
prop = o->ensure_property_number("id");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_string("name");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_number("name");
ASSERT_TRUE(prop != NULL);
EXPECT_TRUE(3.0 == prop->to_number());
}
if (true) {
SrsAmf0Object* src = SrsAmf0Any::object();
SrsAutoFree(SrsAmf0Object, src);
SrsAmf0Any* cp = src->copy();
SrsAutoFree(SrsAmf0Any, cp);
SrsAmf0Object* o = cp->to_object();
o->set("name", SrsAmf0Any::str("srs"));
o->set("name", SrsAmf0Any::number(3.0));
SrsAmf0Any* prop;
prop = o->ensure_property_number("id");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_string("name");
EXPECT_TRUE(prop == NULL);
prop = o->ensure_property_number("name");
ASSERT_TRUE(prop != NULL);
EXPECT_TRUE(3.0 == prop->to_number());
}
}