From 404207db4fdfc908edef1e26739c6fec2f2b88de Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 8 Mar 2014 13:35:22 +0800 Subject: [PATCH] amf0 utest: refine amf0 size and finish utest. --- trunk/src/utest/srs_utest_amf0.cpp | 522 ++++++++++++++--------------- 1 file changed, 261 insertions(+), 261 deletions(-) mode change 100755 => 100644 trunk/src/utest/srs_utest_amf0.cpp diff --git a/trunk/src/utest/srs_utest_amf0.cpp b/trunk/src/utest/srs_utest_amf0.cpp old mode 100755 new mode 100644 index 2c6ba70fb..75b4f3774 --- a/trunk/src/utest/srs_utest_amf0.cpp +++ b/trunk/src/utest/srs_utest_amf0.cpp @@ -1,261 +1,261 @@ -/* -The MIT License (MIT) - -Copyright (c) 2013-2014 winlin - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ -#include - -VOID TEST(AMF0Test, Size) -{ - // size of elem - EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin")); - EXPECT_EQ(2+0, SrsAmf0Size::utf8("")); - - EXPECT_EQ(1+2+6, SrsAmf0Size::str("winlin")); - EXPECT_EQ(1+2+0, SrsAmf0Size::str("")); - - EXPECT_EQ(1+8, SrsAmf0Size::number()); - - EXPECT_EQ(1, SrsAmf0Size::null()); - - EXPECT_EQ(1, SrsAmf0Size::undefined()); - - EXPECT_EQ(1+1, SrsAmf0Size::boolean()); - - // object: empty - if (true) { - int size = 1+3; - SrsAmf0Object o; - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - // object: elem - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); - o.set("age", new SrsAmf0Number(9)); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); - o.set("email", new SrsAmf0Null()); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); - o.set("email", new SrsAmf0Undefined()); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); - o.set("sex", new SrsAmf0Boolean(true)); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - - // array: empty - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - // array: elem - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); - o.set("age", new SrsAmf0Number(9)); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); - o.set("email", new SrsAmf0Null()); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); - o.set("email", new SrsAmf0Undefined()); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); - o.set("sex", new SrsAmf0Boolean(true)); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - - // object: array - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); - o.set("args", args); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); - o.set("args", args); - - SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray(); - params->set("p1", new SrsAmf0Number(10)); - size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params); - o.set("params", params); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - - // array: object - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0Object* args = new SrsAmf0Object(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); - o.set("args", args); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0Object* args = new SrsAmf0Object(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); - o.set("args", args); - - SrsAmf0Object* params = new SrsAmf0Object(); - params->set("p1", new SrsAmf0Number(10)); - size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params); - o.set("params", params); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } - - // object: object - if (true) { - int size = 1+3; - SrsAmf0Object o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0Object* args = new SrsAmf0Object(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); - o.set("args", args); - - SrsAmf0Object* params = new SrsAmf0Object(); - params->set("p1", new SrsAmf0Number(10)); - size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params); - o.set("params", params); - - EXPECT_EQ(size, SrsAmf0Size::object(&o)); - } - - // array: array - if (true) { - int size = 1+4+3; - SrsAmf0EcmaArray o; - - size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); - o.set("name", new SrsAmf0String("winlin")); - - SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); - args->set("p0", new SrsAmf0String("function")); - size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); - o.set("args", args); - - SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray(); - params->set("p1", new SrsAmf0Number(10)); - size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params); - o.set("params", params); - - EXPECT_EQ(size, SrsAmf0Size::array(&o)); - } -} +/* +The MIT License (MIT) + +Copyright (c) 2013-2014 winlin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +#include + +VOID TEST(AMF0Test, Size) +{ + // size of elem + EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin")); + EXPECT_EQ(2+0, SrsAmf0Size::utf8("")); + + EXPECT_EQ(1+2+6, SrsAmf0Size::str("winlin")); + EXPECT_EQ(1+2+0, SrsAmf0Size::str("")); + + EXPECT_EQ(1+8, SrsAmf0Size::number()); + + EXPECT_EQ(1, SrsAmf0Size::null()); + + EXPECT_EQ(1, SrsAmf0Size::undefined()); + + EXPECT_EQ(1+1, SrsAmf0Size::boolean()); + + // object: empty + if (true) { + int size = 1+3; + SrsAmf0Object o; + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + // object: elem + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); + o.set("age", new SrsAmf0Number(9)); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); + o.set("email", new SrsAmf0Null()); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); + o.set("email", new SrsAmf0Undefined()); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); + o.set("sex", new SrsAmf0Boolean(true)); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + + // array: empty + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + // array: elem + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number(); + o.set("age", new SrsAmf0Number(9)); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null(); + o.set("email", new SrsAmf0Null()); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined(); + o.set("email", new SrsAmf0Undefined()); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean(); + o.set("sex", new SrsAmf0Boolean(true)); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + + // object: array + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); + o.set("args", args); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); + o.set("args", args); + + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray(); + params->set("p1", new SrsAmf0Number(10)); + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params); + o.set("params", params); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + + // array: object + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0Object* args = new SrsAmf0Object(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); + o.set("args", args); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0Object* args = new SrsAmf0Object(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); + o.set("args", args); + + SrsAmf0Object* params = new SrsAmf0Object(); + params->set("p1", new SrsAmf0Number(10)); + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params); + o.set("params", params); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } + + // object: object + if (true) { + int size = 1+3; + SrsAmf0Object o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0Object* args = new SrsAmf0Object(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); + o.set("args", args); + + SrsAmf0Object* params = new SrsAmf0Object(); + params->set("p1", new SrsAmf0Number(10)); + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params); + o.set("params", params); + + EXPECT_EQ(size, SrsAmf0Size::object(&o)); + } + + // array: array + if (true) { + int size = 1+4+3; + SrsAmf0EcmaArray o; + + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); + o.set("name", new SrsAmf0String("winlin")); + + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); + args->set("p0", new SrsAmf0String("function")); + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); + o.set("args", args); + + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray(); + params->set("p1", new SrsAmf0Number(10)); + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params); + o.set("params", params); + + EXPECT_EQ(size, SrsAmf0Size::array(&o)); + } +}