@@ -306,6 +306,8 @@ async function generateTLSConfig() {
306306  } ; 
307307} 
308308
309+ // setInterval(() => console.log("Im still alive!"), 5000); 
310+ 
309311/* eslint-disable no-console */ 
310312const  main  =  async  ( )  =>  { 
311313  const  logger  =  new  Logger ( `${ QUICStream . name }  ,  LogLevel . WARN ,  [ 
@@ -322,8 +324,7 @@ const main = async () => {
322324  const  clientCrypto  =  { 
323325    randomBytes : ( data )  =>  webcrypto . getRandomValues ( new  Uint8Array ( data ) ) , 
324326  } ; 
325-   const  message  =  Buffer . from ( 'The Quick Brown Fox Jumped Over The Lazy Dog' ) ; 
326-   const  connectionEventProm  =  utils . promise ( ) ; 
327+   let  connectionEventProm  =  utils . promise ( ) ; 
327328  const  tlsConfig  =  await  generateTLSConfig ( ) ; 
328329  const  server  =  new  QUICServer ( { 
329330    crypto : { 
@@ -342,45 +343,51 @@ const main = async () => {
342343    connectionEventProm . resolveP ( e ) , 
343344  ) ; 
344345  await  server . start ( {  host : '127.0.0.1'  } ) ; 
345-   const  client  =  await  QUICClient . createQUICClient ( { 
346-     host : '127.0.0.1' , 
347-     port : server . port , 
348-     localHost : '127.0.0.1' , 
349-     crypto : { 
350-       ops : clientCrypto , 
351-     } , 
352-     logger : logger . getChild ( QUICClient . name ) , 
353-     config : { 
354-       verifyPeer : false , 
355-     } , 
356-   } ) ; 
357-   socketCleanMethods . extractSocket ( client ) ; 
358-   const  conn  =  ( await  connectionEventProm . p ) . detail ; 
359-   const  activeServerStreams  =  [ ] ; 
360-   conn . addEventListener ( 
361-     events . EventQUICConnectionStream . name , 
362-     ( streamEvent )  =>  { 
363-       const  stream  =  streamEvent . detail ; 
364-       const  streamProm  =  stream . readable . pipeTo ( stream . writable ) ; 
365-       activeServerStreams . push ( streamProm ) ; 
366-     } , 
367-   ) ; 
368346
369-   for  ( let  i  =  0 ;  i  <  1000 ;  i ++ )  { 
370-     console . error ( 'loop' ) ; 
347+   const  data  =  Buffer . alloc ( 1 ,  0xf0 ) ; 
348+ 
349+   for  ( let  i  =  0 ;  i  <  100000 ;  i ++ )  { 
350+     // if (i % 500 == 0) console.error('loop', i); 
351+     console . error ( 'loop' ,  i ) ; 
352+ 
353+     connectionEventProm  =  utils . promise ( ) ; 
354+     const  client  =  await  QUICClient . createQUICClient ( { 
355+       host : '127.0.0.1' , 
356+       port : server . port , 
357+       localHost : '127.0.0.1' , 
358+       crypto : { 
359+         ops : clientCrypto , 
360+       } , 
361+       logger : logger . getChild ( QUICClient . name ) , 
362+       config : { 
363+         verifyPeer : false , 
364+       } , 
365+     } ) ; 
366+     socketCleanMethods . extractSocket ( client ) ; 
367+     const  conn  =  ( await  connectionEventProm . p ) . detail ; 
368+     let  activeStream  =  undefined ; 
369+     conn . addEventListener ( 
370+       events . EventQUICConnectionStream . name , 
371+       ( streamEvent )  =>  { 
372+         const  stream  =  streamEvent . detail ; 
373+         const  streamProm  =  stream . readable . pipeTo ( stream . writable ) ; 
374+         activeStream  =  streamProm ; 
375+       } , 
376+       {  'once' : true  } , 
377+     ) ; 
378+ 
371379    const  stream  =  client . connection . newStream ( ) ; 
372380    const  writer  =  stream . writable . getWriter ( ) ; 
373-     await  writer . write ( message ) ; 
381+     await  writer . write ( data ) ; 
374382    await  writer . close ( ) ; 
375-     const  reader  =  stream . readable . getReader ( ) ; 
376-     let  finished  =  false ; 
377-     while  ( ! finished )  { 
378-       finished  =  ( await  reader . read ( ) ) . done ; 
383+     for  await  ( const  _  of  stream . readable )  { 
384+       // do nothing 
379385    } 
386+     await  activeStream ; 
387+     await  conn . stop ( {  force : true  } ) ; 
388+     await  client . destroy ( {  force : true  } ) ; 
380389  } 
381-   await  Promise . all ( [ activeServerStreams ] ) ; 
382390
383-   await  client . destroy ( {  force : true  } ) ; 
384391  await  server . stop ( {  force : true  } ) ; 
385392  console . error ( 'Test passed!' ) ; 
386393} ; 
0 commit comments