Skip to content

Improve code coverage, closes #151 #66

Improve code coverage, closes #151

Improve code coverage, closes #151 #66

GitHub Actions / h2spec-http2 failed Mar 31, 2024 in 0s

79 passed, 15 failed and 0 skipped

Tests failed

❌ h2spec-http2.xml

94 tests were completed in NaNms with 79 passed, 15 failed and 0 skipped.

Test suite Passed Failed Skipped Time
1. Starting HTTP/2 NaNms
2. Streams and Multiplexing NaNms
2.3.3. Index Address Space NaNms
3.1. DATA NaNms
3.10. CONTINUATION NaNms
3.2. HEADERS NaNms
3.3. PRIORITY NaNms
3.4. RST_STREAM NaNms
3.5. HTTP/2 Connection Preface 2✅ NaNms
3.5. SETTINGS NaNms
3.7. PING NaNms
3.8. GOAWAY NaNms
3.9. WINDOW_UPDATE NaNms
4. HTTP Message Exchanges NaNms
4.1. Frame Format 3✅ NaNms
4.2. Frame Size 3✅ NaNms
4.2. Maximum Table Size NaNms
4.3. Header Compression and Decompression 3✅ NaNms
5. HPACK NaNms
5.1. Stream States 13✅ NaNms
5.1.1. Stream Identifiers 2✅ NaNms
5.1.2. Stream Concurrency 1✅ NaNms
5.2. String Literal Representation NaNms
5.3.1. Stream Dependencies 2✅ NaNms
5.4.1. Connection Error Handling 1✅ NaNms
5.5. Extending HTTP/2 2✅ NaNms
6.1. DATA 3✅ NaNms
6.1. Indexed Header Field Representation NaNms
6.10. CONTINUATION 6✅ NaNms
6.2. HEADERS 4✅ NaNms
6.3. Dynamic Table Size Update NaNms
6.3. PRIORITY 2✅ NaNms
6.4. RST_STREAM 3✅ NaNms
6.5. SETTINGS 3✅ NaNms
6.5.2. Defined SETTINGS Parameters 5✅ NaNms
6.5.3. Settings Synchronization 2✅ NaNms
6.7. PING 4✅ NaNms
6.8. GOAWAY 1✅ NaNms
6.9. WINDOW_UPDATE 3✅ NaNms
6.9.1. The Flow-Control Window 3✅ NaNms
6.9.2. Initial Flow-Control Window Size 3✅ NaNms
7. Error Codes 2✅ NaNms
8.1. HTTP Request/Response Exchange 1✅ NaNms
8.1.2. HTTP Header Fields 1❌ NaNms
8.1.2.1. Pseudo-Header Fields 1✅ 3❌ NaNms
8.1.2.2. Connection-Specific Header Fields 2❌ NaNms
8.1.2.3. Request Pseudo-Header Fields 7❌ NaNms
8.1.2.6. Malformed Requests and Responses 2❌ NaNms
8.2. Server Push 1✅ NaNms

✅ 3.5. HTTP/2 Connection Preface

✅ Sends client connection preface
✅ Sends invalid connection preface

✅ 4.1. Frame Format

✅ Sends a frame with unknown type
✅ Sends a frame with undefined flag
✅ Sends a frame with reserved field bit

✅ 4.2. Frame Size

✅ Sends a DATA frame with 2^14 octets in length
✅ Sends a large size DATA frame that exceeds the SETTINGS_MAX_FRAME_SIZE
✅ Sends a large size HEADERS frame that exceeds the SETTINGS_MAX_FRAME_SIZE

✅ 4.3. Header Compression and Decompression

✅ Sends invalid header block fragment
✅ Sends a PRIORITY frame while sending the header blocks
✅ Sends a HEADERS frame to another stream while sending the header blocks

✅ 5.1. Stream States

