XenRepos map[Tree]*XenRepo
xsa Repo
}
+ test struct {
+ topdir string
+ }
}
// Reset global state each run for testing sake
G.config.Security = SecurityMeta{}
G.repos.xsa = Repo{}
G.repos.XenRepos = make(map[Tree]*XenRepo)
+ // Don't reset 'test' data
}
func XsaMain(args []string) int {
return fmt.Errorf("Trying to read %s: %v\n", configpath, err)
}
+ if rootDir == G.test.topdir {
+ return err
+ }
+
rootDir = path.Clean(rootDir + "/..")
if rootDir == "/" {
// Should return 'true' for os.IsNotExist(err)
// Set up the repo in a known state.
func InitRepo(st *SystemTest) bool {
- callRepoInit := true
+ mkdir := true
if FullClone {
// Make temporary directory and cd to it
// Check to see if the directory exists
_, err := os.Stat("tmp")
if err == nil {
- callRepoInit = false
+ mkdir = false
} else {
if !os.IsNotExist(err) {
st.Errorf("Stat'ing temporary directory: %v\n", err)
}
}
- if callRepoInit {
+ if mkdir {
// mkdir tmp
if err := os.Mkdir("tmp", 0777); err != nil {
st.Errorf("Making temporary path: %v\n", err)
return false
}
- if callRepoInit {
- // Initialize a current version of the repo
- if ret := MainHarness("repo", "init"); ret != 0 {
- st.Errorf("repo init failed: %d\n", ret)
- return false
- }
- } else {
- // Read existing version of repos
- if ret := MainHarness("repo", "info"); ret != 0 {
- st.Errorf("repo info failed: %d\n", ret)
- return false
- }
+ // Get rid of old .xsatool
+ if err := os.Remove(".xsatool"); err != nil && !os.IsNotExist(err) {
+ st.Errorf("Removing xsatool config file: %v", err)
+ return false
+ }
+
+ var err error
+ if G.test.topdir, err = os.Getwd(); err != nil {
+ st.Errorf("Getting topdir")
+ }
+
+ // Initialize a current version of the repo
+ if ret := MainHarness("repo", "init"); ret != 0 {
+ st.Errorf("repo init failed: %d\n", ret)
+ return false
+ }
+
+ if G.config.Tool.rootDir != G.test.topdir {
+ st.Errorf("Wrong root directory! Wanted %s got %s\n",
+ G.test.topdir,
+ G.config.Tool.rootDir)
+ return false
}
updateBranches := func(t Tree) (err error) {