[
https://issues.apache.org/jira/browse/TS-3808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Masaori Koshiba updated TS-3808:
--------------------------------
Description:
This is an umbrella ticket for testing HTTP/2 features of ATS by
[h2spec|https://github.com/summerwind/h2spec].
Our goal : passing all tests.
h3. Status
* 3.5. HTTP/2 Connection Preface
** ✓ Sends invalid connection preface
* 4.2. Frame Size
** ✓ Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
* 4.3. Header Compression and Decompression
** ✓ Sends invalid header block fragment
* 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 CONTINUATION frame
** 5.1.1. Stream Identifiers
*** ✓ Sends even-numbered stream identifier
** 5.1.2. Stream Concurrency
*** ✓ Sends HEADERS frames that causes their advertised concurrent stream limit
to be exceeded
* 5.3. Stream Priority
** 5.3.1. Stream Dependencies
*** × Sends HEADERS frame that depend on itself
*** ✓ Sends PRIORITY frame that depend on itself
* 5.4. Error Handling
** 5.4.1. Connection Error Handling
*** × Receives a GOAWAY frame
* 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 opend
** ✓ Sends a DATA frame with invalid pad length
* 6.2. HEADERS
** ✓ Sends a HEADERS frame followed by any frame other than CONTINUATION
** ✓ Sends a HEADERS frame followed by a frame on a different stream
** ✓ 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
** ✓ Sends a SETTINGS frame that is not a zero-length with ACK flag
** ✓ Sends a SETTINGS frame with the stream identifier that is not 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
* 6.7. PING
** ✓ Sends a PING frame
** ✓ Sends a PING frame with the stream identifier that is not 0x0
** ✓ Sends a PING frame with a length field value other than 8
* 6.8. GOAWAY
** ✓ Sends a GOAWAY frame with the stream identifier that is not 0x0
* 6.9. WINDOW_UPDATE
** ✓ Sends a WINDOW_UPDATE frame
** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0
** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0 on
a stream
** ✓ Sends a WINDOW_UPDATE frame with a length other than a multiple of 4 octets
* 6.10. CONTINUATION
** × Sends a CONTINUATION frame
** × Sends multiple CONTINUATION frames
** × Sends a CONTINUATION frame followed by any frame other than CONTINUATION
** × Sends a CONTINUATION frame followed by a frame on a different stream
** × Sends a CONTINUATION frame with the stream identifier that is 0x0
** ✓ Sends a CONTINUATION frame after the frame other than HEADERS,
PUSH_PROMISE or CONTINUATION
* 8.1. HTTP Request/Response Exchange
** ✓ Sends a HEADERS frame as HEAD request
** × Sends a HEADERS frame containing trailer part
** 8.1.2. HTTP Header Fields
*** ✓ Sends a HEADERS frame that contains the header field name in uppercase
letters
*** 8.1.2.2. Connection-Specific Header Fields
**** × Sends a HEADERS frame that contains the connection-specific header field
**** ✓ Sends a HEADERS frame that contains the TE header field that contain any
value other than "trailers"
*** 8.1.2.3. Request Pseudo-Header Fields
**** ✓ Sends a HEADERS frame that omits mandatory pseudo-header fields
**** ✓ Sends a HEADERS frame containing more than one pseudo-header fields with
the same name
*** 8.1.2.6. Malformed Requests and Responses
**** ✓ Sends a HEADERS frame that contains the "content-length" header field
which does not equal the sum of the DATA frame payload lengths
**** ✓ Sends a HEADERS frame that contains the "content-length" header field
which does not equal the sum of the multiple DATA frame payload lengths
* 8.2. Server Push
** ✓ Sends a PUSH_PROMISE frame
was:
This is an umbrella ticket for testing HTTP/2 features of ATS by
[h2spec|https://github.com/summerwind/h2spec].
Our goal : passing all tests.
h3. Status
- 3.5. HTTP/2 Connection Preface
- ✓ Sends invalid connection preface
- 4.2. Frame Size
- ✓ Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
- 4.3. Header Compression and Decompression
- ✓ Sends invalid header block fragment
- 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 CONTINUATION frame
- 5.1.1. Stream Identifiers
- ✓ Sends even-numbered stream identifier
- 5.1.2. Stream Concurrency
- ✓ Sends HEADERS frames that causes their advertised concurrent stream
limit to be exceeded
- 5.3. Stream Priority
- 5.3.1. Stream Dependencies
- × Sends HEADERS frame that depend on itself
- ✓ Sends PRIORITY frame that depend on itself
- 5.4. Error Handling
- 5.4.1. Connection Error Handling
- × Receives a GOAWAY frame
- 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 opend
- ✓ Sends a DATA frame with invalid pad length
- 6.2. HEADERS
- ✓ Sends a HEADERS frame followed by any frame other than CONTINUATION
- ✓ Sends a HEADERS frame followed by a frame on a different stream
- ✓ 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
- ✓ Sends a SETTINGS frame that is not a zero-length with ACK flag
- ✓ Sends a SETTINGS frame with the stream identifier that is not 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
- 6.7. PING
- ✓ Sends a PING frame
- ✓ Sends a PING frame with the stream identifier that is not 0x0
- ✓ Sends a PING frame with a length field value other than 8
- 6.8. GOAWAY
- ✓ Sends a GOAWAY frame with the stream identifier that is not 0x0
- 6.9. WINDOW_UPDATE
- ✓ Sends a WINDOW_UPDATE frame
- ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0
- ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0 on
a stream
- ✓ Sends a WINDOW_UPDATE frame with a length other than a multiple of 4
octets
- 6.10. CONTINUATION
- × Sends a CONTINUATION frame
- × Sends multiple CONTINUATION frames
- × Sends a CONTINUATION frame followed by any frame other than CONTINUATION
- × Sends a CONTINUATION frame followed by a frame on a different stream
- × Sends a CONTINUATION frame with the stream identifier that is 0x0
- ✓ Sends a CONTINUATION frame after the frame other than HEADERS,
PUSH_PROMISE or CONTINUATION
- 8.1. HTTP Request/Response Exchange
- ✓ Sends a HEADERS frame as HEAD request
- × Sends a HEADERS frame containing trailer part
- 8.1.2. HTTP Header Fields
- ✓ Sends a HEADERS frame that contains the header field name in uppercase
letters
- 8.1.2.2. Connection-Specific Header Fields
- × Sends a HEADERS frame that contains the connection-specific header
field
- ✓ Sends a HEADERS frame that contains the TE header field that contain
any value other than "trailers"
- 8.1.2.3. Request Pseudo-Header Fields
- ✓ Sends a HEADERS frame that omits mandatory pseudo-header fields
- ✓ Sends a HEADERS frame containing more than one pseudo-header fields
with the same name
- 8.1.2.6. Malformed Requests and Responses
- ✓ Sends a HEADERS frame that contains the "content-length" header field
which does not equal the sum of the DATA frame payload lengths
- ✓ Sends a HEADERS frame that contains the "content-length" header field
which does not equal the sum of the multiple DATA frame payload lengths
- 8.2. Server Push
- ✓ Sends a PUSH_PROMISE frame
> ☂ Testing HTTP/2 features by h2spec
> ------------------------------------
>
> Key: TS-3808
> URL: https://issues.apache.org/jira/browse/TS-3808
> Project: Traffic Server
> Issue Type: Test
> Components: HTTP/2
> Reporter: Masaori Koshiba
> Labels: Umbrella
>
> This is an umbrella ticket for testing HTTP/2 features of ATS by
> [h2spec|https://github.com/summerwind/h2spec].
> Our goal : passing all tests.
> h3. Status
> * 3.5. HTTP/2 Connection Preface
> ** ✓ Sends invalid connection preface
> * 4.2. Frame Size
> ** ✓ Sends large size frame that exceeds the SETTINGS_MAX_FRAME_SIZE
> * 4.3. Header Compression and Decompression
> ** ✓ Sends invalid header block fragment
> * 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 CONTINUATION frame
> ** 5.1.1. Stream Identifiers
> *** ✓ Sends even-numbered stream identifier
> ** 5.1.2. Stream Concurrency
> *** ✓ Sends HEADERS frames that causes their advertised concurrent stream
> limit to be exceeded
> * 5.3. Stream Priority
> ** 5.3.1. Stream Dependencies
> *** × Sends HEADERS frame that depend on itself
> *** ✓ Sends PRIORITY frame that depend on itself
> * 5.4. Error Handling
> ** 5.4.1. Connection Error Handling
> *** × Receives a GOAWAY frame
> * 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 opend
> ** ✓ Sends a DATA frame with invalid pad length
> * 6.2. HEADERS
> ** ✓ Sends a HEADERS frame followed by any frame other than CONTINUATION
> ** ✓ Sends a HEADERS frame followed by a frame on a different stream
> ** ✓ 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
> ** ✓ Sends a SETTINGS frame that is not a zero-length with ACK flag
> ** ✓ Sends a SETTINGS frame with the stream identifier that is not 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
> * 6.7. PING
> ** ✓ Sends a PING frame
> ** ✓ Sends a PING frame with the stream identifier that is not 0x0
> ** ✓ Sends a PING frame with a length field value other than 8
> * 6.8. GOAWAY
> ** ✓ Sends a GOAWAY frame with the stream identifier that is not 0x0
> * 6.9. WINDOW_UPDATE
> ** ✓ Sends a WINDOW_UPDATE frame
> ** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0
> ** ✓ Sends a WINDOW_UPDATE frame with an flow control window increment of 0
> on a stream
> ** ✓ Sends a WINDOW_UPDATE frame with a length other than a multiple of 4
> octets
> * 6.10. CONTINUATION
> ** × Sends a CONTINUATION frame
> ** × Sends multiple CONTINUATION frames
> ** × Sends a CONTINUATION frame followed by any frame other than CONTINUATION
> ** × Sends a CONTINUATION frame followed by a frame on a different stream
> ** × Sends a CONTINUATION frame with the stream identifier that is 0x0
> ** ✓ Sends a CONTINUATION frame after the frame other than HEADERS,
> PUSH_PROMISE or CONTINUATION
> * 8.1. HTTP Request/Response Exchange
> ** ✓ Sends a HEADERS frame as HEAD request
> ** × Sends a HEADERS frame containing trailer part
> ** 8.1.2. HTTP Header Fields
> *** ✓ Sends a HEADERS frame that contains the header field name in uppercase
> letters
> *** 8.1.2.2. Connection-Specific Header Fields
> **** × Sends a HEADERS frame that contains the connection-specific header
> field
> **** ✓ Sends a HEADERS frame that contains the TE header field that contain
> any value other than "trailers"
> *** 8.1.2.3. Request Pseudo-Header Fields
> **** ✓ Sends a HEADERS frame that omits mandatory pseudo-header fields
> **** ✓ Sends a HEADERS frame containing more than one pseudo-header fields
> with the same name
> *** 8.1.2.6. Malformed Requests and Responses
> **** ✓ Sends a HEADERS frame that contains the "content-length" header field
> which does not equal the sum of the DATA frame payload lengths
> **** ✓ Sends a HEADERS frame that contains the "content-length" header field
> which does not equal the sum of the multiple DATA frame payload lengths
> * 8.2. Server Push
> ** ✓ Sends a PUSH_PROMISE frame
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)