<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8" />
      <style lang="css">
body {
   background-color: #F4F4F4;
   color: #333;
   font-family: Segoe UI,Tahoma,Arial,Verdana,sans-serif;
}

p#intro {
   font-family: Cambria,serif;
   font-size: 1.1em;
   color: #444;
}

p#intro a {
   color: #444;
}

p#intro a:visited {
   color: #444;
}

.block {
   background-color: #e0e0e0;
   padding: 16px;
   margin: 20px;
}

p.case_text_block {
   border-radius: 10px;
   border: 1px solid #aaa;
   padding: 16px;
   margin: 4px 20px;
   color: #444;
}

p.case_desc {
}

p.case_expect {
}

p.case_outcome {
}

p.case_closing_beh {
}

pre.http_dump {
   font-family: Consolas, "Courier New", monospace;
   font-size: 0.8em;
   color: #333;
   border-radius: 10px;
   border: 1px solid #aaa;
   padding: 16px;
   margin: 4px 20px;
}

span.case_pickle {
   font-family: Consolas, "Courier New", monospace;
   font-size: 0.7em;
   color: #000;
}

p#case_result,p#close_result {
   border-radius: 10px;
   background-color: #e8e2d1;
   padding: 20px;
   margin: 20px;
}

h1 {
   margin-left: 60px;
}

h2 {
   margin-left: 30px;
}

h3 {
   margin-left: 50px;
}

a.up {
   float: right;
   border-radius: 16px;
   margin-top: 16px;
   margin-bottom: 10px;

   margin-right: 30px;
   padding-left: 10px;
   padding-right: 10px;
   padding-bottom: 2px;
   padding-top: 2px;
   background-color: #666;
   color: #fff;
   text-decoration: none;
   font-size: 0.8em;
}

a.up:visited {
}

a.up:hover {
   background-color: #028ec9;
}
</style>
      <style lang="css">
p.case {
   color: #fff;
   border-radius: 10px;
   padding: 20px;
   margin: 12px 20px;
   font-size: 1.2em;
}

p.case_ok {
   background-color: #0a0;
}

p.case_non_strict, p.case_no_close {
   background-color: #9a0;
}

p.case_info {
   background-color: #4095BF;
}

p.case_failed {
   background-color: #900;
}

table {
   border-collapse: collapse;
   border-spacing: 0px;
   margin-left: 80px;
   margin-bottom: 12px;
   margin-top: 0px;
}

td
{
   margin: 0;
   font-size: 0.8em;
   border: 1px #fff solid;
   padding-top: 6px;
   padding-bottom: 6px;
   padding-left: 16px;
   padding-right: 16px;
   text-align: right;
}

td.right {
   text-align: right;
}

td.left {
   text-align: left;
}

tr.stats_header {
   color: #eee;
   background-color: #000;
}

tr.stats_row {
   color: #000;
   background-color: #fc3;
}

tr.stats_total {
   color: #fff;
   background-color: #888;
}

div#wirelog {
   margin-top: 20px;
   margin-bottom: 80px;
}

