[ https://issues.apache.org/jira/browse/TS-3808?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693089#comment-14693089 ]
Ryo Okubo commented on TS-3808: ------------------------------- TS-3834 covers 5.4.1. Connection Error Handling > ☂ 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 > Fix For: 6.1.0 > > > This is an umbrella ticket for testing HTTP/2 features of ATS by > [h2spec|https://github.com/summerwind/h2spec]. > Goal : pass all tests. > h3. Status > * ATS : {{35f11dd5aab06364547d423e26b3d5bc31c4b1e1}} > * h2spec : {{v1.1.1}} > * 68 tests, 48 passed, 1 skipped, 19 failed > h4. Details > * 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 > *** Skipped: SETTINGS_MAX_CONCURRENT_STREAMS is unlimited > * 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.9.1. The Flow Control Window > *** × Sends multiple WINDOW_UPDATE frames on a connection increasing the flow > control window to above 2^31-1 > *** × Sends multiple WINDOW_UPDATE frames on a stream increasing the flow > control window to above 2^31-1 > ** 6.9.2. Initial Flow Control Window Size > *** ✓ Sends a SETTINGS_INITIAL_WINDOW_SIZE settings with an exceeded maximum > window size value > * 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.1. Pseudo-Header Fields > **** ✓ Sends a HEADERS frame that contains the pseudo-header field defined > for response > **** ✓ Sends a HEADERS frame that contains the invalid pseudo-header field > **** ✓ Sends a HEADERS frame that contains a pseudo-header field that appears > in a header block after a regular header field > *** 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)