@@ -5,7 +5,7 @@ const assert = require('assert');
5
5
const http = require ( 'http' ) ;
6
6
const { kHighWaterMark } = require ( '_http_outgoing' ) ;
7
7
8
- const { getDefaultHighWaterMark } = require ( 'internal/streams/state' ) ;
8
+ const { setDefaultHighWaterMark } = require ( 'internal/streams/state' ) ;
9
9
10
10
function listen ( server ) {
11
11
server . listen ( 0 , common . mustCall ( ( ) => {
@@ -20,28 +20,44 @@ function listen(server) {
20
20
} ) ) ;
21
21
}
22
22
23
+ // Test `options.highWaterMark` fails if less than zero.
23
24
{
25
+ assert . throws ( ( ) => {
26
+ http . createServer ( {
27
+ highWaterMark : - 1 ,
28
+ } ) ;
29
+ } , { code : 'ERR_OUT_OF_RANGE' } ) ;
30
+ }
31
+
32
+ // Test socket watermark is set with the value in `options.highWaterMark`.
33
+ {
34
+ const waterMarkValue = 17000 ;
35
+ const serverWaterMarkValue = 14000 ;
24
36
const server = http . createServer ( {
25
- highWaterMark : getDefaultHighWaterMark ( ) * 2 ,
37
+ highWaterMark : serverWaterMarkValue ,
26
38
} , common . mustCall ( ( req , res ) => {
27
- assert . strictEqual ( req . _readableState . highWaterMark , getDefaultHighWaterMark ( ) * 2 ) ;
28
- assert . strictEqual ( res [ kHighWaterMark ] , getDefaultHighWaterMark ( ) * 2 ) ;
39
+ assert . strictEqual ( req . _readableState . highWaterMark , serverWaterMarkValue ) ;
40
+ assert . strictEqual ( res [ kHighWaterMark ] , serverWaterMarkValue ) ;
29
41
res . statusCode = 200 ;
30
42
res . end ( ) ;
31
43
} ) ) ;
32
44
45
+ setDefaultHighWaterMark ( false , waterMarkValue ) ;
33
46
listen ( server ) ;
34
47
}
35
48
49
+ // Test socket watermark is the default if `highWaterMark` in `options` is unset.
36
50
{
51
+ const waterMarkValue = 13000 ;
37
52
const server = http . createServer (
38
53
common . mustCall ( ( req , res ) => {
39
- assert . strictEqual ( req . _readableState . highWaterMark , getDefaultHighWaterMark ( ) ) ;
40
- assert . strictEqual ( res [ kHighWaterMark ] , getDefaultHighWaterMark ( ) ) ;
54
+ assert . strictEqual ( req . _readableState . highWaterMark , waterMarkValue ) ;
55
+ assert . strictEqual ( res [ kHighWaterMark ] , waterMarkValue ) ;
41
56
res . statusCode = 200 ;
42
57
res . end ( ) ;
43
58
} )
44
59
) ;
45
60
61
+ setDefaultHighWaterMark ( false , waterMarkValue ) ;
46
62
listen ( server ) ;
47
63
}
0 commit comments