This repository has been archived by the owner on Sep 22, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 13
Server Test Cases
michelleflai edited this page Feb 12, 2014
·
7 revisions
Note: Please update status field with "in progress" when you grab the test and mark "complete" after test check in.
###Framing Tests
1. | DATA Frame | Status (in progress/complete) |
---|---|---|
1.1 | Server sends DATA frame to client, client validate frame format (i.e. Frame Type = 0x0, non-zero stream id) | Akamai (in progress) |
1.2 | Server sends DATA frame with payload size > 0 | |
1.3 | Server sends DATA frame with no payload | |
1.4 | Server sends DATA frame with max payload | |
1.5 | Server sends frame with length < payload size | |
1.6 | Server sends DATA frame with length > payload size | |
1.7 | Server sends DATA frame with zero stream id, expect PROTOCOL_ERROR | |
1.8 | Server sends DATA frame size > max size, expect FRAME_SIZE_ERROR | |
1.9 | Server ignores DATA frame received with invalid flag | |
2. | HEADERS Frame | |
2.1 | Server sends HEADERS frame to client, client validate frame format (i.e. Frame Type = 0x1, non-zero stream id) | |
2.2 | Server sends HEADERS frame to client, client validate header fields (i.e. compressed correctly, lowercase names, no empty/duplicate names, no empty values, includes ":status" mandatory header with valid value, not include Connection, Keep-Alive, Proxy-Connection, TE, Transfer-Encoding, and Upgrade header fields) | |
2.3 | Server sends HEADERS frame without header block, expect FRAME_SIZE_ERROR | |
2.4 | Server sends HEADERS frame without priority | |
2.5 | Server sends HEADERS frame without priority and header block, expect FRAME_SIZE_ERROR | |
2.6 | Server sends HEADERS frame with length < payload size | |
2.7 | Server ignores HEADERS frame received with invalid flag | |
2.8 | Server ends stream after receiving malformed HEADERS frame with uppercase header | |
2.9 | Server ends stream after receiving malformed HEADERS frame with empty header name | |
2.10 | Server ends stream after receiving malformed HEADERS frame with empty header value | |
2.11 | Server ends stream after receiving malformed HEADERS frame with duplicate header names | |
2.12 | Server ends stream after receiving malformed HEADERS frame with no ":status" header | |
2.13 | Server ends stream after receiving malformed HEADERS frame with bad zlib data | Akamai (in progress) |
3. | PRIORITY Frame | |
3.1 | Server sends PRIORITY frame to client, client validate frame format (I.e. Frame Type = 0x2, stream id = non-zero/even number, zero flag, Priority value is within range (0 to 2^31-1)) | |
3.2 | Server sends PRIORITY frame with zero priority | |
3.3 | Server sends PRIORITY frame with lowest priority | |
3.4 | Server sends PRIORITY frame with zero stream id, expect PROTOCOL_ERROR | |
3.5 | Server ignores PRIORITY frame received with invalid flag | |
4. | RST_STREAM Frame | |
4.1 | Server sends RST_STREAM frame to client, client validate frame format | |
4.2 | Server sends RST_STREAM frame with non-zero stream id, expect PROTOCOL_ERROR | |
4.3 | Server ignores RST_STREAM frame received with unknown error code | |
4.4 | Server ignores RST_STREAM frame received with invalid flag | |
4.5 | Server receives RST_STREAM frame with stream id in the idle state, expect PROTOCOL_ERROR | Akamai (in progress) |
5. | SETTINGS Frame | |
5.1 | Server sends SETTINGS frame to client, client validate frame format | |
5.2 | Server sends SETTINGS frame with ACK | |
5.3 | Server sends SETTINGS frame with no payload, expect PROTOCOL_ERROR | |
5.4 | Server sends SETTINGS frame with non-zero stream id, expect PROTOCOL_ERROR | |
5.5 | Server ignores SETTINGS frame with invalid setting id | |
5.6 | Server sends SETTINGS frame with ACK and payload, expect FRAME_SIZE_ERROR | |
5.7 | Server sends SETTINGS frame with missing value, expect FRAME_SIZE_ERROR | |
5.8 | Server sends SETTINGS frame with invalid flag | |
5.9 | Server disable server push after receiving SETTINGS frame with zero SETTINGS_MAX_CONCURRENT_STREAMS value | |
6. | PUSH_PROMISE Frame | |
6.1 | Server sends PUSH_PROMISE frame to client, client validate frame format | |
6.2 | Server ignore PUSH_PROMISE frame received | |
6.3 | Server receives PUSH_PROMISE frame with stream id zero | Akamai (in progress) |
6.4 | Server receives PUSH_PROMISE frame with non-idle stream id | Akamai (in progress) |
6.5 | Server receives PUSH_PROMISE frame with stream id less than current stream id | Akamai (in progress) |
7. | PING Frame | |
7.1 | Server sends PING frame to client, client validate frame format | |
7.2 | Server sends PING frame with ACK | |
7.3 | Server receives PING frame with length > 8, expect FRAME_SIZE_ERROR | Akamai (in progress) |
7.4 | Server receives PING frame with length < 8, expect FRAME_SIZE_ERROR | Akamai (in progress) |
7.5 | Server receives PING frame with non-zero stream id, expect PROTOCOL_ERROR | Akamai (in progress) |
7.6 | Server ignores PING frame received with invalid flag | Akamai (in progress) |
8. | GOAWAY Frame | |
8.1 | Server sends GOAWAY frame to client, client validate frame format (i.e. frame type=0x7, zero flag) | |
8.2 | Server sends GOAWAY frame with no debug data | |
8.3 | Server sends GOAWAY frame with zero last-stream-id | |
8.4 | Server sends GOAWAY frame with incorrect Last-Stream-Id | |
8.5 | Server sends GOAWAY frame with unknown error code | |
8.6 | Server ignores GOAWAY frame received with invalid flag | |
8.7 | Server sends GOAWAY frame with non-zero Stream Id | |
8.8 | Server sends GOAWAY frame with missing Last-Stream-Id, expect FRAME_SIZE_ERROR | |
8.9 | Server sends GOAWAY frame with missing error code, expect FRAME_SIZE_ERROR | |
9. | WINDOW_UPDATE Frame | |
9.1 | Server sends WINDOW_UPDATE frame to client, client validate frame format (i.e. frame type=0x9, zero flag) | |
9.2 | Server sends WINDOW_UPDATE frame with minimum size | |
9.3 | Server sends WINDOW_UPDATE frame with max size | |
9.4 | Server sends WINDOW_UPDATE frame with zero stream id | |
9.5 | Server sends WINDOW_UPDATE frame with non-zero stream id | |
9.6 | Server ignores WINDOW_UPDATE frame received with invalid flag | |
9.7 | Server sends WINDOW_UPDATE frame with invalid size | |
9.8 | Server sends WINDOW_UPDATE frame with no payload | |
9.9 | Server sends WINDOW_UPDATE frame with payload > 4 bytes | |
10. | CONTINUATION Frame | |
10.1 | Server sends CONTINUATION frame to client, client validate frame format | |
10.2 | Server sends CONTINUATION frame with END_HEADERS flag | |
10.3 | Server sends CONTINUATION frame with zero stream id, expect PROTOCOL_ERROR | |
10.4 | Server ignores CONTINUATION frame received with invalid flag | |
10.5 | Server sends CONTINUATION frame with no payload | |
11. | Malformed Frame | |
11.1 | Server ignores frame received with unknown frame type | |
11.2 | Server ignores frame received with non-zero reserve bit | |
11.3 | Server ignores frame received with without stream id |
###Sample Stream Tests
1. | Test cases | Status(in progress/complete) |
---|---|---|
1.2 | Verify server sends stream with odd stream id | |
1.3 | Decreasing stream id | |
1.4 | Duplicate stream id is used | |
1.5 | DATA after RST_STREAM | |
1.6 | FLOW_CONTROL_ERROR after bad WINDOW_UPDATE size |