winlin

amf0 utest: refine amf0 size and finish utest.

@@ -24,6 +24,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -24,6 +24,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 24
25 VOID TEST(AMF0Test, Size) 25 VOID TEST(AMF0Test, Size)
26 { 26 {
  27 + // size of elem
27 EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin")); 28 EXPECT_EQ(2+6, SrsAmf0Size::utf8("winlin"));
28 EXPECT_EQ(2+0, SrsAmf0Size::utf8("")); 29 EXPECT_EQ(2+0, SrsAmf0Size::utf8(""));
29 30
@@ -38,48 +39,223 @@ VOID TEST(AMF0Test, Size) @@ -38,48 +39,223 @@ VOID TEST(AMF0Test, Size)
38 39
39 EXPECT_EQ(1+1, SrsAmf0Size::boolean()); 40 EXPECT_EQ(1+1, SrsAmf0Size::boolean());
40 41
  42 + // object: empty
41 if (true) { 43 if (true) {
42 int size = 1+3; 44 int size = 1+3;
43 - SrsAmf0Object obj; 45 + SrsAmf0Object o;
44 46
45 - EXPECT_EQ(size, SrsAmf0Size::object(&obj)); 47 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
46 } 48 }
  49 + // object: elem
47 if (true) { 50 if (true) {
48 int size = 1+3; 51 int size = 1+3;
49 - SrsAmf0Object obj; 52 + SrsAmf0Object o;
50 53
51 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 54 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
52 - obj.set("name", new SrsAmf0String("winlin")); 55 + o.set("name", new SrsAmf0String("winlin"));
53 56
54 - EXPECT_EQ(size, SrsAmf0Size::object(&obj)); 57 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
55 } 58 }
  59 + if (true) {
  60 + int size = 1+3;
  61 + SrsAmf0Object o;
  62 +
  63 + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
  64 + o.set("age", new SrsAmf0Number(9));
  65 +
  66 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  67 + }
  68 + if (true) {
  69 + int size = 1+3;
  70 + SrsAmf0Object o;
  71 +
  72 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
  73 + o.set("email", new SrsAmf0Null());
  74 +
  75 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  76 + }
  77 + if (true) {
  78 + int size = 1+3;
  79 + SrsAmf0Object o;
  80 +
  81 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
  82 + o.set("email", new SrsAmf0Undefined());
56 83
  84 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  85 + }
  86 + if (true) {
  87 + int size = 1+3;
  88 + SrsAmf0Object o;
  89 +
  90 + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
  91 + o.set("sex", new SrsAmf0Boolean(true));
  92 +
  93 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  94 + }
  95 +
  96 + // array: empty
57 if (true) { 97 if (true) {
58 int size = 1+4+3; 98 int size = 1+4+3;
59 - SrsAmf0EcmaArray arr; 99 + SrsAmf0EcmaArray o;
60 100
61 - EXPECT_EQ(size, SrsAmf0Size::array(&arr)); 101 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
62 } 102 }
  103 + // array: elem
63 if (true) { 104 if (true) {
64 int size = 1+4+3; 105 int size = 1+4+3;
65 - SrsAmf0EcmaArray arr; 106 + SrsAmf0EcmaArray o;
66 107
67 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 108 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
68 - arr.set("name", new SrsAmf0String("winlin")); 109 + o.set("name", new SrsAmf0String("winlin"));
  110 +
  111 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  112 + }
  113 + if (true) {
  114 + int size = 1+4+3;
  115 + SrsAmf0EcmaArray o;
  116 +
  117 + size += SrsAmf0Size::utf8("age")+SrsAmf0Size::number();
  118 + o.set("age", new SrsAmf0Number(9));
  119 +
  120 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  121 + }
  122 + if (true) {
  123 + int size = 1+4+3;
  124 + SrsAmf0EcmaArray o;
  125 +
  126 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::null();
  127 + o.set("email", new SrsAmf0Null());
  128 +
  129 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  130 + }
  131 + if (true) {
  132 + int size = 1+4+3;
  133 + SrsAmf0EcmaArray o;
  134 +
  135 + size += SrsAmf0Size::utf8("email")+SrsAmf0Size::undefined();
  136 + o.set("email", new SrsAmf0Undefined());
69 137
70 - EXPECT_EQ(size, SrsAmf0Size::array(&arr)); 138 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
71 } 139 }
72 if (true) { 140 if (true) {
73 int size = 1+4+3; 141 int size = 1+4+3;
74 - SrsAmf0EcmaArray arr; 142 + SrsAmf0EcmaArray o;
  143 +
  144 + size += SrsAmf0Size::utf8("sex")+SrsAmf0Size::boolean();
  145 + o.set("sex", new SrsAmf0Boolean(true));
  146 +
  147 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  148 + }
  149 +
  150 + // object: array
  151 + if (true) {
  152 + int size = 1+3;
  153 + SrsAmf0Object o;
75 154
76 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 155 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
77 - arr.set("name", new SrsAmf0String("winlin")); 156 + o.set("name", new SrsAmf0String("winlin"));
  157 +
  158 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  159 + args->set("p0", new SrsAmf0String("function"));
  160 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  161 + o.set("args", args);
  162 +
  163 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  164 + }
  165 + if (true) {
  166 + int size = 1+3;
  167 + SrsAmf0Object o;
  168 +
  169 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  170 + o.set("name", new SrsAmf0String("winlin"));
  171 +
  172 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  173 + args->set("p0", new SrsAmf0String("function"));
  174 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  175 + o.set("args", args);
  176 +
  177 + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
  178 + params->set("p1", new SrsAmf0Number(10));
  179 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
  180 + o.set("params", params);
  181 +
  182 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  183 + }
  184 +
  185 + // array: object
  186 + if (true) {
  187 + int size = 1+4+3;
  188 + SrsAmf0EcmaArray o;
  189 +
  190 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  191 + o.set("name", new SrsAmf0String("winlin"));
  192 +
  193 + SrsAmf0Object* args = new SrsAmf0Object();
  194 + args->set("p0", new SrsAmf0String("function"));
  195 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
  196 + o.set("args", args);
  197 +
  198 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  199 + }
  200 + if (true) {
  201 + int size = 1+4+3;
  202 + SrsAmf0EcmaArray o;
  203 +
  204 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  205 + o.set("name", new SrsAmf0String("winlin"));
78 206
79 SrsAmf0Object* args = new SrsAmf0Object(); 207 SrsAmf0Object* args = new SrsAmf0Object();
  208 + args->set("p0", new SrsAmf0String("function"));
80 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); 209 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
81 - arr.set("args", args); 210 + o.set("args", args);
  211 +
  212 + SrsAmf0Object* params = new SrsAmf0Object();
  213 + params->set("p1", new SrsAmf0Number(10));
  214 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
  215 + o.set("params", params);
  216 +
  217 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
  218 + }
  219 +
  220 + // object: object
  221 + if (true) {
  222 + int size = 1+3;
  223 + SrsAmf0Object o;
  224 +
  225 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  226 + o.set("name", new SrsAmf0String("winlin"));
  227 +
  228 + SrsAmf0Object* args = new SrsAmf0Object();
  229 + args->set("p0", new SrsAmf0String("function"));
  230 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
  231 + o.set("args", args);
  232 +
  233 + SrsAmf0Object* params = new SrsAmf0Object();
  234 + params->set("p1", new SrsAmf0Number(10));
  235 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::object(params);
  236 + o.set("params", params);
  237 +
  238 + EXPECT_EQ(size, SrsAmf0Size::object(&o));
  239 + }
  240 +
  241 + // array: array
  242 + if (true) {
  243 + int size = 1+4+3;
  244 + SrsAmf0EcmaArray o;
  245 +
  246 + size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
  247 + o.set("name", new SrsAmf0String("winlin"));
  248 +
  249 + SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
  250 + args->set("p0", new SrsAmf0String("function"));
  251 + size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
  252 + o.set("args", args);
  253 +
  254 + SrsAmf0EcmaArray* params = new SrsAmf0EcmaArray();
  255 + params->set("p1", new SrsAmf0Number(10));
  256 + size += SrsAmf0Size::utf8("params")+SrsAmf0Size::array(params);
  257 + o.set("params", params);
82 258
83 - EXPECT_EQ(size, SrsAmf0Size::array(&arr)); 259 + EXPECT_EQ(size, SrsAmf0Size::array(&o));
84 } 260 }
85 } 261 }