11package main
22
33import (
4+ "bufio"
45 "flag"
56 "fmt"
7+ "io"
68 "io/ioutil"
79 "log"
810 "os"
@@ -176,7 +178,7 @@ func worker(id int, seeds <-chan int) {
176178 log .Printf ("To reproduce run: %s" , buildCommand (testname , blocks , period , genesis , seed ))
177179 if exitOnFail {
178180 log .Printf ("\b ERROR OUTPUT \n \n %s" , err )
179- break
181+ panic ( "halting simulations" )
180182 }
181183 } else {
182184 log .Printf ("[W%d] Seed %d: OK" , id , seed )
@@ -191,8 +193,20 @@ func spawnProc(workerID int, seed int) error {
191193 s := buildCommand (testname , blocks , period , genesis , seed )
192194 cmd := makeCmd (s )
193195 cmd .Stdout = stdoutFile
194- cmd .Stderr = stderrFile
195- err := cmd .Start ()
196+
197+ var err error
198+ var stderr io.ReadCloser
199+ if ! exitOnFail {
200+ cmd .Stderr = stderrFile
201+ } else {
202+ stderr , err = cmd .StderrPipe ()
203+ if err != nil {
204+ return err
205+ }
206+ }
207+ sc := bufio .NewScanner (stderr )
208+
209+ err = cmd .Start ()
196210 if err != nil {
197211 log .Printf ("couldn't start %q" , s )
198212 return err
@@ -201,6 +215,12 @@ func spawnProc(workerID int, seed int) error {
201215 workerID , cmd .Process .Pid , seed , stdoutFile .Name (), stderrFile .Name ())
202216 pushProcess (cmd .Process )
203217 defer popProcess (cmd .Process )
218+
219+ if exitOnFail {
220+ for sc .Scan () {
221+ fmt .Printf ("%s\n " , sc .Text ())
222+ }
223+ }
204224 return cmd .Wait ()
205225}
206226
0 commit comments