@@ -349,16 +349,20 @@ final class TestRunner {
349
349
/// and second argument containing the output of the execution.
350
350
func test( ) -> ( Bool , String ) {
351
351
var output = " "
352
- var success = true
352
+ var success = false
353
353
do {
354
354
let process = Process ( arguments: args ( ) , redirectOutput: true , verbose: false )
355
355
try process. launch ( )
356
356
let result = try process. waitUntilExit ( )
357
357
output = try ( result. utf8Output ( ) + result. utf8stderrOutput ( ) ) . chuzzle ( ) ?? " "
358
- success = result. exitStatus == . terminated( code: 0 )
359
- } catch {
360
- success = false
361
- }
358
+ switch result. exitStatus {
359
+ case . terminated( code: 0 ) :
360
+ success = true
361
+ case . signalled( let signal) :
362
+ output += " \n " + exitSignalText( code: signal)
363
+ default : break
364
+ }
365
+ } catch { }
362
366
return ( success, output)
363
367
}
364
368
@@ -369,10 +373,19 @@ final class TestRunner {
369
373
try processSet. add ( process)
370
374
try process. launch ( )
371
375
let result = try process. waitUntilExit ( )
372
- return result. exitStatus == . terminated( code: 0 )
373
- } catch {
374
- return false
375
- }
376
+ switch result. exitStatus {
377
+ case . terminated( code: 0 ) :
378
+ return true
379
+ case . signalled( let signal) :
380
+ print ( exitSignalText ( code: signal) )
381
+ default : break
382
+ }
383
+ } catch { }
384
+ return false
385
+ }
386
+
387
+ private func exitSignalText( code: Int32 ) -> String {
388
+ return " Exited with signal code \( code) "
376
389
}
377
390
}
378
391
@@ -494,6 +507,9 @@ final class ParallelTestRunner {
494
507
for error in failureOutput {
495
508
stdoutStream <<< error
496
509
}
510
+ if !failureOutput. isEmpty {
511
+ stdoutStream <<< " \n "
512
+ }
497
513
stdoutStream. flush ( )
498
514
}
499
515
}
0 commit comments