You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Masaori Koshiba (JIRA)" <ji...@apache.org> on 2015/11/16 18:02:11 UTC

[jira] [Updated] (TS-3808) ☂ Testing HTTP/2 features by h2spec

     [ 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].
Goal : pass all tests.

h3. Status
* ATS : {{fe2de1a3d552c09409bfc328a2dfe6a4f1691930}}
* h2spec : {{v1.2.0}}
* 71 tests, 68 passed, 1 skipped, 2 failed

h4. Details

{code}
===============================================================================
Failed tests
===============================================================================

  8.1. HTTP Request/Response Exchange
    × Sends a HEADERS frame containing trailer part
      - The endpoint should respond with HEADERS frame.
        Expected: HEADERS frame (Flags: 1)
          Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: STREAM_CLOSED)
    × Sends a second HEADERS frame without the END_STREAM flag
      - The endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
        Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR)
                  RST_STREAM frame (ErrorCode: PROTOCOL_ERROR)
                  Connection close
          Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: STREAM_CLOSED)
{code}

  was:
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 : {{728f2c3a80c2a5947bed7d3bf1865f1a1a52d3f4}}
* h2spec : {{v1.1.1}}
* 68 tests, 66 passed, 1 skipped, 1 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


>  ☂ 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 : {{fe2de1a3d552c09409bfc328a2dfe6a4f1691930}}
> * h2spec : {{v1.2.0}}
> * 71 tests, 68 passed, 1 skipped, 2 failed
> h4. Details
> {code}
> ===============================================================================
> Failed tests
> ===============================================================================
>   8.1. HTTP Request/Response Exchange
>     × Sends a HEADERS frame containing trailer part
>       - The endpoint should respond with HEADERS frame.
>         Expected: HEADERS frame (Flags: 1)
>           Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: STREAM_CLOSED)
>     × Sends a second HEADERS frame without the END_STREAM flag
>       - The endpoint MUST respond with a stream error of type PROTOCOL_ERROR.
>         Expected: GOAWAY frame (ErrorCode: PROTOCOL_ERROR)
>                   RST_STREAM frame (ErrorCode: PROTOCOL_ERROR)
>                   Connection close
>           Actual: RST_STREAM frame (Length: 4, Flags: 0, ErrorCode: STREAM_CLOSED)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)