From 0a9659b749c36d7caeead1ea98da56f53e03cae2 Mon Sep 17 00:00:00 2001 From: winlin Date: Mon, 21 Oct 2019 09:29:42 +0800 Subject: [PATCH] Cover AMF0 codec. 3.0.61 --- trunk/src/utest/srs_utest_amf0.cpp | 69 ++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/trunk/src/utest/srs_utest_amf0.cpp b/trunk/src/utest/srs_utest_amf0.cpp index 5c930091e..74241565d 100644 --- a/trunk/src/utest/srs_utest_amf0.cpp +++ b/trunk/src/utest/srs_utest_amf0.cpp @@ -2125,6 +2125,14 @@ VOID TEST(ProtocolAMF0Test, InterfacesEcmaArray) srs_freep(o); } + if (true) { + uint8_t data[] = {0x08, 0x00, 0x00, 0x00}; + SrsBuffer b((char*)data, sizeof(data)); + SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); + HELPER_EXPECT_FAILED(o->read(&b)); + srs_freep(o); + } + if (true) { uint8_t data[] = {0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 'a'}; SrsBuffer b((char*)data, sizeof(data)); @@ -2227,6 +2235,14 @@ VOID TEST(ProtocolAMF0Test, InterfacesStrictArray) srs_freep(o); } + if (true) { + uint8_t data[] = {0x0a, 0x00, 0x00, 0x00}; + SrsBuffer b((char*)data, sizeof(data)); + SrsAmf0StrictArray* o = SrsAmf0Any::strict_array(); + HELPER_EXPECT_FAILED(o->read(&b)); + srs_freep(o); + } + if (true) { uint8_t data[] = {0x0a, 0x00, 0x00, 0x00, 0x01, 0x02}; SrsBuffer b((char*)data, sizeof(data)); @@ -2367,3 +2383,56 @@ VOID TEST(ProtocolAMF0Test, InterfacesError) } } +VOID TEST(ProtocolAMF0Test, Amf0Object2) +{ + if (true) { + SrsAmf0Object* o = SrsAmf0Any::object(); + o->set("id", SrsAmf0Any::number(3.0)); + EXPECT_EQ(1, o->count()); + + o->clear(); + EXPECT_EQ(0, o->count()); + + srs_freep(o); + } + + if (true) { + SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); + o->set("id", SrsAmf0Any::number(3.0)); + EXPECT_EQ(1, o->count()); + + o->clear(); + EXPECT_EQ(0, o->count()); + + srs_freep(o); + } + + if (true) { + SrsAmf0EcmaArray* o = SrsAmf0Any::ecma_array(); + o->set("id", SrsAmf0Any::number(3.0)); + + SrsJsonAny* j = o->to_json(); + EXPECT_TRUE(j->is_object()); + + SrsJsonObject* jo = j->to_object(); + EXPECT_EQ(1, jo->count()); + + srs_freep(j); + srs_freep(o); + } + + if (true) { + SrsAmf0StrictArray* o = SrsAmf0Any::strict_array(); + o->append(SrsAmf0Any::number(3.0)); + + SrsJsonAny* j = o->to_json(); + EXPECT_TRUE(j->is_array()); + + SrsJsonArray* ja = j->to_array(); + EXPECT_EQ(1, ja->count()); + + srs_freep(j); + srs_freep(o); + } +} +