lots more green!
This commit is contained in:
parent
c7641f77fc
commit
4efb8ebfca
|
@ -162,6 +162,7 @@ dependencies = [
|
||||||
"radix64",
|
"radix64",
|
||||||
"rand",
|
"rand",
|
||||||
"sha1",
|
"sha1",
|
||||||
|
"simdutf8",
|
||||||
"simple_logger",
|
"simple_logger",
|
||||||
"url",
|
"url",
|
||||||
]
|
]
|
||||||
|
@ -322,6 +323,12 @@ dependencies = [
|
||||||
"digest",
|
"digest",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "simdutf8"
|
||||||
|
version = "0.1.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "simple_logger"
|
name = "simple_logger"
|
||||||
version = "4.2.0"
|
version = "4.2.0"
|
||||||
|
|
|
@ -0,0 +1,514 @@
|
||||||
|
<!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">Hornbeam - <span style="font-size: 1.3em;"><b>Case 10.1.1</b></span> : Pass - <span style="font-size: 0.9em;"><b>7</b> ms @ 2023-08-11T05:15:26.051Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send text message with payload of length 65536 auto-fragmented with <b>autoFragmentSize = 1300</b>.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed text message (with payload as sent and transmitted frame counts as expected). Clean close with normal code.</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">{'OK': [('message', u'**************************************************************** ...', False)]}</span><br/><br/>
|
||||||
|
<i>Observed:</i><br><span class="case_pickle">[('message', u'**************************************************************** ...', 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=289&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: h1HyhL+jt6y3lo74wlyTmw==
|
||||||
|
Sec-WebSocket-Version: 13</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: /eJhxtq03RDXdWrta/TrkriW6dc=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_row"><td>13032</td><td>1</td><td>13032</td></tr>
|
||||||
|
<tr class="stats_row"><td>23557</td><td>1</td><td>23557</td></tr>
|
||||||
|
<tr class="stats_row"><td>28960</td><td>1</td><td>28960</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>6</td><td>65742</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_row"><td>540</td><td>1</td><td>540</td></tr>
|
||||||
|
<tr class="stats_row"><td>1304</td><td>50</td><td>65200</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>53</td><td>65950</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_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>0</td><td>50</td></tr>
|
||||||
|
<tr class="stats_row"><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>52</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323839266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">002 TX FRAME : OPCODE=1, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">003 TX OCTETS: 017e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">004 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">005 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">006 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">007 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">008 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">009 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">010 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">011 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">012 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">013 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">014 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">015 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">016 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">017 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">018 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">019 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">020 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">021 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">022 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">023 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">024 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">025 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">026 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">027 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">028 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">029 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">030 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">031 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">032 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">033 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">034 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">035 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">036 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">037 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">038 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">039 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">040 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">041 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">042 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">043 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">044 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">045 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">046 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">047 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">048 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">049 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">050 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">051 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">052 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">053 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">054 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">055 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">056 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">057 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">058 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">059 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">060 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">061 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">062 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">063 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">064 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">065 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">066 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">067 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">068 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">069 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">070 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">071 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">072 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">073 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">074 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">075 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">076 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">077 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">078 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">079 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">080 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">081 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">082 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">083 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">084 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">085 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">086 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">087 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">088 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">089 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">090 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">091 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">092 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">093 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">094 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">095 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">096 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">097 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">098 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">099 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">100 TX FRAME : OPCODE=0, FIN=False, RSV=0, PAYLOAD-LEN=1300, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">101 TX OCTETS: 007e05142a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">102 TX FRAME : OPCODE=0, FIN=True, RSV=0, PAYLOAD-LEN=536, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">103 TX OCTETS: 807e02182a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 2a2a2a2a2a2a2a2a2a2a2a2a2a2a ...</pre>
|
||||||
|
<pre class="wirelog_kill_after">104 FAIL CONNECTION AFTER 10.000000 sec</pre>
|
||||||
|
<pre class="wirelog_rx_octets">105 RX OCTETS: 81</pre>
|
||||||
|
<pre class="wirelog_rx_octets">106 RX OCTETS: ff00000000000100005a9ed44470b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> b4fe6e70b4fe6e70b4fe6e70b4fe ...</pre>
|
||||||
|
<pre class="wirelog_rx_octets">107 RX OCTETS: 6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> b4fe6e70b4fe6e70b4fe6e70b4fe ...</pre>
|
||||||
|
<pre class="wirelog_rx_octets">108 RX OCTETS: 6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70b4fe6e70</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> b4fe6e70b4fe6e70b4fe6e70b4fe ...</pre>
|
||||||
|
<pre class="wirelog_rx_frame">109 RX FRAME : OPCODE=1, FIN=True, RSV=0, PAYLOAD-LEN=65536, MASKED=True, MASK=3561396564343434</pre>
|
||||||
|
<pre class="wirelog_rx_frame"> **************************************************************** ...</pre>
|
||||||
|
<pre class="wirelog_tx_frame">110 TX FRAME : OPCODE=8, FIN=True, RSV=0, PAYLOAD-LEN=2, MASK=None, PAYLOAD-REPEAT-LEN=None, CHOPSIZE=None, SYNC=False</pre>
|
||||||
|
<pre class="wirelog_tx_frame"> 0x03e8</pre>
|
||||||
|
<pre class="wirelog_tx_octets">111 TX OCTETS: 880203e8</pre>
|
||||||
|
<pre class="wirelog_rx_octets">112 RX OCTETS: 888297a4908b944c</pre>
|
||||||
|
<pre class="wirelog_rx_frame">113 RX FRAME : OPCODE=8, FIN=True, RSV=0, PAYLOAD-LEN=2, MASKED=True, MASK=3937613439303862</pre>
|
||||||
|
<pre class="wirelog_rx_frame"> 0x03e8</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">114 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.1</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.064Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=290&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: Ss7a4eYsFr39cF58rJ86jA==
|
||||||
|
Sec-WebSocket-Version: 13</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: IEq5J+GirKcfmB/9X+O6/ePGEss=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323930266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 290,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=290&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: Ss7a4eYsFr39cF58rJ86jA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: IEq5J+GirKcfmB/9X+O6/ePGEss=\r\n\r\n",
|
||||||
|
"id": "12.1.1",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.064Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323930266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.10</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.092Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=299&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: ix8vnN6dGSRbkARheVUOBg==
|
||||||
|
Sec-WebSocket-Version: 13</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: pd5bZ4HXIySv+9jxy3t14KZ8jnY=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323939266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 299,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=299&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: ix8vnN6dGSRbkARheVUOBg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: pd5bZ4HXIySv+9jxy3t14KZ8jnY=\r\n\r\n",
|
||||||
|
"id": "12.1.10",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.092Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323939266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.11</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.098Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=300&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: XvnuPjmdlEUc8DYdATDzBA==
|
||||||
|
Sec-WebSocket-Version: 13</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: GWq6gAmY/puFjeIP33gMTuFY0g8=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333030266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 300,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=300&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: XvnuPjmdlEUc8DYdATDzBA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: GWq6gAmY/puFjeIP33gMTuFY0g8=\r\n\r\n",
|
||||||
|
"id": "12.1.11",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.098Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333030266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.12</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.101Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=301&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 63Id6U/93ecW9l0VUkj9bQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: nbWS41TklFmEDYtQslBxShyYk+A=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333031266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 301,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=301&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 63Id6U/93ecW9l0VUkj9bQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: nbWS41TklFmEDYtQslBxShyYk+A=\r\n\r\n",
|
||||||
|
"id": "12.1.12",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.101Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333031266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.13</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.104Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=302&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: f3MJbE6zMrt5s1egjPJzPA==
|
||||||
|
Sec-WebSocket-Version: 13</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: IBtLRaFdw2X4OY7gL3mtEryRrDw=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333032266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 302,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=302&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: f3MJbE6zMrt5s1egjPJzPA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: IBtLRaFdw2X4OY7gL3mtEryRrDw=\r\n\r\n",
|
||||||
|
"id": "12.1.13",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.104Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333032266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.14</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.108Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=303&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: jZXFXk4xEfC1uSNwJp4ioA==
|
||||||
|
Sec-WebSocket-Version: 13</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: wnEowi8m3iXYsXTeGlnyKbc3MTo=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333033266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 303,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=303&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: jZXFXk4xEfC1uSNwJp4ioA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: wnEowi8m3iXYsXTeGlnyKbc3MTo=\r\n\r\n",
|
||||||
|
"id": "12.1.14",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.108Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333033266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.15</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.112Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=304&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 7yBXoXoyVsnJFSuF3gikmg==
|
||||||
|
Sec-WebSocket-Version: 13</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: 1D4C1+IgSkln0HX2Za6UC5CwV/E=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333034266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 304,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=304&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 7yBXoXoyVsnJFSuF3gikmg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 1D4C1+IgSkln0HX2Za6UC5CwV/E=\r\n\r\n",
|
||||||
|
"id": "12.1.15",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.112Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333034266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.16</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.116Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=305&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: w2yVj3dfwFHEiwoffpzC9w==
|
||||||
|
Sec-WebSocket-Version: 13</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: g2Ve/HNgRpmm0bMJKLQq9FVqQaI=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333035266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 305,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=305&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: w2yVj3dfwFHEiwoffpzC9w==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: g2Ve/HNgRpmm0bMJKLQq9FVqQaI=\r\n\r\n",
|
||||||
|
"id": "12.1.16",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.116Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333035266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.17</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.119Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=306&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: PyIViO1p3UteIPhCaTEftw==
|
||||||
|
Sec-WebSocket-Version: 13</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: wupccKkd4kEvGQID7myCTWUxea0=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333036266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 306,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=306&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: PyIViO1p3UteIPhCaTEftw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: wupccKkd4kEvGQID7myCTWUxea0=\r\n\r\n",
|
||||||
|
"id": "12.1.17",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.119Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333036266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.18</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.122Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=307&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: bHjII+L8XSLiaGdEwYsUWQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: /sbIUbfNWmOqQtYYD5SnLTphIbo=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333037266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 307,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=307&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: bHjII+L8XSLiaGdEwYsUWQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: /sbIUbfNWmOqQtYYD5SnLTphIbo=\r\n\r\n",
|
||||||
|
"id": "12.1.18",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.122Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333037266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.2</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.068Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=291&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: h8eP4x3AJfjMB4MabxRy7g==
|
||||||
|
Sec-WebSocket-Version: 13</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: VzRwgTddEwYPywzQ3UiIktO3gMI=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323931266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 291,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=291&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: h8eP4x3AJfjMB4MabxRy7g==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: VzRwgTddEwYPywzQ3UiIktO3gMI=\r\n\r\n",
|
||||||
|
"id": "12.1.2",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.068Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323931266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.3</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.072Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=292&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: IZhNP0l6A6jjNJJhXXzmiw==
|
||||||
|
Sec-WebSocket-Version: 13</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: 0sjcUm9vsVolxMGClxBCyljb+i0=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323932266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 292,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=292&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: IZhNP0l6A6jjNJJhXXzmiw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 0sjcUm9vsVolxMGClxBCyljb+i0=\r\n\r\n",
|
||||||
|
"id": "12.1.3",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.072Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323932266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.4</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.074Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 1024, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 240 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=293&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: PBYoLxIgygsw8MHB7S3DEg==
|
||||||
|
Sec-WebSocket-Version: 13</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: AEErIuwvhDsR+opHfz/fikfhtVA=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323933266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 293,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 1024, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 240 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=293&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: PBYoLxIgygsw8MHB7S3DEg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: AEErIuwvhDsR+opHfz/fikfhtVA=\r\n\r\n",
|
||||||
|
"id": "12.1.4",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.074Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323933266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.5</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.077Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 4096, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=294&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: W4+3bjDTdiLIZZ4mKf5RWA==
|
||||||
|
Sec-WebSocket-Version: 13</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: 3gK3MlmON5c9gs9hVp4NKzSrFws=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323934266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 294,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 4096, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=294&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: W4+3bjDTdiLIZZ4mKf5RWA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 3gK3MlmON5c9gs9hVp4NKzSrFws=\r\n\r\n",
|
||||||
|
"id": "12.1.5",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.077Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323934266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.6</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.080Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 8192, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=295&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: g8L4NfqHtn2Xp8C6zG0K2Q==
|
||||||
|
Sec-WebSocket-Version: 13</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: lD0JZSKVGeJIqpF2aKZjuB1kPPM=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323935266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 295,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 8192, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=295&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: g8L4NfqHtn2Xp8C6zG0K2Q==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: lD0JZSKVGeJIqpF2aKZjuB1kPPM=\r\n\r\n",
|
||||||
|
"id": "12.1.6",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.080Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323935266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.7</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.082Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16384, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=296&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: B9ccrYCvIZPt4+pTO6I+/g==
|
||||||
|
Sec-WebSocket-Version: 13</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: IHmXR1Vcra0QfmkovfXgh1gOieY=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323936266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 296,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16384, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=296&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: B9ccrYCvIZPt4+pTO6I+/g==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: IHmXR1Vcra0QfmkovfXgh1gOieY=\r\n\r\n",
|
||||||
|
"id": "12.1.7",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.082Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323936266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.8</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.086Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 32768, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=297&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 74BeY6IjrFXFfQwT8kdztA==
|
||||||
|
Sec-WebSocket-Version: 13</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: LlO5iYyV2/uMXIJX+Tg8NwtjaNc=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323937266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 297,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 32768, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=297&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 74BeY6IjrFXFfQwT8kdztA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: LlO5iYyV2/uMXIJX+Tg8NwtjaNc=\r\n\r\n",
|
||||||
|
"id": "12.1.8",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.086Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323937266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.1.9</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.089Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 65536, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=298&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: kKJuac3tc9fBdjzpUYfrZw==
|
||||||
|
Sec-WebSocket-Version: 13</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: c66faSWjYjyKVwh58GtYoolkJPM=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d323938266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 298,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 65536, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=298&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: kKJuac3tc9fBdjzpUYfrZw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: c66faSWjYjyKVwh58GtYoolkJPM=\r\n\r\n",
|
||||||
|
"id": "12.1.9",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.089Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d323938266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.1</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.127Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=308&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: hK7Hy30XZtbjbv7NfMc4sg==
|
||||||
|
Sec-WebSocket-Version: 13</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: dwtTUPf5IWQ1e4ZMjvDedQ83g1c=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333038266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 308,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=308&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: hK7Hy30XZtbjbv7NfMc4sg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: dwtTUPf5IWQ1e4ZMjvDedQ83g1c=\r\n\r\n",
|
||||||
|
"id": "12.2.1",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.127Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333038266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.10</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.155Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=317&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: jF8OiLPoh8b7m7qzb7zleg==
|
||||||
|
Sec-WebSocket-Version: 13</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: 8C3bg7DcD3ySoR9bnkt/ZHBtQ0A=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333137266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 317,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=317&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: jF8OiLPoh8b7m7qzb7zleg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 8C3bg7DcD3ySoR9bnkt/ZHBtQ0A=\r\n\r\n",
|
||||||
|
"id": "12.2.10",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.155Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333137266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.11</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.157Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=318&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: FsWjBM+7YDS7dRyLz7iZbA==
|
||||||
|
Sec-WebSocket-Version: 13</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: eUb5O0Ru6wqWngaSbtczp99i5dc=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333138266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 318,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=318&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: FsWjBM+7YDS7dRyLz7iZbA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: eUb5O0Ru6wqWngaSbtczp99i5dc=\r\n\r\n",
|
||||||
|
"id": "12.2.11",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.157Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333138266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.12</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.160Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=319&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: ++z9BbWDS0PBE8JZhqSstw==
|
||||||
|
Sec-WebSocket-Version: 13</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: J3XxetIJeZQuAcTTD6lVPeS5M1g=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333139266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 319,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=319&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: ++z9BbWDS0PBE8JZhqSstw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: J3XxetIJeZQuAcTTD6lVPeS5M1g=\r\n\r\n",
|
||||||
|
"id": "12.2.12",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.160Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333139266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.13</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.164Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=320&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 5LrToB10aZ1zo07tB39dTw==
|
||||||
|
Sec-WebSocket-Version: 13</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: 1CNjhPfWM+FFdhMcF+Z2r07ks0k=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333230266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 320,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=320&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 5LrToB10aZ1zo07tB39dTw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 1CNjhPfWM+FFdhMcF+Z2r07ks0k=\r\n\r\n",
|
||||||
|
"id": "12.2.13",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.164Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333230266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.14</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.167Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=321&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: Ol9qKnhAm9Aee0sAKMp5ng==
|
||||||
|
Sec-WebSocket-Version: 13</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: 5QHTg6bqB2SBhTK3e18qtimEACQ=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333231266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 321,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=321&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: Ol9qKnhAm9Aee0sAKMp5ng==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 5QHTg6bqB2SBhTK3e18qtimEACQ=\r\n\r\n",
|
||||||
|
"id": "12.2.14",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.167Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333231266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.15</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.171Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=322&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: FlAJAYTR7x82snurBIqGJQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: V2ydjjc+lHXGEIM4kOnNNp1z/B0=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333232266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 322,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=322&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: FlAJAYTR7x82snurBIqGJQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: V2ydjjc+lHXGEIM4kOnNNp1z/B0=\r\n\r\n",
|
||||||
|
"id": "12.2.15",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.171Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333232266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.16</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.175Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=323&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: QacvO4PUKZEn8xrBjoRg1w==
|
||||||
|
Sec-WebSocket-Version: 13</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: 9aSMnCBmLgqvMQmKnhU8eTrjRTU=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333233266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 323,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=323&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: QacvO4PUKZEn8xrBjoRg1w==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 9aSMnCBmLgqvMQmKnhU8eTrjRTU=\r\n\r\n",
|
||||||
|
"id": "12.2.16",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.175Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333233266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.17</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.178Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=324&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: OOyske8bCXWw7Z14rJx4wA==
|
||||||
|
Sec-WebSocket-Version: 13</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: qgqWUYi4Gzbt93EGZk9O5mJvB/Y=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333234266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 324,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=324&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: OOyske8bCXWw7Z14rJx4wA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: qgqWUYi4Gzbt93EGZk9O5mJvB/Y=\r\n\r\n",
|
||||||
|
"id": "12.2.17",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.178Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333234266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.18</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.182Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=325&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: fuQPfOA5OAVk7OaBErKQsA==
|
||||||
|
Sec-WebSocket-Version: 13</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: djwyqAYdJ5A/NTcmCPHcot7u00c=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333235266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 325,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=325&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: fuQPfOA5OAVk7OaBErKQsA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: djwyqAYdJ5A/NTcmCPHcot7u00c=\r\n\r\n",
|
||||||
|
"id": "12.2.18",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.182Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333235266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.2</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.131Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=309&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: Jaew2PpdRRsvNO1d6sPCeQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: pOv2USACWNERGn3iposu4OBKuiY=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333039266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 309,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=309&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: Jaew2PpdRRsvNO1d6sPCeQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: pOv2USACWNERGn3iposu4OBKuiY=\r\n\r\n",
|
||||||
|
"id": "12.2.2",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.131Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333039266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.3</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.134Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=310&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: uHxMCm3PQKnpGsn9pBCR7g==
|
||||||
|
Sec-WebSocket-Version: 13</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: S6kzA01WGtS8PxaC77scn+HRg3I=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333130266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 310,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=310&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: uHxMCm3PQKnpGsn9pBCR7g==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: S6kzA01WGtS8PxaC77scn+HRg3I=\r\n\r\n",
|
||||||
|
"id": "12.2.3",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.134Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333130266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.4</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.137Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 1024, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 240 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=311&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: fWzRHJy7Kh4S4W6m+7Y6BA==
|
||||||
|
Sec-WebSocket-Version: 13</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: NYyPQr/bT5+9kfCkW3DiWvf7Gx4=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333131266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 311,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 1024, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 240 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=311&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: fWzRHJy7Kh4S4W6m+7Y6BA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: NYyPQr/bT5+9kfCkW3DiWvf7Gx4=\r\n\r\n",
|
||||||
|
"id": "12.2.4",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.137Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333131266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.5</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.140Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 4096, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=312&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: QoxXWUAtSoUzdejAqqQ0NQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: CP+C3LVSC8FvVoqApTXnj2dp2tQ=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333132266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 312,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 4096, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=312&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: QoxXWUAtSoUzdejAqqQ0NQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: CP+C3LVSC8FvVoqApTXnj2dp2tQ=\r\n\r\n",
|
||||||
|
"id": "12.2.5",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.140Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333132266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.6</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.142Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 8192, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=313&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: r5iHxAKKa8v1wz3mmpisXg==
|
||||||
|
Sec-WebSocket-Version: 13</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: 8PWSumdM4H4zCG1XWy6tOy4on4M=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333133266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 313,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 8192, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=313&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: r5iHxAKKa8v1wz3mmpisXg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: 8PWSumdM4H4zCG1XWy6tOy4on4M=\r\n\r\n",
|
||||||
|
"id": "12.2.6",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.142Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333133266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.7</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.145Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16384, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=314&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: JMetZ/rKTQHc5GzPmnuNsw==
|
||||||
|
Sec-WebSocket-Version: 13</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: cFzi6+5qVUDovHUa2lLW5lK2PcU=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333134266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 314,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16384, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=314&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: JMetZ/rKTQHc5GzPmnuNsw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: cFzi6+5qVUDovHUa2lLW5lK2PcU=\r\n\r\n",
|
||||||
|
"id": "12.2.7",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.145Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333134266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.8</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.148Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 32768, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=315&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: NxzfIsEhM8wsF8c319SD1w==
|
||||||
|
Sec-WebSocket-Version: 13</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: RP/YHgACqb9dK41r+VT9vx7/5xM=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333135266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 315,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 32768, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=315&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: NxzfIsEhM8wsF8c319SD1w==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: RP/YHgACqb9dK41r+VT9vx7/5xM=\r\n\r\n",
|
||||||
|
"id": "12.2.8",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.148Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333135266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.2.9</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.151Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 65536, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=316&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: c2tL3yTLQortHkNqX02wEA==
|
||||||
|
Sec-WebSocket-Version: 13</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: OKYUKPHHbPuLkgTwo6DXHr8mQjE=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333136266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 316,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 65536, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=316&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: c2tL3yTLQortHkNqX02wEA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: OKYUKPHHbPuLkgTwo6DXHr8mQjE=\r\n\r\n",
|
||||||
|
"id": "12.2.9",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.151Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333136266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.1</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.186Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=326&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: OUn9u3D2KIsGZCCMX480SQ==
|
||||||
|
Sec-WebSocket-Version: 13</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: vvGIuhlULqJBOOf5GMRZivJart8=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333236266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 326,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=326&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: OUn9u3D2KIsGZCCMX480SQ==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: vvGIuhlULqJBOOf5GMRZivJart8=\r\n\r\n",
|
||||||
|
"id": "12.3.1",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.186Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333236266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.10</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.218Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=335&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: NMppdlfqLJeuarYNPYSwvw==
|
||||||
|
Sec-WebSocket-Version: 13</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: nGWm1rVQZDYanBvi2D0Calvt2gA=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333335266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 335,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=335&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: NMppdlfqLJeuarYNPYSwvw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: nGWm1rVQZDYanBvi2D0Calvt2gA=\r\n\r\n",
|
||||||
|
"id": "12.3.10",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.218Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333335266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.11</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.221Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=336&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: Ov/Vh3sI8lg6nvQoaDrOzg==
|
||||||
|
Sec-WebSocket-Version: 13</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: MoGlPk7k65VFY6ZdLJokNT5aMEI=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333336266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 336,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 8192, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=336&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: Ov/Vh3sI8lg6nvQoaDrOzg==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: MoGlPk7k65VFY6ZdLJokNT5aMEI=\r\n\r\n",
|
||||||
|
"id": "12.3.11",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.221Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333336266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.12</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.224Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=337&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: SnWwIewCwahsgVgCJZrNiA==
|
||||||
|
Sec-WebSocket-Version: 13</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: srNbIKocnRFL3hqyjmFiR1SZ0YM=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333337266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 337,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 16384, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=337&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: SnWwIewCwahsgVgCJZrNiA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: srNbIKocnRFL3hqyjmFiR1SZ0YM=\r\n\r\n",
|
||||||
|
"id": "12.3.12",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.224Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333337266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.13</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.228Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=338&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: IHYRdEbULqowKMxzSai69Q==
|
||||||
|
Sec-WebSocket-Version: 13</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: R14gDSj6i0B0UnFRXjg9aqmW9dI=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333338266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 338,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 32768, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=338&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: IHYRdEbULqowKMxzSai69Q==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: R14gDSj6i0B0UnFRXjg9aqmW9dI=\r\n\r\n",
|
||||||
|
"id": "12.3.13",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.228Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333338266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.14</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.232Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=339&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 33YDdWrIwUU6CpXHf6XiNA==
|
||||||
|
Sec-WebSocket-Version: 13</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: gtldD7Fg/xW9TluXUZIJe/NTD04=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333339266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 339,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 65536, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=339&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 33YDdWrIwUU6CpXHf6XiNA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: gtldD7Fg/xW9TluXUZIJe/NTD04=\r\n\r\n",
|
||||||
|
"id": "12.3.14",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.232Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333339266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,288 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.15</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.235Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=340&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: BwwyiZqmq0iH7fYd4tlPyA==
|
||||||
|
Sec-WebSocket-Version: 13</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: hScAqSvchux3tJd1tfonHTUYdzg=</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">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">True</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 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">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>1</td><td>1</td><td>1</td></tr>
|
||||||
|
<tr class="stats_row"><td>7</td><td>1</td><td>7</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>3</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333430266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,78 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 340,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 256 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=340&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: BwwyiZqmq0iH7fYd4tlPyA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: hScAqSvchux3tJd1tfonHTUYdzg=\r\n\r\n",
|
||||||
|
"id": "12.3.15",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"1": 1,
|
||||||
|
"7": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.235Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333430266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.16</b></span> : Fail - <span style="font-size: 0.9em;"><b>2</b> ms @ 2023-08-11T05:15:26.238Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=341&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: WtiQkXNXQRRDQi3nK3nkCA==
|
||||||
|
Sec-WebSocket-Version: 13</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: H8coz7vb/u3pt00Ki+1BH03873g=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333431266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 341,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 1024 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 2,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=341&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: WtiQkXNXQRRDQi3nK3nkCA==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: H8coz7vb/u3pt00Ki+1BH03873g=\r\n\r\n",
|
||||||
|
"id": "12.3.16",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.238Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333431266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.17</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.241Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=342&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: LuBulo1Nksg2/89jQ0IV0A==
|
||||||
|
Sec-WebSocket-Version: 13</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: t4moPL1mPZguzwOEMI33tcXatBY=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333432266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 342,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 4096 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=342&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: LuBulo1Nksg2/89jQ0IV0A==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: t4moPL1mPZguzwOEMI33tcXatBY=\r\n\r\n",
|
||||||
|
"id": "12.3.17",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.241Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333432266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.18</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.244Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=343&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: UTJVgavyPhPDExjdAbrD1Q==
|
||||||
|
Sec-WebSocket-Version: 13</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: ZhKFFwn2WmRCbGC363d0NeD7/24=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333433266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 343,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 131072, auto-fragment to 32768 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 480 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=343&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: UTJVgavyPhPDExjdAbrD1Q==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: ZhKFFwn2WmRCbGC363d0NeD7/24=\r\n\r\n",
|
||||||
|
"id": "12.3.18",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.244Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333433266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.2</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.190Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=327&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: pJ0MTlYwvaP5xCVpXs2Xvw==
|
||||||
|
Sec-WebSocket-Version: 13</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: sN0w1Ox08kyRYcgfP9Xi722q9Ow=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333237266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 327,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 64, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 60 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=327&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: pJ0MTlYwvaP5xCVpXs2Xvw==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: sN0w1Ox08kyRYcgfP9Xi722q9Ow=\r\n\r\n",
|
||||||
|
"id": "12.3.2",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.190Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333237266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.3</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.193Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=328&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: 96ZCxFQ7nbkMMH9rXmNV3A==
|
||||||
|
Sec-WebSocket-Version: 13</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: L0LlUHHKSvH3htfE+U7mgAFZKzk=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333238266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,77 @@
|
||||||
|
{
|
||||||
|
"agent": "Hornbeam",
|
||||||
|
"behavior": "UNIMPLEMENTED",
|
||||||
|
"behaviorClose": "OK",
|
||||||
|
"case": 328,
|
||||||
|
"closedByMe": true,
|
||||||
|
"createStats": true,
|
||||||
|
"createWirelog": false,
|
||||||
|
"description": "Send 1000 compressed messages each of payload size 256, auto-fragment to 0 octets. Use default permessage-deflate offer.",
|
||||||
|
"droppedByMe": true,
|
||||||
|
"duration": 1,
|
||||||
|
"expectation": "Receive echo'ed messages (with payload as sent). Timeout case after 120 secs.",
|
||||||
|
"expected": {},
|
||||||
|
"expectedClose": {
|
||||||
|
"closeCode": [
|
||||||
|
1000
|
||||||
|
],
|
||||||
|
"closedByMe": true,
|
||||||
|
"requireClean": true
|
||||||
|
},
|
||||||
|
"failedByMe": false,
|
||||||
|
"httpRequest": "GET /runCase?case=328&agent=Hornbeam HTTP/1.1\r\nHost: localhost:9001\r\nUpgrade: websocket\r\nConnection: upgrade\r\nSec-WebSocket-Key: 96ZCxFQ7nbkMMH9rXmNV3A==\r\nSec-WebSocket-Version: 13\r\n\r\n",
|
||||||
|
"httpResponse": "HTTP/1.1 101 Switching Protocols\r\nServer: AutobahnTestSuite/0.8.2-0.10.9\r\nX-Powered-By: AutobahnPython/0.10.9\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: L0LlUHHKSvH3htfE+U7mgAFZKzk=\r\n\r\n",
|
||||||
|
"id": "12.3.3",
|
||||||
|
"isServer": true,
|
||||||
|
"localCloseCode": 1000,
|
||||||
|
"localCloseReason": null,
|
||||||
|
"received": [],
|
||||||
|
"remoteCloseCode": 1000,
|
||||||
|
"remoteCloseReason": null,
|
||||||
|
"reportCompressionRatio": true,
|
||||||
|
"reportTime": true,
|
||||||
|
"result": "Actual events differ from any expected.",
|
||||||
|
"resultClose": "Connection was properly closed",
|
||||||
|
"rxFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"rxOctetStats": {
|
||||||
|
"8": 1,
|
||||||
|
"184": 1
|
||||||
|
},
|
||||||
|
"started": "2023-08-11T05:15:26.193Z",
|
||||||
|
"trafficStats": null,
|
||||||
|
"txFrameStats": {
|
||||||
|
"8": 1
|
||||||
|
},
|
||||||
|
"txOctetStats": {
|
||||||
|
"4": 1,
|
||||||
|
"206": 1
|
||||||
|
},
|
||||||
|
"wasClean": true,
|
||||||
|
"wasCloseHandshakeTimeout": false,
|
||||||
|
"wasNotCleanReason": null,
|
||||||
|
"wasOpenHandshakeTimeout": false,
|
||||||
|
"wasServerConnectionDropTimeout": false,
|
||||||
|
"wirelog": [
|
||||||
|
[
|
||||||
|
"RO",
|
||||||
|
[
|
||||||
|
184,
|
||||||
|
"474554202f72756e436173653f636173653d333238266167656e743d486f726e6265616d20485454502f312e310d0a486f73743a206c6f63616c686f73743a39 ..."
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"TO",
|
||||||
|
[
|
||||||
|
206,
|
||||||
|
"485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e5465737453756974652f302e382e ..."
|
||||||
|
],
|
||||||
|
false
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"WLM",
|
||||||
|
false
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,287 @@
|
||||||
|
<!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_failed">Hornbeam - <span style="font-size: 1.3em;"><b>Case 12.3.4</b></span> : Fail - <span style="font-size: 0.9em;"><b>1</b> ms @ 2023-08-11T05:15:26.197Z</a></p>
|
||||||
|
<p class="case_text_block case_desc"><b>Case Description</b><br/><br/>Send 1000 compressed messages each of payload size 1024, auto-fragment to 0 octets. Use default permessage-deflate offer.</p>
|
||||||
|
<p class="case_text_block case_expect"><b>Case Expectation</b><br/><br/>Receive echo'ed messages (with payload as sent). Timeout case after 240 secs.</p>
|
||||||
|
|
||||||
|
<p class="case_text_block case_outcome">
|
||||||
|
<b>Case Outcome</b><br/><br/>Actual events differ from any expected.<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 /runCase?case=329&agent=Hornbeam HTTP/1.1
|
||||||
|
Host: localhost:9001
|
||||||
|
Upgrade: websocket
|
||||||
|
Connection: upgrade
|
||||||
|
Sec-WebSocket-Key: Xf/mBbKlEiAKkB7hJPY6rw==
|
||||||
|
Sec-WebSocket-Version: 13</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: hoDPAaAGcBGWOA79Cniai+aqSBE=</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">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">True</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 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">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>8</td><td>1</td><td>8</td></tr>
|
||||||
|
<tr class="stats_row"><td>184</td><td>1</td><td>184</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>192</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>4</td><td>1</td><td>4</td></tr>
|
||||||
|
<tr class="stats_row"><td>206</td><td>1</td><td>206</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>2</td><td>210</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>8</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>8</td><td>1</td></tr>
|
||||||
|
<tr class="stats_total"><td>Total</td><td>1</td></tr>
|
||||||
|
</table>
|
||||||
|
<br/><hr/>
|
||||||
|
<h2>Wire Log</h2>
|
||||||
|
<p style="margin-left: 40px; color: #f00;"><i>Wire log after handshake disabled!</i></p>
|
||||||
|
<div id="wirelog">
|
||||||
|
<pre class="wirelog_rx_octets">000 RX OCTETS: 474554202f72756e436173653f636173653d333239266167656e743d486f726e6265616d20485454502f312e310d0a486f73</pre>
|
||||||
|
<pre class="wirelog_rx_octets"> 743a206c6f63616c686f73743a39 ...</pre>
|
||||||
|
<pre class="wirelog_tx_octets">001 TX OCTETS: 485454502f312e312031303120537769746368696e672050726f746f636f6c730d0a5365727665723a204175746f6261686e</pre>
|
||||||
|
<pre class="wirelog_tx_octets"> 5465737453756974652f302e382e ...</pre>
|
||||||
|
<pre class="wirelog_delay">002 WIRELOG DISABLED</pre>
|
||||||
|
<pre class="wirelog_tcp_closed_by_me">003 TCP DROPPED BY ME</pre>
|
||||||
|
</div>
|
||||||
|
<br/><hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue