Skip to content

Commit e7f9c5a

Browse files
committed
error out
int
1 parent 74a0042 commit e7f9c5a

File tree

1 file changed

+23
-3
lines changed

1 file changed

+23
-3
lines changed

cmd/gaia/contrib/runsim/main.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package main
22

33
import (
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("\bERROR 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

Comments
 (0)