✅ idle: Sends a DATA frame
✅ idle: Sends a RST_STREAM frame
✅ idle: Sends a WINDOW_UPDATE frame
✅ idle: Sends a CONTINUATION frame
✅ half closed (remote): Sends a DATA frame
✅ half closed (remote): Sends a HEADERS frame
✅ half closed (remote): Sends a CONTINUATION frame
✅ closed: Sends a DATA frame after sending RST_STREAM frame
✅ closed: Sends a HEADERS frame after sending RST_STREAM frame
✅ closed: Sends a CONTINUATION frame after sending RST_STREAM frame
✅ closed: Sends a DATA frame
✅ closed: Sends a HEADERS frame
✅ closed: Sends a CONTINUATION frame

✅ 5.1.1. Stream Identifiers

✅ Sends even-numbered stream identifier
✅ Sends stream identifier that is numerically smaller than previous

✅ 5.1.2. Stream Concurrency

✅ Sends HEADERS frames that causes their advertised concurrent stream limit to be exceeded

✅ 5.3.1. Stream Dependencies

✅ Sends HEADERS frame that depends on itself
✅ Sends PRIORITY frame that depend on itself

✅ 5.4.1. Connection Error Handling

✅ Sends an invalid PING frame for connection close

✅ 5.5. Extending HTTP/2

✅ Sends an unknown extension frame
✅ Sends an unknown extension frame in the middle of a header block

✅ 6.1. DATA

✅ Sends a DATA frame with 0x0 stream identifier
✅ Sends a DATA frame on the stream that is not in "open" or "half-closed (local)" state
✅ Sends a DATA frame with invalid pad length

✅ 6.10. CONTINUATION

✅ Sends multiple CONTINUATION frames preceded by a HEADERS frame
✅ Sends a CONTINUATION frame followed by any frame other than CONTINUATION
✅ Sends a CONTINUATION frame with 0x0 stream identifier
✅ Sends a CONTINUATION frame preceded by a HEADERS frame with END_HEADERS flag
✅ Sends a CONTINUATION frame preceded by a CONTINUATION frame with END_HEADERS flag
✅ Sends a CONTINUATION frame preceded by a DATA frame

✅ 6.2. HEADERS

✅ Sends a HEADERS frame without the END_HEADERS flag, and a PRIORITY frame
✅ Sends a HEADERS frame to another stream while sending a HEADERS frame
✅ Sends a HEADERS frame with 0x0 stream identifier
✅ Sends a HEADERS frame with invalid pad length

✅ 6.3. PRIORITY

✅ Sends a PRIORITY frame with 0x0 stream identifier
✅ Sends a PRIORITY frame with a length other than 5 octets

✅ 6.4. RST_STREAM

✅ Sends a RST_STREAM frame with 0x0 stream identifier
✅ Sends a RST_STREAM frame on a idle stream
✅ Sends a RST_STREAM frame with a length other than 4 octets

✅ 6.5. SETTINGS

✅ Sends a SETTINGS frame with ACK flag and payload
✅ Sends a SETTINGS frame with a stream identifier other than 0x0
✅ Sends a SETTINGS frame with a length other than a multiple of 6 octets

✅ 6.5.2. Defined SETTINGS Parameters

✅ SETTINGS_ENABLE_PUSH (0x2): Sends the value other than 0 or 1
✅ SETTINGS_INITIAL_WINDOW_SIZE (0x4): Sends the value above the maximum flow control window size
✅ SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value below the initial value
✅ SETTINGS_MAX_FRAME_SIZE (0x5): Sends the value above the maximum allowed frame size
✅ Sends a SETTINGS frame with unknown identifier

✅ 6.5.3. Settings Synchronization

✅ Sends multiple values of SETTINGS_INITIAL_WINDOW_SIZE
✅ Sends a SETTINGS frame without ACK flag

✅ 6.7. PING

✅ Sends a PING frame
✅ Sends a PING frame with ACK
✅ Sends a PING frame with a stream identifier field value other than 0x0
✅ Sends a PING frame with a length field value other than 8

✅ 6.8. GOAWAY

✅ Sends a GOAWAY frame with a stream identifier other than 0x0

✅ 6.9. WINDOW_UPDATE

✅ Sends a WINDOW_UPDATE frame with a flow control window increment of 0
✅ Sends a WINDOW_UPDATE frame with a flow control window increment of 0 on a stream
✅ Sends a WINDOW_UPDATE frame with a length other than 4 octets

