@@ -5,7 +5,7 @@ const assert = require('assert');
55const http = require ( 'http' ) ;
66const { kHighWaterMark } = require ( '_http_outgoing' ) ;
77
8- const { getDefaultHighWaterMark } = require ( 'internal/streams/state' ) ;
8+ const { setDefaultHighWaterMark } = require ( 'internal/streams/state' ) ;
99
1010function listen ( server ) {
1111 server . listen ( 0 , common . mustCall ( ( ) => {
@@ -20,28 +20,44 @@ function listen(server) {
2020 } ) ) ;
2121}
2222
23+ // Test `options.highWaterMark` fails if less than zero.
2324{
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 ;
2436 const server = http . createServer ( {
25- highWaterMark : getDefaultHighWaterMark ( ) * 2 ,
37+ highWaterMark : serverWaterMarkValue ,
2638 } , 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 ) ;
2941 res . statusCode = 200 ;
3042 res . end ( ) ;
3143 } ) ) ;
3244
45+ setDefaultHighWaterMark ( false , waterMarkValue ) ;
3346 listen ( server ) ;
3447}
3548
49+ // Test socket watermark is the default if `highWaterMark` in `options` is unset.
3650{
51+ const waterMarkValue = 13000 ;
3752 const server = http . createServer (
3853 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 ) ;
4156 res . statusCode = 200 ;
4257 res . end ( ) ;
4358 } )
4459 ) ;
4560
61+ setDefaultHighWaterMark ( false , waterMarkValue ) ;
4662 listen ( server ) ;
4763}
0 commit comments