v4 / vlib / net / http / h2spec / h2spec_expected_failures.txt
59 lines · 59 sloc · 4.39 KB · 19d2c622078c21ad9a14cfa7a30fdd42f67cd01c
Raw
# h2spec known-failure baseline for the net.http HTTP/2 server.
#
# One case ID per line, format " :: " exactly as emitted by
# the JUnit parser in run_h2spec.sh. Lines starting with # are comments.
#
# This is the set of h2spec cases the V server does NOT yet pass. CI fails only on
# a REGRESSION (a case not listed here that newly fails). When a listed case starts
# passing, run_h2spec.sh warns so the line can be removed and the gate tightened.
#
# Generated with h2spec v2.6.0 against the net.http server at this branch's base
# (146 tests: 109 pass, 37 fail). The set was identical across four runs (h2spec
# --timeout 2 and --timeout 5, two each) — stable. NOTE: a handful of OTHER h2spec
# cases (CONTINUATION sequencing, unknown error codes) are timing-flaky at h2spec's
# 2s default — they wait for the server's GOAWAY/close — so run_h2spec.sh uses
# --timeout 5 (H2SPEC_TIMEOUT) to keep the gate stable. Do not add a flaky case to
# this list; raise the timeout instead. These 37 are genuine server-side conformance
# gaps: stricter request
# validation (uppercase/duplicate/missing pseudo-headers, connection-specific & TE
# headers, content-length vs DATA), HPACK decode error SCOPE (must be a
# connection-level COMPRESSION_ERROR, not RST_STREAM), the stream state machine
# (frames on idle/closed streams), CONTINUATION sequencing, and flow-control
# overflow/zero-increment handling. Remove a line when the server is fixed to pass.
generic/4 :: Sends a POST request with trailers
hpack/2.3.3 :: Sends a indexed header field representation with invalid index
hpack/2.3.3 :: Sends a literal header field representation with invalid index
hpack/4.2 :: Sends a dynamic table size update at the end of header block
hpack/5.2 :: Sends a Huffman-encoded string literal representation containing the EOS symbol
hpack/5.2 :: Sends a Huffman-encoded string literal representation padded by zero
hpack/5.2 :: Sends a Huffman-encoded string literal representation with padding longer than 7 bits
hpack/6.1 :: Sends a indexed header field representation with index 0
hpack/6.3 :: Sends a dynamic table size update larger than the value of SETTINGS_HEADER_TABLE_SIZE
http2/4.3 :: Sends invalid header block fragment
http2/5.1 :: closed: Sends a DATA frame
http2/5.1 :: closed: Sends a DATA frame after sending RST_STREAM frame
http2/5.1 :: half closed (remote): Sends a DATA frame
http2/5.1 :: idle: Sends a DATA frame
http2/5.1 :: idle: Sends a RST_STREAM frame
http2/5.1 :: idle: Sends a WINDOW_UPDATE frame
http2/5.1.2 :: Sends HEADERS frames that causes their advertised concurrent stream limit to be exceeded
http2/5.3.1 :: Sends HEADERS frame that depends on itself
http2/5.3.1 :: Sends PRIORITY frame that depend on itself
http2/6.1 :: Sends a DATA frame on the stream that is not in "open" or "half-closed (local)" state
http2/6.4 :: Sends a RST_STREAM frame on a idle stream
http2/6.5.2 :: SETTINGS_ENABLE_PUSH (0x2): Sends the value other than 0 or 1
http2/6.9 :: Sends a WINDOW_UPDATE frame with a flow control window increment of 0
http2/6.9 :: Sends a WINDOW_UPDATE frame with a flow control window increment of 0 on a stream
http2/6.9.1 :: Sends multiple WINDOW_UPDATE frames increasing the flow control window to above 2^31-1
http2/6.9.1 :: Sends multiple WINDOW_UPDATE frames increasing the flow control window to above 2^31-1 on a stream
http2/6.9.2 :: Sends a SETTINGS frame for window size to be negative
http2/8.1.2 :: Sends a HEADERS frame that contains the header field name in uppercase letters
http2/8.1.2.1 :: Sends a HEADERS frame that contains a pseudo-header field that appears in a header block after a regular header field
http2/8.1.2.2 :: Sends a HEADERS frame that contains the TE header field with any value other than "trailers"
http2/8.1.2.2 :: Sends a HEADERS frame that contains the connection-specific header field
http2/8.1.2.3 :: Sends a HEADERS frame that omits ":scheme" pseudo-header field
http2/8.1.2.3 :: Sends a HEADERS frame with duplicated ":method" pseudo-header field
http2/8.1.2.3 :: Sends a HEADERS frame with duplicated ":path" pseudo-header field
http2/8.1.2.3 :: Sends a HEADERS frame with duplicated ":scheme" pseudo-header field
http2/8.1.2.6 :: Sends a HEADERS frame with the "content-length" header field which does not equal the DATA frame payload length
http2/8.1.2.6 :: Sends a HEADERS frame with the "content-length" header field which does not equal the sum of the multiple DATA frames payload length