diff options
author | Peter Harris <pharris@opentext.com> | 2015-01-23 19:46:29 -0500 |
---|---|---|
committer | Peter Harris <pharris@opentext.com> | 2015-01-23 19:46:29 -0500 |
commit | 224cd9fba654b049e905bd91134c941cb6880ac7 (patch) | |
tree | 28dc1720ef7cc90295298481269749951ea77d59 | |
parent | 79009d3e9b296e68d106de184c83f46b20083ec6 (diff) |
Factor out tcc function
Will be used by runAssert
-rw-r--r-- | run.go | 41 |
1 files changed, 23 insertions, 18 deletions
@@ -63,6 +63,24 @@ func createConfig(outdir string) error { return cmd.Run() } +func tcc(args []string) (int, error) { + tcc := env("TCC", "tcc") + cmd := exec.Command(tcc, args...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + ret := 0 + if err != nil { + if ee, ok := err.(*exec.ExitError); ok { + if state, ok := ee.ProcessState.Sys().(syscall.WaitStatus); ok { + ret = state.ExitStatus() + err = nil + } + } + } + return ret, err +} + func main() { flag.Usage = func() { fmt.Fprintf(os.Stderr, "Usage: %s [OPTION]... [SCENARIO]\n", os.Args[0]) @@ -104,29 +122,16 @@ func main() { } // run the tests - tcc := env("TCC", "tcc") + ret := 0 args := []string{"-e", "-i", outdir, "-x", *config, "xts5"} if flag.NArg() >= 1 { // Scenario args = append(args, flag.Arg(0)) } - cmd := exec.Command(tcc, args...) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - err = cmd.Run() - ret := 0 + ret, err = tcc(args) if err != nil { - if ee, ok := err.(*exec.ExitError); ok { - if state, ok := ee.ProcessState.Sys().(syscall.WaitStatus); ok { - ret = state.ExitStatus() - } else { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } - } else { - fmt.Fprintln(os.Stderr, err) - os.Exit(1) - } + fmt.Fprintln(os.Stderr, err) + os.Exit(1) } // generate a short report @@ -137,7 +142,7 @@ func main() { os.Exit(1) } defer out.Close() - cmd = exec.Command(xtsReport, "-d2", "-f", filepath.Join(outdir, "journal")) + cmd := exec.Command(xtsReport, "-d2", "-f", filepath.Join(outdir, "journal")) cmd.Stderr = os.Stderr cmd.Stdout = out err = cmd.Run() |