2021-07-16 08:05:39 +07:00
<!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 / >
2024-01-23 04:20:33 +00:00
< p class = "case case_ok" > websock-secure-client - < span style = "font-size: 1.3em;" > < b > Case 12.3.1< / b > < / span > : Pass - < span style = "font-size: 0.9em;" > < b > 173< / b > ms @ 2024-01-23T03:50:53.652Z< / a > < / p >
2021-07-16 08:05:39 +07:00
< 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 / > Ok, received all echo'ed messages in time.< 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=websock-secure-client HTTP/1.1
Sec-Websocket-Extensions: permessage-deflate; client_max_window_bits=15
Upgrade: websocket
Host: 127.0.0.1:9002
Connection: Upgrade
Sec-Websocket-Version: 13
2024-01-23 04:20:33 +00:00
Sec-Websocket-Key: HZO9W60+t0Xa28paQu74vg==
2021-07-16 08:05:39 +07:00
Cache-Control: no-cache< / pre >
< pre class = "http_dump" > HTTP/1.1 101 Switching Protocols
Server: AutobahnTestSuite/0.8.2-0.10.9
X-Powered-By: AutobahnPython/0.10.9
Upgrade: WebSocket
Connection: Upgrade
2024-01-23 04:20:33 +00:00
Sec-WebSocket-Accept: bpoNPtPVnKEyHw2GKjXKEMa05l4=
2021-07-16 08:05:39 +07:00
Sec-WebSocket-Extensions: permessage-deflate< / 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 > 22< / td > < td > 1000< / td > < td > 22000< / td > < / tr >
< tr class = "stats_row" > < td > 295< / td > < td > 1< / td > < td > 295< / td > < / tr >
< tr class = "stats_total" > < td > Total< / td > < td > 1002< / td > < td > 22303< / 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 > 6< / td > < td > 1< / td > < td > 6< / td > < / tr >
< tr class = "stats_row" > < td > 7< / td > < td > 14< / td > < td > 98< / td > < / tr >
< tr class = "stats_row" > < td > 8< / td > < td > 7< / td > < td > 56< / td > < / tr >
< tr class = "stats_row" > < td > 9< / td > < td > 23< / td > < td > 207< / td > < / tr >
< tr class = "stats_row" > < td > 10< / td > < td > 33< / td > < td > 330< / td > < / tr >
< tr class = "stats_row" > < td > 11< / td > < td > 75< / td > < td > 825< / td > < / tr >
< tr class = "stats_row" > < td > 12< / td > < td > 144< / td > < td > 1728< / td > < / tr >
< tr class = "stats_row" > < td > 13< / td > < td > 174< / td > < td > 2262< / td > < / tr >
< tr class = "stats_row" > < td > 14< / td > < td > 178< / td > < td > 2492< / td > < / tr >
< tr class = "stats_row" > < td > 15< / td > < td > 156< / td > < td > 2340< / td > < / tr >
< tr class = "stats_row" > < td > 16< / td > < td > 104< / td > < td > 1664< / td > < / tr >
< tr class = "stats_row" > < td > 17< / td > < td > 43< / td > < td > 731< / td > < / tr >
< tr class = "stats_row" > < td > 18< / td > < td > 26< / td > < td > 468< / td > < / tr >
< tr class = "stats_row" > < td > 19< / td > < td > 8< / td > < td > 152< / td > < / tr >
< tr class = "stats_row" > < td > 20< / td > < td > 14< / td > < td > 280< / td > < / tr >
< tr class = "stats_row" > < td > 252< / td > < td > 1< / td > < td > 252< / td > < / tr >
< tr class = "stats_total" > < td > Total< / td > < td > 1002< / td > < td > 13895< / td > < / tr >
< / table >
< h3 > Frames Received by Opcode< / h3 >
< table >
< tr class = "stats_header" > < td > Opcode< / td > < td > Count< / td > < / tr >
< tr class = "stats_row" > < td > 2< / td > < td > 1000< / td > < / tr >
< tr class = "stats_row" > < td > 8< / td > < td > 1< / td > < / tr >
< tr class = "stats_total" > < td > Total< / td > < td > 1001< / td > < / tr >
< / table >
< h3 > Frames Transmitted by Opcode< / h3 >
< table >
< tr class = "stats_header" > < td > Opcode< / td > < td > Count< / td > < / tr >
< tr class = "stats_row" > < td > 2< / td > < td > 1000< / td > < / tr >
< tr class = "stats_row" > < td > 8< / td > < td > 1< / td > < / tr >
< tr class = "stats_total" > < td > Total< / td > < td > 1001< / td > < / tr >
< / table >
< br / > < hr / >
< h2 > Wire Log< / h2 >
< div id = "wirelog" >
< pre class = "wirelog_rx_octets" > 000 RX OCTETS: 474554202f72756e436173653f636173653d333338266167656e743d776562736f636b2d7365637572652d636c69656e7420< / pre >
< pre class = "wirelog_rx_octets" > 485454502f312e310d0a5365632d ...< / 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_kill_after" > 003 CLOSE CONNECTION AFTER 60.000000 sec< / pre >
< pre class = "wirelog_delay" > 004 WIRELOG ENABLED< / pre >
< pre class = "wirelog_tx_frame" > 005 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" > 006 TX OCTETS: 880203e8< / pre >
2024-01-23 04:20:33 +00:00
< pre class = "wirelog_rx_octets" > 007 RX OCTETS: 88826a00017669e8< / pre >
< pre class = "wirelog_rx_frame" > 008 RX FRAME : OPCODE=8, FIN=True, RSV=0, PAYLOAD-LEN=2, MASKED=True, MASK=3661303030313736< / pre >
2021-07-16 08:05:39 +07:00
< pre class = "wirelog_rx_frame" > 0x03e8< / pre >
< pre class = "wirelog_tcp_closed_by_me" > 009 TCP DROPPED BY ME< / pre >
< / div >
< br / > < hr / >
< / body >
< / html >