@@ -681,7 +681,11 @@ Test.prototype.stdin = function (name, extra, deferred) {
681
681
this . comment ( 'Subtest: ' + name )
682
682
this . _currentChild = stdin
683
683
var start = process . hrtime ( )
684
- var parser = new Parser ( { preserveWhitespace : true } )
684
+ var parser = new Parser ( {
685
+ preserveWhitespace : true ,
686
+ bail : this . _bail ,
687
+ omitVersion : true
688
+ } )
685
689
var self = this
686
690
687
691
childStream ( self , stdin , parser )
@@ -737,24 +741,14 @@ function childStream (self, child, parser) {
737
741
var emitter = parser || child
738
742
739
743
if ( parser ) {
740
- if ( self . _bail ) {
741
- bailOnFail ( self , child , parser )
742
- }
743
-
744
744
child . pipe ( parser )
745
745
}
746
746
747
747
emitter . on ( 'bailout' , function ( reason ) {
748
748
rootBail ( self , reason )
749
749
} )
750
750
751
- var sawVersion = false
752
751
emitter . on ( 'line' , function onEmitterLine ( line ) {
753
- if ( ! sawVersion && line . match ( / ^ T A P v e r s i o n \d + \n $ / ) ) {
754
- sawVersion = true
755
- return
756
- }
757
-
758
752
line = ' ' + line
759
753
self . push ( line )
760
754
} )
@@ -863,20 +857,19 @@ Test.prototype.spawn = function spawnTest (cmd, args, options, name, extra, defe
863
857
child . kill ( 'SIGKILL' )
864
858
} . bind ( this ) )
865
859
866
- var parser = new Parser ( { preserveWhitespace : true } )
860
+ var parser = new Parser ( {
861
+ preserveWhitespace : true ,
862
+ bail : this . _bail ,
863
+ omitVersion : true
864
+ } )
867
865
var self = this
868
866
if ( ! extra . buffered ) {
869
867
this . comment ( 'Subtest: ' + name )
870
868
childStream ( self , child . stdout , parser )
871
869
} else {
872
870
var buffer = ''
873
- var sawVersion = false
874
871
child . stdout . pipe ( parser )
875
872
parser . on ( 'line' , function ( line ) {
876
- if ( ! sawVersion && line . match ( / ^ T A P v e r s i o n \d + \n $ / ) ) {
877
- sawVersion = true
878
- return
879
- }
880
873
buffer += line
881
874
} )
882
875
}
@@ -925,7 +918,7 @@ Test.prototype.spawn = function spawnTest (cmd, args, options, name, extra, defe
925
918
results . ok = false
926
919
}
927
920
928
- if ( results && results . count === 0 && ! signal && ! code ) {
921
+ if ( results && results . count === 0 && ! signal && ! code && ! results . bailout ) {
929
922
extra . skip = 'No tests found'
930
923
if ( results . plan && results . plan . skipReason ) {
931
924
extra . skip = results . plan . skipReason
@@ -1006,23 +999,6 @@ function reportTimeout (stream, parser, extra, ind) {
1006
999
}
1007
1000
}
1008
1001
1009
- function bailOnFail ( self , stream , parser , root ) {
1010
- root = root || parser
1011
-
1012
- parser . on ( 'child' , function ( c ) {
1013
- bailOnFail ( self , stream , c , root )
1014
- } )
1015
-
1016
- parser . on ( 'assert' , function ( res ) {
1017
- if ( ! res . todo && ! res . skip && ! res . ok && res . name . slice ( - 1 ) !== '{' ) {
1018
- var ind = new Array ( parser . level + 1 ) . join ( ' ' )
1019
- var line = ind + 'Bail out! # ' + res . name . trim ( ) + '\n'
1020
- root . buffer = ''
1021
- root . write ( line )
1022
- }
1023
- } )
1024
- }
1025
-
1026
1002
Test . prototype . done = Test . prototype . end = function end ( implicit ) {
1027
1003
if ( this . _bailedOut ) {
1028
1004
return
0 commit comments