gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] /srv/bzr/gnash/rtmp r9872: add tests for formatEchoRespon


From: rob
Subject: [Gnash-commit] /srv/bzr/gnash/rtmp r9872: add tests for formatEchoResponse(), even though most of them need tweaking still.
Date: Sun, 21 Dec 2008 09:46:15 -0700
User-agent: Bazaar (1.5)

------------------------------------------------------------
revno: 9872
committer: address@hidden
branch nick: rtmp
timestamp: Sun 2008-12-21 09:46:15 -0700
message:
  add tests for formatEchoResponse(), even though most of them need tweaking 
still.
modified:
  testsuite/libnet.all/test_http.cpp
=== modified file 'testsuite/libnet.all/test_http.cpp'
--- a/testsuite/libnet.all/test_http.cpp        2008-12-20 21:03:35 +0000
+++ b/testsuite/libnet.all/test_http.cpp        2008-12-21 16:46:15 +0000
@@ -668,6 +668,16 @@
     }
     // Boolean True response
     boost::shared_ptr<Buffer> hex_res1(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 01 01"));
+    amf::Buffer &buf1 = http.formatEchoResponse(headers1[1]->getName(), 
*headers1[3]);
+    string head1(reinterpret_cast<const char *>(buf1.reference()));
+    const char *ptr1a = reinterpret_cast<const char *>(hex_res1->reference());
+    const char *ptr1b = reinterpret_cast<const char *>(buf1.reference()) + 
head1.size();
+    if (memcmp(ptr1a, ptr1b, hex_res1->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Boolean TRUE)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Boolean TRUE)");
+    }    
+    
 
     // Boolean false request
     boost::shared_ptr<Buffer> hex_req2(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 32 00 00 00 07 0a 00 00 00 01 01 00"));
@@ -682,6 +692,15 @@
     }
     // Boolean False response
     boost::shared_ptr<Buffer> hex_res2(new Buffer("00 00 00 00 00 01 00 0b 2f 
32 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 01 00"));
+    amf::Buffer &buf2 = http.formatEchoResponse(headers2[1]->getName(), 
*headers2[3]);
+    string head2(reinterpret_cast<const char *>(buf2.reference()));
+    const char *ptr2a = reinterpret_cast<const char *>(hex_res2->reference());
+    const char *ptr2b = reinterpret_cast<const char *>(buf2.reference()) + 
head2.size();
+    if (memcmp(ptr2a, ptr2b, hex_res2->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Boolean FALSE)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Boolean FALSE)");
+    }    
 
     // NULL Object request
     boost::shared_ptr<Buffer> hex_req3(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 31 00 00 00 06 0a 00 00 00 01 05"));
@@ -695,6 +714,15 @@
     }
     // NULL Object response
     boost::shared_ptr<Buffer> hex_res3(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 05"));
+    amf::Buffer &buf3 = http.formatEchoResponse(headers3[1]->getName(), 
*headers3[3]);
+    string head3(reinterpret_cast<const char *>(buf3.reference()));
+    const char *ptr3a = reinterpret_cast<const char *>(hex_res3->reference());
+    const char *ptr3b = reinterpret_cast<const char *>(buf3.reference()) + 
head3.size();
+    if (memcmp(ptr3a, ptr3b, hex_res3->allocated()) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(NULL Object)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(NULL Object)");
+    }    
 
     // UNDEFINED Object request
     boost::shared_ptr<Buffer> hex_req4(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 31 00 00 00 06 0a 00 00 00 01 06"));
@@ -708,6 +736,15 @@
     }
     // UNDEFINED Object response
     boost::shared_ptr<Buffer> hex_res4(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 05"));
+    amf::Buffer &buf4 = http.formatEchoResponse(headers4[1]->getName(), 
*headers4[3]);
+    string head4(reinterpret_cast<const char *>(buf4.reference()));
+    const char *ptr4a = reinterpret_cast<const char *>(hex_res4->reference());
+    const char *ptr4b = reinterpret_cast<const char *>(buf4.reference()) + 
head4.size();
+    if (memcmp(ptr4a, ptr4b, hex_res4->allocated()) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(UNDEFINED Object, NULL 
response)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(UNDEFINED Object, NULL 
response)");
+    }    
 
     // Date Object request
     boost::shared_ptr<Buffer> hex_req5(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 31 00 00 00 10 0a 00 00 00 01 0b 42 71 e4 ca 4e 32 d0 00 01 
a4"));
@@ -715,9 +752,13 @@
     if (headers5[3] == 0) {
         runtest.unresolved("HTTP::parseEchoRequest(DATE Object)");
     } else {
+        double swapped = *reinterpret_cast<const 
double*>(headers5[3]->to_reference());
+        swapBytes(&swapped, amf::AMF0_NUMBER_SIZE);
         if ((strncmp(headers5[0]->getName(), "echo", 4) == 0)
             && (strncmp(headers5[1]->getName(), "/1", 2) == 0)
-            && (headers5[3]->getType() == Element::DATE_AMF0)) {
+            && (headers5[3]->getType() == Element::DATE_AMF0)
+            && (headers5[3]->getDataSize() > 0 )
+            && (memcmp(hex_req5->reference()+26, &swapped, 
amf::AMF0_NUMBER_SIZE) == 0)) {
             runtest.pass("HTTP::parseEchoRequest(DATE Object)");
         } else {
             runtest.fail("HTTP::parseEchoRequest(DATE Object)");
@@ -725,6 +766,21 @@
     }
     // Date Object response
     boost::shared_ptr<Buffer> hex_res5(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0b 42 71 e4 ca 4e 
32 d0 00 fe 5c"));
+    if (headers5[3] == 0) {
+        runtest.unresolved("HTTP::formatEchoResponse(DATE Object)");
+    } else {
+        amf::Buffer &buf5 = http.formatEchoResponse(headers5[1]->getName(), 
*headers5[3]);
+        string head5(reinterpret_cast<const char *>(buf5.reference()));
+        const char *ptr5a = reinterpret_cast<const char 
*>(hex_res5->reference()+30);
+//         cerr << hexify(hex_res5->reference()+30, amf::AMF0_NUMBER_SIZE, 
false) << endl;
+        const char *ptr5b = reinterpret_cast<const char *>(buf5.reference() + 
124);
+//         cerr << hexify(buf5.reference() + 124, amf::AMF0_NUMBER_SIZE, 
false) << endl;
+        if (memcmp(ptr5a, ptr5b, amf::AMF0_NUMBER_SIZE) == 0) {
+            runtest.pass("HTTP::formatEchoResponse(DATE Object)");
+        } else {
+            runtest.fail("HTTP::formatEchoResponse(DATE Object)");
+        }
+    }
 
     // Date Array request
     boost::shared_ptr<Buffer> hex_req6(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 32 00 00 00 18 0a 00 00 00 01 0a 00 00 00 02 0b 42 71 e4 ca 
4e 32 d0 00 01 a4 07 00 01"));
@@ -751,12 +807,23 @@
         && (headers7[3]->getType() == Element::STRICT_ARRAY_AMF0)) {
         runtest.pass("HTTP::parseEchoRequest(Undefined Strict Array)");
     } else {
-        
         runtest.fail("HTTP::parseEchoRequest(Undefined Strict Array)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res7(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 00"));
-
+    amf::Buffer &buf7 = http.formatEchoResponse(headers7[1]->getName(), 
*headers7[3]);
+    string head7(reinterpret_cast<const char *>(buf7.reference()));
+    const char *ptr7a = reinterpret_cast<const char *>(hex_res7->reference());
+        cerr << hexify(hex_res7->reference(), hex_res7->allocated(), false) << 
endl;
+    const char *ptr7b = reinterpret_cast<const char *>(buf7.reference()) + 
head7.size();
+        cerr << hexify(buf7.reference() + head7.size(), buf7.allocated() - 
head7.size(), false) << endl;
+        cerr << "Comparing " << hex_res7->allocated() << " bytes" << endl;
+    if (memcmp(ptr7a, ptr7b, hex_res7->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Undefined Strict Array)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Undefined Strict Array)");
+    }
+    
     // Number 1
     // Array request
     boost::shared_ptr<Buffer> hex_req8(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 32 00 00 00 13 0a 00 00 00 01 0a 00 00 00 01 00 3f f0 00 00 
00 00 00 00"));
@@ -782,6 +849,16 @@
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res8(new Buffer("00 00 00 00 00 01 00 0b 2f 
32 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 01 00 
3f f0 00 00 00 00 00 00"));
+    amf::Buffer &buf8 = http.formatEchoResponse(headers8[1]->getName(), 
*headers8[3]);
+    string head8(reinterpret_cast<const char *>(buf8.reference()));
+    const char *ptr8a = reinterpret_cast<const char *>(hex_res8->reference());
+    const char *ptr8b = reinterpret_cast<const char *>(buf8.reference()) + 
head8.size();
+    cerr << "Comparing " << hex_res8->allocated() << " bytes" << endl;
+    if (memcmp(ptr8a, ptr8b, hex_res8->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
1 item)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
1 item)");
+    }
 
     // Number 1,2
     // Array request
@@ -790,13 +867,23 @@
     if ((strncmp(headers9[0]->getName(), "echo", 4) == 0)
         && (strncmp(headers9[1]->getName(), "/3", 2) == 0)
         && (headers9[3]->getType() == Element::STRICT_ARRAY_AMF0)) {
-        runtest.pass("HTTP::parseEchoRequest(Simple Strict Array)");
+        runtest.pass("HTTP::parseEchoRequest(Simple Strict Array of Numbers, 2 
items)");
     } else {
         
-        runtest.fail("HTTP::parseEchoRequest(Simple Strict Array)");
+        runtest.fail("HTTP::parseEchoRequest(Simple Strict Array of Numbers, 2 
items)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res9(new Buffer("00 00 00 00 00 01 00 0b 2f 
33 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 02 00 
3f f0 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00"));
+    amf::Buffer &buf9 = http.formatEchoResponse(headers9[1]->getName(), 
*headers9[3]);
+    string head9(reinterpret_cast<const char *>(buf9.reference()));
+    const char *ptr9a = reinterpret_cast<const char *>(hex_res9->reference());
+    const char *ptr9b = reinterpret_cast<const char *>(buf9.reference()) + 
head9.size();
+    cerr << "Comparing " << hex_res9->allocated() << " bytes" << endl;
+    if (memcmp(ptr9a, ptr9b, hex_res9->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
2 items)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
2 items)");
+    }
 
     // Number 1,2,3
     // Array request
@@ -805,14 +892,23 @@
     if ((strncmp(headers10[0]->getName(), "echo", 4) == 0)
         && (strncmp(headers10[1]->getName(), "/4", 2) == 0)
         && (headers10[3]->getType() == Element::STRICT_ARRAY_AMF0)) {
-        runtest.pass("HTTP::parseEchoRequest(Simple Strict Array)");
+        runtest.pass("HTTP::parseEchoRequest(Simple Strict Array of Numbers, 3 
items)");
     } else {
         
-        runtest.fail("HTTP::parseEchoRequest(Simple Strict Array)");
+        runtest.fail("HTTP::parseEchoRequest(Simple Strict Array of Numbers, 3 
items)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res10(new Buffer("00 00 00 00 00 01 00 0b 2f 
34 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 03 00 
3f f0 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 40 08 00 00 00 00 00 
00"));
-
+    amf::Buffer &buf10 = http.formatEchoResponse(headers10[1]->getName(), 
*headers10[3]);
+    string head10(reinterpret_cast<const char *>(buf10.reference()));
+    const char *ptr10a = reinterpret_cast<const char 
*>(hex_res10->reference());
+    const char *ptr10b = reinterpret_cast<const char *>(buf10.reference()) + 
head10.size();
+    cerr << "Comparing " << hex_res10->allocated() << " bytes" << endl;
+    if (memcmp(ptr10a, ptr10b, hex_res10->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
3 items)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
3 items)");
+    }
 
     // Number 0 Request
     boost::shared_ptr<Buffer> hex_req11(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 31 00 00 00 0e 0a 00 00 00 01 00 00 00 00 00 00 00 00 00"));
@@ -1002,12 +1098,22 @@
     if ((strncmp(headers26[0]->getName(), "echo", 4) == 0)
         && (strncmp(headers26[1]->getName(), "/5", 2) == 0)
         && (headers26[3]->getType() == Element::STRICT_ARRAY_AMF0)) { // 
FIXME: add test for array values
-        runtest.pass("HTTP::parseEchoRequest(Strict Array)");
+        runtest.pass("HTTP::parseEchoRequest(Strict Array of Numbers, 3 
items)");
     } else {        
-        runtest.fail("HTTP::parseEchoRequest(Strict Array)");
+        runtest.fail("HTTP::parseEchoRequest(Strict Array of Numbers, 3 
items)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res26(new Buffer("00 00 00 00 00 01 00 0b 2f 
35 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 03 00 
3f f0 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 0a 00 00 00 02 00 3f f0 00 
00 00 00 00 00 00 40 00 00 00 00 00 00 00"));
+    amf::Buffer &buf26 = http.formatEchoResponse(headers26[1]->getName(), 
*headers26[3]);
+    string head26(reinterpret_cast<const char *>(buf26.reference()));
+    const char *ptr26a = reinterpret_cast<const char 
*>(hex_res26->reference());
+    const char *ptr26b = reinterpret_cast<const char *>(buf26.reference()) + 
head26.size();
+    cerr << "Comparing " << hex_res26->allocated() << " bytes" << endl;
+    if (memcmp(ptr26a, ptr26b, hex_res26->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
3 items)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple Strict Array of Numbers, 
3 items)");
+    }
 
     // Number 1,,,,,,,100
     // Array request
@@ -1020,12 +1126,22 @@
         && (props27[0]->to_number() == 1)
         && (props27[1]->getType() == Element::UNDEFINED_AMF0)
         ) { // FIXME: add test for array values
-        runtest.pass("HTTP::parseEchoRequest(Strict Array)");
+        runtest.pass("HTTP::parseEchoRequest(Strict Array - Number, undefines, 
Number)");
     } else {        
-        runtest.fail("HTTP::parseEchoRequest(Strict Array)");
+        runtest.fail("HTTP::parseEchoRequest(Strict Array - Number, undefines, 
Number)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res27(new Buffer("00 00 00 00 00 01 00 0b 2f 
36 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 08 00 00 00 66 00 
01 30 00 3f f0 00 00 00 00 00 00 00 03 31 30 30 00 40 59 00 00 00 00 00 00 00 
06 6c 65 6e 67 74 68 00 40 59 80 00 00 00 00 00 00 00 09"));
+    amf::Buffer &buf27 = http.formatEchoResponse(headers27[1]->getName(), 
*headers27[3]);
+    string head27(reinterpret_cast<const char *>(buf27.reference()));
+    const char *ptr27a = reinterpret_cast<const char 
*>(hex_res27->reference());
+    const char *ptr27b = reinterpret_cast<const char *>(buf27.reference()) + 
head27.size();
+    cerr << "Comparing " << hex_res27->allocated() << " bytes" << endl;
+    if (memcmp(ptr27a, ptr27b, hex_res27->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple Strict Array - Number, 
undefines, Number)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple Strict Array  - Number, 
undefines, Number)");
+    }
 
     // Array request
     boost::shared_ptr<Buffer> hex_req28(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 37 00 00 00 38 0a 00 00 00 01 08 00 00 00 01 00 06 6c 65 6e 
67 74 68 00 3f f0 00 00 00 00 00 00 00 01 30 00 3f f0 00 00 00 00 00 00 00 03 
6f 6e 65 00 3f f0 00 00 00 00 00 00 00 00 09"));
@@ -1041,12 +1157,22 @@
         && (strcmp(props28[2]->getName(), "one") == 0)
         && (props28[2]->to_number() == 1)
         ) {
-        runtest.pass("HTTP::parseEchoRequest(Strict Array)");
+        runtest.pass("HTTP::parseEchoRequest(ECMA Array, 2 Numbers)");
     } else {        
-        runtest.fail("HTTP::parseEchoRequest(Strict Array)");
+        runtest.fail("HTTP::parseEchoRequest(ECMA Array, 2 Numbers)");
     }
     // Undefined Array response
     boost::shared_ptr<Buffer> hex_res28(new Buffer("00 00 00 00 00 01 00 0b 2f 
37 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 08 00 00 00 01 00 
03 6f 6e 65 00 3f f0 00 00 00 00 00 00 00 01 30 00 3f f0 00 00 00 00 00 00 00 
06 6c 65 6e 67 74 68 00 3f f0 00 00 00 00 00 00 00 00 09"));
+    amf::Buffer &buf28 = http.formatEchoResponse(headers28[1]->getName(), 
*headers28[3]);
+    string head28(reinterpret_cast<const char *>(buf28.reference()));
+    const char *ptr28a = reinterpret_cast<const char 
*>(hex_res28->reference());
+    const char *ptr28b = reinterpret_cast<const char *>(buf28.reference()) + 
head28.size();
+    cerr << "Comparing " << hex_res28->allocated() << " bytes" << endl;
+    if (memcmp(ptr28a, ptr28b, hex_res28->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(ECMA Array, 2 Numbers)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(ECMA Array, 2 Numbers)");
+    }
 
     // NULL String request, ie.. no data
     boost::shared_ptr<Buffer> hex_req29(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 31 00 00 00 08 0a 00 00 00 01 02 00 00"));
@@ -1061,7 +1187,19 @@
     }
     // NULL String response
     boost::shared_ptr<Buffer> hex_res29(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 02 00 00"));
-
+#if 0                           // FIXME: why does this core dump ?
+    amf::Buffer &buf29 = http.formatEchoResponse(headers29[1]->getName(), 
*headers29[3]);
+    string head29(reinterpret_cast<const char *>(buf29.reference()));
+    const char *ptr29a = reinterpret_cast<const char 
*>(hex_res29->reference());
+    const char *ptr29b = reinterpret_cast<const char *>(buf29.reference()) + 
head29.size();
+    cerr << "Comparing " << hex_res29->allocated() << " bytes" << endl;
+    if (memcmp(ptr29a, ptr29b, hex_res29->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(NULL String)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(NULL String)");
+    }
+#endif
+    
     // String request
     // "Hello world!"
     boost::shared_ptr<Buffer> hex_req30(new Buffer(" 00 00 00 00 00 01 00 04 
65 63 68 6f 00 02 2f 32 00 00 00 14 0a 00 00 00 01 02 00 0c 48 65 6c 6c 6f 20 
77 6f 72 6c 64 21"));
@@ -1076,7 +1214,17 @@
     }
     // String response
     boost::shared_ptr<Buffer> hex_res30(new Buffer("00 00 00 00 00 01 00 0b 2f 
32 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 02 00 0c 48 65 6c 
6c 6f 20 77 6f 72 6c 64 21"));
-
+    amf::Buffer &buf30 = http.formatEchoResponse(headers30[1]->getName(), 
*headers30[3]);
+    string head30(reinterpret_cast<const char *>(buf30.reference()));
+    const char *ptr30a = reinterpret_cast<const char 
*>(hex_res30->reference());
+    const char *ptr30b = reinterpret_cast<const char *>(buf30.reference()) + 
head30.size();
+    cerr << "Comparing " << hex_res30->allocated() << " bytes" << endl;
+    if (memcmp(ptr30a, ptr30b, hex_res30->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple String)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple String)");
+    }
+    
     // Array of Strings request
     // test1,test2,test3,test4
     boost::shared_ptr<Buffer> hex_req31(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 33 00 00 00 2a 0a 00 00 00 01 0a 00 00 00 04 02 00 05 74 65 
73 74 31 02 00 05 74 65 73 74 32 02 00 05 74 65 73 74 33 02 00 05 74 65 73 74 
34"));
@@ -1102,7 +1250,16 @@
     
     // Array of Strings response
     boost::shared_ptr<Buffer> hex_res31(new Buffer("00 00 00 00 00 01 00 0b 2f 
33 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 04 02 
00 05 74 65 73 74 31 02 00 05 74 65 73 74 32 02 00 05 74 65 73 74 33 02 00 05 
74 65 73 74 34"));
-
+    amf::Buffer &buf31 = http.formatEchoResponse(headers31[1]->getName(), 
*headers31[3]);
+    string head31(reinterpret_cast<const char *>(buf31.reference()));
+    const char *ptr31a = reinterpret_cast<const char 
*>(hex_res31->reference());
+    const char *ptr31b = reinterpret_cast<const char *>(buf31.reference()) + 
head31.size();
+    cerr << "Comparing " << hex_res31->allocated() << " bytes" << endl;
+    if (memcmp(ptr31a, ptr31b, hex_res31->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(Simple String Array)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(Simple String Array)");
+    }
 
     // Custom class Request
     // [object EchoClass]                    [object.Object]
@@ -1125,6 +1282,17 @@
         }
     }
     boost::shared_ptr<Buffer> hex_res40(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 03 00 05 61 74 74 
72 32 00 3f f0 00 00 00 00 00 00 00 05 61 74 74 72 31 02 00 03 6f 6e 65 00 00 
09"));
+    amf::Buffer &buf40 = http.formatEchoResponse(headers40[1]->getName(), 
*headers40[3]);
+    string head40(reinterpret_cast<const char *>(buf40.reference()));
+    const char *ptr40a = reinterpret_cast<const char 
*>(hex_res40->reference());
+    const char *ptr40b = reinterpret_cast<const char *>(buf40.reference()) + 
head40.size();
+    cerr << "Comparing " << hex_res40->allocated() << " bytes" << endl;
+    if (memcmp(ptr40a, ptr40b, hex_res40->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object CustomClass)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object CustomClass)");
+    }
+    
     // [object EchoClass],[object EchoClass] [object.Object],[object.Object]
     boost::shared_ptr<Buffer> hex_req41(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 32 00 00 00 2e 0a 00 00 00 01 0a 00 00 00 02 03 00 05 61 74 
74 72 32 00 3f f0 00 00 00 00 00 00 00 05 61 74 74 72 31 02 00 03 6f 6e 65 00 
00 09 07 00 01"));
     vector<boost::shared_ptr<amf::Element> > headers41 = 
http.parseEchoRequest(*hex_req41);
@@ -1140,6 +1308,16 @@
         }
     }
     boost::shared_ptr<Buffer> hex_res41(new Buffer("00 00 00 00 00 01 00 0b 2f 
32 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 02 03 
00 05 61 74 74 72 32 00 3f f0 00 00 00 00 00 00 00 05 61 74 74 72 31 02 00 03 
6f 6e 65 00 00 09 07 00 01"));
+    amf::Buffer &buf41 = http.formatEchoResponse(headers41[1]->getName(), 
*headers41[3]);
+    string head41(reinterpret_cast<const char *>(buf41.reference()));
+    const char *ptr41a = reinterpret_cast<const char 
*>(hex_res41->reference());
+    const char *ptr41b = reinterpret_cast<const char *>(buf41.reference()) + 
head41.size();
+    cerr << "Comparing " << hex_res41->allocated() << " bytes" << endl;
+    if (memcmp(ptr41a, ptr41b, hex_res41->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object CustomClass)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object CustomClass)");
+    }
 
     // Remote Class
     // [object RemoteClass]                      [object RemoteClass]
@@ -1158,7 +1336,19 @@
     }
 
     boost::shared_ptr<Buffer> hex_res42(new Buffer("00 00 00 00 00 01 00 0b 2f 
31 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 10 00 27 6f 72 67 
2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 52 
65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 03 6f 
6e 65 00 0a 61 74 74 72 69 62 75 74 65 32 00 40 00 00 00 00 00 00 00 00 00 
09"));
-
+#if 0                           // FIXME: why does this core dump ?
+    amf::Buffer &buf42 = http.formatEchoResponse(headers42[1]->getName(), 
*headers42[3]);
+    string head42(reinterpret_cast<const char *>(buf42.reference()));
+    const char *ptr42a = reinterpret_cast<const char 
*>(hex_res42->reference());
+    const char *ptr42b = reinterpret_cast<const char *>(buf42.reference()) + 
head42.size();
+    cerr << "Comparing " << hex_res42->allocated() << " bytes" << endl;
+    if (memcmp(ptr42a, ptr42b, hex_res42->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object RemoteClass)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object RemoteClass)");
+    }
+#endif
+    
     // An array of RemoteClass objects
     // [object RemoteClass],[object RemoteClass] [object RemoteClass],[object 
RemoteClass]
     boost::shared_ptr<Buffer> hex_req43(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 32 00 00 00 b2 0a 00 00 00 01 0a 00 00 00 02 10 00 27 6f 72 
67 2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 
52 65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 32 00 3f f0 
00 00 00 00 00 00 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 03 6f 6e 65 00 00 
09 10 00 27 6f 72 67 2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 
2e 65 63 68 6f 2e 52 65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 
74 65 32 00 40 00 00 00 00 00 00 00 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 
03 74 77 6f 00 00 09"));
@@ -1175,6 +1365,17 @@
         }
     }
     boost::shared_ptr<Buffer> hex_res43(new Buffer("00 00 00 00 00 01 00 0b 2f 
32 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 0a 00 00 00 02 10 
00 27 6f 72 67 2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 
63 68 6f 2e 52 65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 
31 02 00 03 6f 6e 65 00 0a 61 74 74 72 69 62 75 74 65 32 00 3f f0 00 00 00 00 
00 00 00 00 09 10 00 27 6f 72 67 2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 
62 61 70 70 2e 65 63 68 6f 2e 52 65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 
72 69 62 75 74 65 31 02 00 03 74 77 6f 00 0a 61 74 74 72 69 62 75 74 65 32 00 
40 00 00 00 00 00 00 00 00 00 09"));
+    amf::Buffer &buf43 = http.formatEchoResponse(headers43[1]->getName(), 
*headers43[3]);
+    string head43(reinterpret_cast<const char *>(buf43.reference()));
+    const char *ptr43a = reinterpret_cast<const char 
*>(hex_res43->reference());
+    const char *ptr43b = reinterpret_cast<const char *>(buf43.reference()) + 
head43.size();
+    cerr << "Comparing " << hex_res43->allocated() << " bytes" << endl;
+    if (memcmp(ptr43a, ptr43b, hex_res43->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object RemoteClass Array, 2 
items)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object RemoteClass Array, 2 
items)");
+    }
+
     // [object RemoteClass]                      [object RemoteClass]
     boost::shared_ptr<Buffer> hex_req44(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 33 00 00 00 5b 0a 00 00 00 01 10 00 27 6f 72 67 2e 72 65 64 
35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 52 65 6d 6f 74 
65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 32 00 41 d2 65 80 b4 80 00 
00 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 05 74 68 72 65 65 00 00 09"));
     vector<boost::shared_ptr<amf::Element> > headers44 = 
http.parseEchoRequest(*hex_req44);
@@ -1184,12 +1385,25 @@
         if ((strncmp(headers44[0]->getName(), "echo", 4) == 0)
             && (strncmp(headers44[1]->getName(), "/3", 2) == 0)
             && (headers44[3]->getType() == Element::TYPED_OBJECT_AMF0)) {
-            runtest.pass("HTTP::parseEchoRequest(object RemoteClass Array)");
+            runtest.pass("HTTP::parseEchoRequest(object RemoteClass Array, 2 
items)");
         } else {        
-            runtest.fail("HTTP::parseEchoRequest(object RemoteClass Array)");
+            runtest.fail("HTTP::parseEchoRequest(object RemoteClass Array, 2 
items)");
         }
     }
     boost::shared_ptr<Buffer> hex_res44(new Buffer("00 00 00 00 00 01 00 0b 2f 
33 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 10 00 27 6f 72 67 
2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 52 
65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 05 74 
68 72 65 65 00 0a 61 74 74 72 69 62 75 74 65 32 00 41 d2 65 80 b4 80 00 00 00 
00 09"));
+#if 0                           // FIXME: why does this core dump ?
+    amf::Buffer &buf44 = http.formatEchoResponse(headers44[1]->getName(), 
*headers44[3]);
+    string head44(reinterpret_cast<const char *>(buf44.reference()));
+    const char *ptr44a = reinterpret_cast<const char 
*>(hex_res44->reference());
+    const char *ptr44b = reinterpret_cast<const char *>(buf44.reference()) + 
head44.size();
+    cerr << "Comparing " << hex_res44->allocated() << " bytes" << endl;
+    if (memcmp(ptr44a, ptr44b, hex_res44->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object RemoteClass Array)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object RemoteClass Array)");
+    }
+#endif
+    
     // [object RemoteClass]                      [object RemoteClass]
     boost::shared_ptr<Buffer> hex_req45(new Buffer("00 00 00 00 00 01 00 04 65 
63 68 6f 00 02 2f 34 00 00 00 5a 0a 00 00 00 01 10 00 27 6f 72 67 2e 72 65 64 
35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 52 65 6d 6f 74 
65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 32 00 42 71 3f 8f 4d 00 00 
00 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 04 66 6f 75 72 00 00 09"));
     vector<boost::shared_ptr<amf::Element> > headers45 = 
http.parseEchoRequest(*hex_req45);
@@ -1206,6 +1420,19 @@
     }
 
     boost::shared_ptr<Buffer> hex_res45(new Buffer("00 00 00 00 00 01 00 0b 2f 
34 2f 6f 6e 52 65 73 75 6c 74 00 04 6e 75 6c 6c ff ff ff ff 10 00 27 6f 72 67 
2e 72 65 64 35 2e 73 65 72 76 65 72 2e 77 65 62 61 70 70 2e 65 63 68 6f 2e 52 
65 6d 6f 74 65 43 6c 61 73 73 00 0a 61 74 74 72 69 62 75 74 65 31 02 00 04 66 
6f 75 72 00 0a 61 74 74 72 69 62 75 74 65 32 00 c1 9c 2c c0 00 00 00 00 00 00 
09"));
+#if 0                           // FIXME: why does this core dump ?
+    amf::Buffer &buf45 = http.formatEchoResponse(headers45[1]->getName(), 
*headers45[3]);
+    string head45(reinterpret_cast<const char *>(buf45.reference()));
+    const char *ptr45a = reinterpret_cast<const char 
*>(hex_res45->reference());
+    const char *ptr45b = reinterpret_cast<const char *>(buf45.reference()) + 
head45.size();
+    cerr << "Comparing " << hex_res45->allocated() << " bytes" << endl;
+    if (memcmp(ptr45a, ptr45b, hex_res45->allocated()-1) == 0) {
+        runtest.pass("HTTP::formatEchoResponse(object RemoteClass Array)");
+    } else {
+        runtest.fail("HTTP::formatEchoResponse(object RemoteClass Array)");
+    }
+#endif
+    
     // String test with 40000 characters
     // String test with 70000 characters
     // String test with 1000000 characters


reply via email to

[Prev in Thread] Current Thread [Next in Thread]