@@ -12,14 +12,15 @@ const bench = common.createBenchmark(main, {
1212 len : [ 102400 , 1024 * 1024 * 16 ] ,
1313 type : [ 'utf' , 'asc' , 'buf' ] ,
1414 dur : [ 5 ]
15- } ) ;
16-
17- const { TCP , constants : TCPConstants } = process . binding ( 'tcp_wrap' ) ;
18- const TCPConnectWrap = process . binding ( 'tcp_wrap' ) . TCPConnectWrap ;
19- const WriteWrap = process . binding ( 'stream_wrap' ) . WriteWrap ;
20- const PORT = common . PORT ;
15+ } , { flags : [ '--expose-internals' , '--no-warnings' ] } ) ;
2116
2217function main ( { dur, len, type } ) {
18+ const { internalBinding } = require ( 'internal/test/binding' ) ;
19+ const { TCP , constants : TCPConstants } = process . binding ( 'tcp_wrap' ) ;
20+ const { TCPConnectWrap } = process . binding ( 'tcp_wrap' ) ;
21+ const { WriteWrap } = internalBinding ( 'stream_wrap' ) ;
22+ const PORT = common . PORT ;
23+
2324 const serverHandle = new TCP ( TCPConstants . SERVER ) ;
2425 var err = serverHandle . bind ( '127.0.0.1' , PORT ) ;
2526 if ( err )
@@ -58,71 +59,70 @@ function main({ dur, len, type }) {
5859 } ;
5960
6061 client ( type , len ) ;
61- }
62-
6362
64- function fail ( err , syscall ) {
65- throw util . _errnoException ( err , syscall ) ;
66- }
67-
68- function client ( type , len ) {
69- var chunk ;
70- switch ( type ) {
71- case 'buf' :
72- chunk = Buffer . alloc ( len , 'x' ) ;
73- break ;
74- case 'utf' :
75- chunk = 'ΓΌ' . repeat ( len / 2 ) ;
76- break ;
77- case 'asc' :
78- chunk = 'x' . repeat ( len ) ;
79- break ;
80- default :
81- throw new Error ( `invalid type: ${ type } ` ) ;
63+ function fail ( err , syscall ) {
64+ throw util . _errnoException ( err , syscall ) ;
8265 }
8366
84- const clientHandle = new TCP ( TCPConstants . SOCKET ) ;
85- const connectReq = new TCPConnectWrap ( ) ;
86- const err = clientHandle . connect ( connectReq , '127.0.0.1' , PORT ) ;
87-
88- if ( err )
89- fail ( err , 'connect' ) ;
90-
91- clientHandle . readStart ( ) ;
92-
93- connectReq . oncomplete = function ( err ) {
94- if ( err )
95- fail ( err , 'connect' ) ;
96-
97- while ( clientHandle . writeQueueSize === 0 )
98- write ( ) ;
99- } ;
100-
101- function write ( ) {
102- const writeReq = new WriteWrap ( ) ;
103- writeReq . oncomplete = afterWrite ;
104- var err ;
67+ function client ( type , len ) {
68+ var chunk ;
10569 switch ( type ) {
10670 case 'buf' :
107- err = clientHandle . writeBuffer ( writeReq , chunk ) ;
71+ chunk = Buffer . alloc ( len , 'x' ) ;
10872 break ;
10973 case 'utf' :
110- err = clientHandle . writeUtf8String ( writeReq , chunk ) ;
74+ chunk = 'ΓΌ' . repeat ( len / 2 ) ;
11175 break ;
11276 case 'asc' :
113- err = clientHandle . writeAsciiString ( writeReq , chunk ) ;
77+ chunk = 'x' . repeat ( len ) ;
11478 break ;
79+ default :
80+ throw new Error ( `invalid type: ${ type } ` ) ;
11581 }
11682
117- if ( err )
118- fail ( err , 'write' ) ;
119- }
83+ const clientHandle = new TCP ( TCPConstants . SOCKET ) ;
84+ const connectReq = new TCPConnectWrap ( ) ;
85+ const err = clientHandle . connect ( connectReq , '127.0.0.1' , PORT ) ;
12086
121- function afterWrite ( err , handle ) {
12287 if ( err )
123- fail ( err , 'write' ) ;
88+ fail ( err , 'connect' ) ;
89+
90+ clientHandle . readStart ( ) ;
91+
92+ connectReq . oncomplete = function ( err ) {
93+ if ( err )
94+ fail ( err , 'connect' ) ;
12495
125- while ( clientHandle . writeQueueSize === 0 )
126- write ( ) ;
96+ while ( clientHandle . writeQueueSize === 0 )
97+ write ( ) ;
98+ } ;
99+
100+ function write ( ) {
101+ const writeReq = new WriteWrap ( ) ;
102+ writeReq . oncomplete = afterWrite ;
103+ var err ;
104+ switch ( type ) {
105+ case 'buf' :
106+ err = clientHandle . writeBuffer ( writeReq , chunk ) ;
107+ break ;
108+ case 'utf' :
109+ err = clientHandle . writeUtf8String ( writeReq , chunk ) ;
110+ break ;
111+ case 'asc' :
112+ err = clientHandle . writeAsciiString ( writeReq , chunk ) ;
113+ break ;
114+ }
115+
116+ if ( err )
117+ fail ( err , 'write' ) ;
118+ }
119+
120+ function afterWrite ( err , handle ) {
121+ if ( err )
122+ fail ( err , 'write' ) ;
123+
124+ while ( clientHandle . writeQueueSize === 0 )
125+ write ( ) ;
126+ }
127127 }
128128}
0 commit comments