summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Harris <pharris@opentext.com>2015-01-23 19:46:29 -0500
committerPeter Harris <pharris@opentext.com>2015-01-23 19:46:29 -0500
commit224cd9fba654b049e905bd91134c941cb6880ac7 (patch)
tree28dc1720ef7cc90295298481269749951ea77d59
parent79009d3e9b296e68d106de184c83f46b20083ec6 (diff)
Factor out tcc function
Will be used by runAssert
-rw-r--r--run.go41
1 files changed, 23 insertions, 18 deletions
diff --git a/run.go b/run.go
index 030d8dc..0fd4c3f 100644
--- a/run.go
+++ b/run.go
@@ -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()