pre.wirelog_rx_octets {color: #aaa; margin: 0; background-color: #060; padding: 2px;}
pre.wirelog_tx_octets {color: #aaa; margin: 0; background-color: #600; padding: 2px;}
pre.wirelog_tx_octets_sync {color: #aaa; margin: 0; background-color: #606; padding: 2px;}

pre.wirelog_rx_frame {color: #fff; margin: 0; background-color: #0a0; padding: 2px;}
pre.wirelog_tx_frame {color: #fff; margin: 0; background-color: #a00; padding: 2px;}
pre.wirelog_tx_frame_sync {color: #fff; margin: 0; background-color: #a0a; padding: 2px;}

pre.wirelog_delay {color: #fff; margin: 0; background-color: #000; padding: 2px;}
pre.wirelog_kill_after {color: #fff; margin: 0; background-color: #000; padding: 2px;}

pre.wirelog_tcp_closed_by_me {color: #fff; margin: 0; background-color: #008; padding: 2px;}
pre.wirelog_tcp_closed_by_peer {color: #fff; margin: 0; background-color: #000; padding: 2px;}
</style>
   </head>
   <body>
      <a name="top"></a>
      <br/>
      <center><a href="http://autobahn.ws/testsuite" title="Autobahn WebSockets Testsuite"><img src="http://autobahn.ws/static/img/ws_protocol_test_report.png"          border="0" width="820" height="46" alt="Autobahn WebSockets Testsuite Report"></img></a></center>
      <center><a href="http://autobahn.ws"           title="Autobahn WebSockets">          <img src="http://autobahn.ws/static/img/ws_protocol_test_report_autobahn.png" border="0" width="300" height="68" alt="Autobahn WebSockets">                 </img></a></center>
      <br/>
      <p class="case case_ok">Crossbar.io - <span style="font-size: 1.3em;"><b>Case 9.2.4</b></span> : Pass - <span style="font-size: 0.9em;"><b>119</b> ms @ 2015-11-06T15:56:11.853Z</a></p>
      <p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send binary message message with payload of length 4 * 2**20 (4M).</p>
      <p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed binary message (with payload as sent).</p>

      <p class="case_text_block case_outcome">
         <b>Case Outcome</b><br/><br/>Received binary message of length 4194304.<br/><br/>
         <i>Expected:</i><br/><span class="case_pickle">{}</span><br/><br/>
         <i>Observed:</i><br><span class="case_pickle">[]</span>
      </p>
      <p class="case_text_block case_closing_beh"><b>Case Closing Behavior</b><br/><br/>Connection was properly closed (OK)</p>
      <br/><hr/>
      <h2>Opening Handshake</h2>
      <pre class="http_dump">GET / HTTP/1.1
User-Agent: AutobahnTestSuite/0.7.2-0.10.9
Host: 127.0.0.1:8080
Upgrade: WebSocket
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Sec-WebSocket-Key: wVKIJuKj5o3ynXSyrB4lZA==
Sec-WebSocket-Version: 13</pre>
      <pre class="http_dump">HTTP/1.1 101 Switching Protocols
Server: Crossbar/0.11.1
X-Powered-By: AutobahnPython/0.11.0
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: DMNALQz4XVH0Ui3PcBff8tQPvgQ=</pre>
      <br/><hr/>
      <h2>Closing Behavior</h2>
      <table>
         <tr class="stats_header"><td>Key</td><td class="left">Value</td><td class="left">Description</td></tr>
         <tr class="stats_row"><td>isServer</td><td class="left">False</td><td class="left">True, iff I (the fuzzer) am a server, and the peer is a client.</td></tr>
         <tr class="stats_row"><td>closedByMe</td><td class="left">True</td><td class="left">True, iff I have initiated closing handshake (that is, did send close first).</td></tr>
         <tr class="stats_row"><td>failedByMe</td><td class="left">False</td><td class="left">True, iff I have failed the WS connection (i.e. due to protocol error). Failing can be either by initiating closing handshake or brutal drop TCP.</td></tr>
         <tr class="stats_row"><td>droppedByMe</td><td class="left">False</td><td class="left">True, iff I dropped the TCP connection.</td></tr>
         <tr class="stats_row"><td>wasClean</td><td class="left">True</td><td class="left">True, iff full WebSockets closing handshake was performed (close frame sent and received) _and_ the server dropped the TCP (which is its responsibility).</td></tr>
         <tr class="stats_row"><td>wasNotCleanReason</td><td class="left">None</td><td class="left">When wasClean == False, the reason what happened.</td></tr>
         <tr class="stats_row"><td>wasServerConnectionDropTimeout</td><td class="left">False</td><td class="left">When we are a client, and we expected the server to drop the TCP, but that didn't happen in time, this gets True.</td></tr>
         <tr class="stats_row"><td>wasOpenHandshakeTimeout</td><td class="left">False</td><td class="left">When performing the opening handshake, but the peer did not finish in time, this gets True.</td></tr>
         <tr class="stats_row"><td>wasCloseHandshakeTimeout</td><td class="left">False</td><td class="left">When we initiated a closing handshake, but the peer did not respond in time, this gets True.</td></tr>
         <tr class="stats_row"><td>localCloseCode</td><td class="left">1000</td><td class="left">The close code I sent in close frame (if any).</td></tr>
         <tr class="stats_row"><td>localCloseReason</td><td class="left">None</td><td class="left">The close reason I sent in close frame (if any).</td></tr>
         <tr class="stats_row"><td>remoteCloseCode</td><td class="left">1000</td><td class="left">The close code the peer sent me in close frame (if any).</td></tr>
         <tr class="stats_row"><td>remoteCloseReason</td><td class="left">None</td><td class="left">The close reason the peer sent me in close frame (if any).</td></tr>
      </table>      <br/><hr/>
      <h2>Wire Statistics</h2>
      <h3>Octets Received by Chop Size</h3>
      <table>
         <tr class="stats_header"><td>Chop Size</td><td>Count</td><td>Octets</td></tr>
         <tr class="stats_row"><td>4</td><td>1</td><td>4</td></tr>
         <tr class="stats_row"><td>10</td><td>1</td><td>10</td></tr>
         <tr class="stats_row"><td>191</td><td>1</td><td>191</td></tr>
         <tr class="stats_row"><td>65536</td><td>64</td><td>4194304</td></tr>
         <tr class="stats_total"><td>Total</td><td>67</td><td>4194509</td></tr>
      </table>
      <h3>Octets Transmitted by Chop Size</h3>
      <table>
         <tr class="stats_header"><td>Chop Size</td><td>Count</td><td>Octets</td></tr>
         <tr class="stats_row"><td>8</td><td>1</td><td>8</td></tr>
         <tr class="stats_row"><td>240</td><td>1</td><td>240</td></tr>
         <tr class="stats_row"><td>4194318</td><td>1</td><td>4194318</td></tr>
         <tr class="stats_total"><td>Total</td><td>3</td><td>4194566</td></tr>
      </table>
      <h3>Frames Received by Opcode</h3>
      <table>
         <tr class="stats_header"><td>Opcode</td><td>Count</td></tr>
         <tr class="stats_row"><td>2</td><td>1</td></tr>
         <tr class="stats_row"><td>8</td><td>1</td></tr>
         <tr class="stats_total"><td>Total</td><td>2</td></tr>
      </table>
      <h3>Frames Transmitted by Opcode</h3>
      <table>
         <tr class="stats_header"><td>Opcode</td><td>Count</td></tr>
         <tr class="stats_row"><td>2</td><td>1</td></tr>
         <tr class="stats_row"><td>8</td><td>1</td></tr>
         <tr class="stats_total"><td>Total</td><td>2</td></tr>
      </table>
      <br/><hr/>
      <h2>Wire Log</h2>
      <div id="wirelog">
         <pre class="wirelog_tx_octets">000 TX OCTETS: 474554202f20485454502f312e310d0a557365722d4167656e743a204175746f6261686e5465737453756974652f302e372e</pre>
         <pre class="wirelog_tx_octets">               322d302e31302e390d0a486f7374 ...</pre>
         <pre class="wirelog_rx_octets">001 RX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a2043726f7373626172</pre>
         <pre class="wirelog_rx_octets">               2f302e31312e310d0a582d506f77 ...</pre>
         <pre class="wirelog_kill_after">002 CLOSE CONNECTION AFTER 10.000000 sec</pre>
         <pre class="wirelog_tx_frame">003 TX FRAME : OPCODE=8, FIN=True, RSV=0, PAYLOAD-LEN=2, MASK=84eb7867, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
         <pre class="wirelog_tx_frame">               0x03e8</pre>
         <pre class="wirelog_tx_octets">004 TX OCTETS: 888284eb78678703</pre>
         <pre class="wirelog_rx_octets">005 RX OCTETS: 880203e8</pre>
         <pre class="wirelog_rx_frame">006 RX FRAME : OPCODE=8, FIN=True, RSV=0, PAYLOAD-LEN=2, MASKED=False, MASK=None</pre>
         <pre class="wirelog_rx_frame">               0x03e8</pre>
         <pre class="wirelog_tcp_closed_by_peer">007 TCP DROPPED BY PEER</pre>
      </div>
      <br/><hr/>
   </body>
</html>
