@@ -17,38 +17,40 @@ var nextTick = typeof setImmediate !== 'undefined'
1717exports = module . exports = ( function ( ) {
1818 var harness ;
1919 return function ( ) {
20- if ( ! harness ) {
21- harness = createHarness ( ) ;
22- var stream = harness . createStream ( ) ;
23- stream . pipe ( createDefaultStream ( ) ) ;
24-
25- var ended = false ;
26- stream . on ( 'end' , function ( ) { ended = true } ) ;
27-
28- if ( process . exit && process . _getActiveHandles ) {
29- var iv = setInterval ( function ( ) {
30- if ( process . _getActiveHandles ( ) . length > 1 ) return ;
31-
32- clearInterval ( iv ) ;
33- setTimeout ( function ( ) {
34- if ( ! ended ) {
35- for ( var i = 0 ; i < harness . _tests . length ; i ++ ) {
36- var t = harness . _tests [ i ] ;
37- t . _exit ( ) ;
38- }
39- }
40- } , 100 ) ;
41-
42- setTimeout ( function ( ) {
43- process . exit ( harness . _exitCode ) ;
44- } , 110 ) ;
45- } ) ;
46- }
47- }
20+ if ( ! harness ) harness = createExitHarness ( ) ;
4821 return harness . apply ( this , arguments ) ;
4922 } ;
5023} ) ( ) ;
5124
25+ function createExitHarness ( ) {
26+ var harness = createHarness ( ) ;
27+ var stream = harness . createStream ( ) ;
28+ stream . pipe ( createDefaultStream ( ) ) ;
29+
30+ var ended = false ;
31+ stream . on ( 'end' , function ( ) { ended = true } ) ;
32+
33+ if ( process . exit && process . _getActiveHandles ) {
34+ var iv = setInterval ( function ( ) {
35+ if ( process . _getActiveHandles ( ) . length > 1 ) return ;
36+
37+ clearInterval ( iv ) ;
38+ setTimeout ( function ( ) {
39+ if ( ended ) return ;
40+ for ( var i = 0 ; i < harness . _tests . length ; i ++ ) {
41+ var t = harness . _tests [ i ] ;
42+ t . _exit ( ) ;
43+ }
44+ } , 100 ) ;
45+
46+ setTimeout ( function ( ) {
47+ process . exit ( harness . _exitCode ) ;
48+ } , 105 ) ;
49+ } ) ;
50+ }
51+ return harness ;
52+ }
53+
5254exports . createHarness = createHarness ;
5355exports . Test = Test ;
5456exports . test = exports ; // tap compat
0 commit comments