tgt := args[1]
args = args[2:]
+
+ // Check for this first
+ if tgt == "systemtest" {
+ return MainSystemTest(args)
+ }
+
var cmd string
if len(args) > 0 {
cmd = args[0]
fmt.Printf("Unknown command: %s\n", cmd)
return 1
}
- } else if tgt == "systemtest" {
- return MainSystemTest()
}
if loadConfig {
package main
import (
+ "flag"
"fmt"
"os"
"path/filepath"
// Should we always do a new full clone (slow) or use a previous clone
// if it exists (and leave clones for future callers)?
-var FullClone = false
+
+var TestFlags struct {
+ Clean bool
+}
type InitialTreeState map[Tree]*map[string]string
func InitRepo(st *SystemTest) bool {
mkdir := true
- if FullClone {
+ if TestFlags.Clean {
+ fmt.Printf("Deleting old repositories...\n")
// Make temporary directory and cd to it
// rm -rf tmp
if err := os.RemoveAll("tmp"); err != nil {
}
// Delete files potentially left over from previous runs
- if !FullClone {
+ if !TestFlags.Clean {
// rm xsa.git/*.meta
files, err := filepath.Glob("xsa.git/*.meta")
if err != nil {
return true
}
-func MainSystemTest() (ret int) {
+func MainSystemTest(args []string) (ret int) {
var st SystemTest
+ flags := flag.NewFlagSet("xsatool:systemtest", flag.ContinueOnError)
+
+ flags.BoolVar(&TestFlags.Clean, "clean", false, "Delete and re-clone repository before test. Slower but more complete")
+
+ if err := flags.Parse(args); err != nil {
+ if err != flag.ErrHelp {
+ fmt.Printf("Error parsing args: %v\n", err)
+ }
+ return 1
+ }
+
// Fail unless we make it through the gauntlet
ret = 1
out:
os.Chdir(topdir)
- if FullClone {
- // rm -rf tmp
- if err := os.RemoveAll("tmp"); err != nil {
- st.Errorf("Removing temporary path: %v", err)
- ret = 1
- return
- }
- }
-
if st.failed {
fmt.Print("System test: FAILED\n")
} else {