A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/http2jp/http2-frame-test-case below:

http2jp/http2-frame-test-case: test case for encode/decode http2 frame.

Test cases to encode/decode http2 frame.

Each directory has test cases of its corresponding frame. For example, "data" directory has test cases of the DATA frame. Each JSON file is named #{n}.json. n is 0 origin.

Each JSON file has:

Each property name is lower snake case (connected by underscore) of original name

{
    "error": null,
    "wire": "0000140008000000020648656C6C6F2C20776F726C6421486F77647921",
    "frame": {
        "length": 20,
        "frame_payload": {
            "data": "Hello, world!",
            "padding_length": 6,
            "padding": "Howdy!"
        },
        "flags": 8,
        "stream_identifier": 2,
        "type": 0
    },
    "description": "normal data frame"
}

First, decode a JSON file to data structures in your programming language. For simplicity, we refer to such data structures just by JSON names, such as "frame".

To decode "wire", you MUST use default setting values of HTTP2 and an empty dynamic table of HPACK.

"frame" is not null and "error" is null.

  1. Decode "wire" to obtain a decoded frame. Then, compare the decoded frame with "frame".
  2. Encode the decode frame to obtain an encoded frame. Then, compare the encoded frame with "wire".

For the HEADERS frame, "header_block_fragment" is carefully created just by using the static table. If you decode "header_block_fragment" in step 1 and encode again in step 2, you would obtain a different "wire" since encoding algorithms of HPACK is not unique,

"frame" is null and "error" is not null.

  1. Decode "wire" to obtain an error code. Then check if the error code is a member of "error".

See LICENSE file


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4