]> xenbits.xensource.com Git - people/gdunlap/xsatool/commitdiff
system_test: Add versions and lack of metadata to 'state'
authorGeorge Dunlap <george.dunlap@citrix.com>
Wed, 10 May 2017 17:30:16 +0000 (18:30 +0100)
committerGeorge Dunlap <george.dunlap@citrix.com>
Wed, 10 May 2017 17:30:16 +0000 (18:30 +0100)
Delete all versions >= 4.9, and any tags after 4.8.0 or 4.7.2.

Also delete xsa.git/*.meta

Signed-off-by: George Dunlap <george.dunlap@citrix.com>
system_test.go

index 94a144974aea9b82673e3c6c9f8f4a17bdb7afb2..723fbc346853982c16d0b0ddc20bf6d8feeeebe4 100644 (file)
@@ -3,6 +3,7 @@ package main
 import (
        "fmt"
        "os"
+       "path/filepath"
        "testing"
 )
 
@@ -101,7 +102,51 @@ func InitRepo(t *testing.T) bool {
 
        // Delete:
        // All xenversions > 4.8
-       //  4.8.0, 4.7.2, 4.6.5, 4.5.5
+       //  4.8.0, 4.7.2
+       // (4.6 and previous will have no new versions)
+       vlimit := map[XenVersion]XenVersionFull{
+               "4.8": "4.8.0",
+               "4.7": "4.7.2",
+       }
+       r := G.repos.XenRepos[TreeXen]
+       versions, err := r.GetVersions()
+       if err != nil {
+               t.Errorf("Error getting Xen releases: %v\n", err)
+               return false
+       }
+
+       // FIXME: Grab 4.8.1 ref so we can re-tag it and test repo update
+       for _, fv := range versions {
+               l, prs := vlimit[fv.XenVersion()]
+               if fv.XenVersion().IsGreaterEqualThan(XenVersion("4.9")) ||
+                       (prs && fv.Point() > l.Point()) {
+                       tag := "RELEASE-" + string(fv)
+                       t.Logf("Deleting tag %s\n", tag)
+                       if err := r.DeleteTag(tag); err != nil {
+                               t.Errorf("Deleting tag %s: %v\n", tag, err)
+                               return false
+                       }
+               }
+       }
+
+       // Delete files potentially left over from previous runs
+       if !FullClone {
+               // rm xsa.git/*.meta
+               files, err := filepath.Glob("xsa.git/*.meta")
+               if err != nil {
+                       t.Errorf("Finding meta files to remove: %v", err)
+                       return false
+               }
+
+               for _, file := range files {
+                       t.Logf("Removing meta file %s\n", file)
+                       err = os.Remove(file)
+                       if err != nil {
+                               t.Errorf("Removing meta file %s: %v", file, err)
+                               return false
+                       }
+               }
+       }
 
        return true
 }