✅ 6.9.1. The Flow-Control Window

✅ Sends SETTINGS frame to set the initial window size to 1 and sends HEADERS frame
✅ Sends multiple WINDOW_UPDATE frames increasing the flow control window to above 2^31-1
✅ Sends multiple WINDOW_UPDATE frames increasing the flow control window to above 2^31-1 on a stream

✅ 6.9.2. Initial Flow-Control Window Size

✅ Changes SETTINGS_INITIAL_WINDOW_SIZE after sending HEADERS frame
✅ Sends a SETTINGS frame for window size to be negative
✅ Sends a SETTINGS_INITIAL_WINDOW_SIZE settings with an exceeded maximum window size value

✅ 7. Error Codes

✅ Sends a GOAWAY frame with unknown error code
✅ Sends a RST_STREAM frame with unknown error code

✅ 8.1. HTTP Request/Response Exchange

✅ Sends a second HEADERS frame without the END_STREAM flag

❌ 8.1.2. HTTP Header Fields

❌ Sends a HEADERS frame that contains the header field name in uppercase letters
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)

❌ 8.1.2.1. Pseudo-Header Fields

❌ Sends a HEADERS frame that contains a unknown pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame that contains the pseudo-header field defined for response
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
✅ Sends a HEADERS frame that contains a pseudo-header field as trailers
❌ Sends a HEADERS frame that contains a pseudo-header field that appears in a header block after a regular header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)

❌ 8.1.2.2. Connection-Specific Header Fields

❌ Sends a HEADERS frame that contains the connection-specific header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame that contains the TE header field with any value other than "trailers"
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)

❌ 8.1.2.3. Request Pseudo-Header Fields

❌ Sends a HEADERS frame with empty ":path" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame that omits ":method" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame that omits ":scheme" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame that omits ":path" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame with duplicated ":method" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame with duplicated ":scheme" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame with duplicated ":path" pseudo-header field
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)

❌ 8.1.2.6. Malformed Requests and Responses

❌ Sends a HEADERS frame with the "content-length" header field which does not equal the DATA frame payload length
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)
❌ Sends a HEADERS frame with the "content-length" header field which does not equal the sum of the multiple DATA frames payload length
	GOAWAY Frame (Error Code: PROTOCOL_ERROR)

✅ 8.2. Server Push

✅ Sends a PUSH_PROMISE frame

Annotations

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2. HTTP Header Fields ► Sends a HEADERS frame that contains the header field name in uppercase letters

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.1. Pseudo-Header Fields ► Sends a HEADERS frame that contains a unknown pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.1. Pseudo-Header Fields ► Sends a HEADERS frame that contains the pseudo-header field defined for response

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.1. Pseudo-Header Fields ► Sends a HEADERS frame that contains a pseudo-header field that appears in a header block after a regular header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.2. Connection-Specific Header Fields ► Sends a HEADERS frame that contains the connection-specific header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.2. Connection-Specific Header Fields ► Sends a HEADERS frame that contains the TE header field with any value other than "trailers"

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
DATA Frame (length:16, flags:0x01, stream_id:1)

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.3. Request Pseudo-Header Fields ► Sends a HEADERS frame with empty ":path" pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
Timeout

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.3. Request Pseudo-Header Fields ► Sends a HEADERS frame that omits ":method" pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
Timeout

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.3. Request Pseudo-Header Fields ► Sends a HEADERS frame that omits ":scheme" pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
Timeout

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.3. Request Pseudo-Header Fields ► Sends a HEADERS frame that omits ":path" pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
Timeout

Check failure on line 0 in h2spec-http2.xml

See this annotation in the file changed.

@github-actions github-actions / h2spec-http2

8.1.2.3. Request Pseudo-Header Fields ► Sends a HEADERS frame with duplicated ":method" pseudo-header field

Failed test found in:
  h2spec-http2.xml
Error:
  GOAWAY Frame (Error Code: PROTOCOL_ERROR)
Raw output
GOAWAY Frame (Error Code: PROTOCOL_ERROR)
RST_STREAM Frame (Error Code: PROTOCOL_ERROR)
Connection closed
Timeout