mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/15105 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>canary-base
1 changed files with 67 additions and 0 deletions
@ -0,0 +1,67 @@ |
|||
// Flags: --expose-internals
|
|||
'use strict'; |
|||
|
|||
require('../common'); |
|||
|
|||
// Test coverage for the updateOptionsBuffer method used internally
|
|||
// by the http2 implementation.
|
|||
|
|||
const { updateOptionsBuffer } = require('internal/http2/util'); |
|||
const { optionsBuffer } = process.binding('http2'); |
|||
const { ok, strictEqual } = require('assert'); |
|||
|
|||
const IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE = 0; |
|||
const IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS = 1; |
|||
const IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH = 2; |
|||
const IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS = 3; |
|||
const IDX_OPTIONS_PADDING_STRATEGY = 4; |
|||
const IDX_OPTIONS_FLAGS = 5; |
|||
|
|||
{ |
|||
updateOptionsBuffer({ |
|||
maxDeflateDynamicTableSize: 1, |
|||
maxReservedRemoteStreams: 2, |
|||
maxSendHeaderBlockLength: 3, |
|||
peerMaxConcurrentStreams: 4, |
|||
paddingStrategy: 5 |
|||
}); |
|||
|
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE], 1); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS], 2); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH], 3); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS], 4); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_PADDING_STRATEGY], 5); |
|||
|
|||
const flags = optionsBuffer[IDX_OPTIONS_FLAGS]; |
|||
|
|||
ok(flags & (1 << IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE)); |
|||
ok(flags & (1 << IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS)); |
|||
ok(flags & (1 << IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH)); |
|||
ok(flags & (1 << IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS)); |
|||
ok(flags & (1 << IDX_OPTIONS_PADDING_STRATEGY)); |
|||
} |
|||
|
|||
{ |
|||
optionsBuffer[IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH] = 0; |
|||
|
|||
updateOptionsBuffer({ |
|||
maxDeflateDynamicTableSize: 1, |
|||
maxReservedRemoteStreams: 2, |
|||
peerMaxConcurrentStreams: 4, |
|||
paddingStrategy: 5 |
|||
}); |
|||
|
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE], 1); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS], 2); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH], 0); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS], 4); |
|||
strictEqual(optionsBuffer[IDX_OPTIONS_PADDING_STRATEGY], 5); |
|||
|
|||
const flags = optionsBuffer[IDX_OPTIONS_FLAGS]; |
|||
|
|||
ok(flags & (1 << IDX_OPTIONS_MAX_DEFLATE_DYNAMIC_TABLE_SIZE)); |
|||
ok(flags & (1 << IDX_OPTIONS_MAX_RESERVED_REMOTE_STREAMS)); |
|||
ok(!(flags & (1 << IDX_OPTIONS_MAX_SEND_HEADER_BLOCK_LENGTH))); |
|||
ok(flags & (1 << IDX_OPTIONS_PEER_MAX_CONCURRENT_STREAMS)); |
|||
ok(flags & (1 << IDX_OPTIONS_PADDING_STRATEGY)); |
|||
} |
Loading…
Reference in new issue