mirror of
https://github.com/status-im/nim-websock.git
synced 2025-01-12 10:35:03 +00:00
317 lines
13 KiB
HTML
317 lines
13 KiB
HTML
<!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 WebSocket Testsuite"><img src="http://autobahn.ws/static/img/ws_protocol_test_report.png" border="0" width="820" height="46" alt="Autobahn WebSocket Testsuite Report"></img></a></center>
|
|
<center><a href="http://autobahn.ws" title="Autobahn WebSocket"> <img src="http://autobahn.ws/static/img/ws_protocol_test_report_autobahn.png" border="0" width="300" height="68" alt="Autobahn WebSocket"> </img></a></center>
|
|
<br/>
|
|
<p class="case case_ok">websock-secure-client - <span style="font-size: 1.3em;"><b>Case 4.2.5</b></span> : Pass - <span style="font-size: 0.9em;"><b>7</b> ms @ 2021-07-15T20:28:09.039Z</a></p>
|
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send small text message, then send frame with reserved control <b>Opcode = 15</b> and non-empty payload, then send Ping.</p>
|
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Echo for first message is received, but then connection is failed immediately, since reserved opcode frame is used. A Pong is not received.</p>
|
|
|
|
<p class="case_text_block case_outcome">
|
|
<b>Case Outcome</b><br/><br/>Actual events match at least one expected.<br/><br/>
|
|
<i>Expected:</i><br/><span class="case_pickle">{'NON-STRICT': [], 'OK': [('message', u'Hello, world!', False)]}</span><br/><br/>
|
|
<i>Observed:</i><br><span class="case_pickle">[('message', u'Hello, world!', False)]</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 /runCase?case=44&agent=websock-secure-client HTTP/1.1
|
|
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits=15
|
|
Upgrade: websocket
|
|
Host: 127.0.0.1:9002
|
|
Connection: Upgrade
|
|
Sec-Websocket-Version: 13
|
|
Sec-Websocket-Key: 6iYKvuXIZqeuJB37EuQRJA==
|
|
Cache-Control: no-cache</pre>
|
|
<pre class="http_dump">HTTP/1.1 101 Switching Protocols
|
|
Server: AutobahnTestSuite/0.8.2-0.10.9
|
|
X-Powered-By: AutobahnPython/0.10.9
|
|
Upgrade: WebSocket
|
|
Connection: Upgrade
|
|
Sec-WebSocket-Accept: bcph1rKjn5fRgn2uVfor3YfONVc=</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">True</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">False</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">False</td><td class="left">True, iff full WebSocket 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">peer dropped the TCP connection without previous WebSocket closing handshake</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">None</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">None</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>19</td><td>1</td><td>19</td></tr>
|
|
<tr class="stats_row"><td>294</td><td>1</td><td>294</td></tr>
|
|
<tr class="stats_total"><td>Total</td><td>2</td><td>313</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>1</td><td>18</td><td>18</td></tr>
|
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
|
<tr class="stats_total"><td>Total</td><td>19</td><td>224</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>1</td><td>1</td></tr>
|
|
<tr class="stats_total"><td>Total</td><td>1</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>1</td><td>1</td></tr>
|
|
<tr class="stats_row"><td>9</td><td>1</td></tr>
|
|
<tr class="stats_row"><td>15</td><td>1</td></tr>
|
|
<tr class="stats_total"><td>Total</td><td>3</td></tr>
|
|
</table>
|
|
<br/><hr/>
|
|
<h2>Wire Log</h2>
|
|
<div id="wirelog">
|
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d3434266167656e743d776562736f636b2d7365637572652d636c69656e742048</pre>
|
|
<pre class="wirelog_rx_octets"> 5454502f312e310d0a5365632d57 ...</pre>
|
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
|
<pre class="wirelog_tx_frame_sync">002 TX FRAME : OPCODE=1, FIN=True, RSV=0, PAYLOAD-LEN=13, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=1, SYNC=False</pre>
|
|
<pre class="wirelog_tx_frame_sync"> Hello, world!</pre>
|
|
<pre class="wirelog_tx_octets_sync">003 TX OCTETS: 81</pre>
|
|
<pre class="wirelog_tx_frame_sync">004 TX FRAME : OPCODE=15, FIN=True, RSV=0, PAYLOAD-LEN=13, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=1, SYNC=False</pre>
|
|
<pre class="wirelog_tx_frame_sync"> Hello, world!</pre>
|
|
<pre class="wirelog_tx_frame_sync">005 TX FRAME : OPCODE=9, FIN=True, RSV=0, PAYLOAD-LEN=0, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=1, SYNC=False</pre>
|
|
<pre class="wirelog_kill_after">006 FAIL CONNECTION AFTER 1.000000 sec</pre>
|
|
<pre class="wirelog_tx_octets_sync">007 TX OCTETS: 0d</pre>
|
|
<pre class="wirelog_tx_octets_sync">008 TX OCTETS: 48</pre>
|
|
<pre class="wirelog_tx_octets_sync">009 TX OCTETS: 65</pre>
|
|
<pre class="wirelog_tx_octets_sync">010 TX OCTETS: 6c</pre>
|
|
<pre class="wirelog_tx_octets_sync">011 TX OCTETS: 6c</pre>
|
|
<pre class="wirelog_tx_octets_sync">012 TX OCTETS: 6f</pre>
|
|
<pre class="wirelog_tx_octets_sync">013 TX OCTETS: 2c</pre>
|
|
<pre class="wirelog_tx_octets_sync">014 TX OCTETS: 20</pre>
|
|
<pre class="wirelog_tx_octets_sync">015 TX OCTETS: 77</pre>
|
|
<pre class="wirelog_tx_octets_sync">016 TX OCTETS: 6f</pre>
|
|
<pre class="wirelog_tx_octets_sync">017 TX OCTETS: 72</pre>
|
|
<pre class="wirelog_tx_octets_sync">018 TX OCTETS: 6c</pre>
|
|
<pre class="wirelog_tx_octets_sync">019 TX OCTETS: 64</pre>
|
|
<pre class="wirelog_tx_octets_sync">020 TX OCTETS: 21</pre>
|
|
<pre class="wirelog_tx_octets_sync">021 TX OCTETS: 8f</pre>
|
|
<pre class="wirelog_rx_octets">022 RX OCTETS: 818d7e2a750c364f19601106557b115819685f</pre>
|
|
<pre class="wirelog_rx_frame">023 RX FRAME : OPCODE=1, FIN=True, RSV=0, PAYLOAD-LEN=13, MASKED=True, MASK=3765326137353063</pre>
|
|
<pre class="wirelog_rx_frame"> Hello, world!</pre>
|
|
<pre class="wirelog_tx_octets_sync">024 TX OCTETS: 0d</pre>
|
|
<pre class="wirelog_tx_octets_sync">025 TX OCTETS: 48</pre>
|
|
<pre class="wirelog_tcp_closed_by_peer">026 TCP DROPPED BY PEER</pre>
|
|
</div>
|
|
<br/><hr/>
|
|
</body>
|
|
</html>
|