Fix e2e_test.go

This commit is contained in:
Matt Liggett 2017-06-30 13:40:52 -07:00
parent 2ee08591b0
commit 421166db0f

View File

@ -190,10 +190,12 @@ func TestGetKubetest(t *testing.T) {
p := "PATH" p := "PATH"
pk := filepath.Join(p, "kubetest") pk := filepath.Join(p, "kubetest")
eu := errors.New("upgrade failed") eu := errors.New("upgrade failed")
euVerbose := fmt.Errorf("go get -u k8s.io/test-infra/kubetest: %v", eu)
et := errors.New("touch failed") et := errors.New("touch failed")
cases := []struct { cases := []struct {
get bool name string
old time.Duration get bool
old time.Duration
stat string // stat succeeds on this file stat string // stat succeeds on this file
path bool // file exists on path path bool // file exists on path
@ -205,7 +207,7 @@ func TestGetKubetest(t *testing.T) {
returnPath string returnPath string
returnError error returnError error
}{ }{
{ // 0: Pass when on GOPATH/bin {name: "0: Pass when on GOPATH/bin",
get: false, get: false,
old: 0, old: 0,
@ -219,7 +221,7 @@ func TestGetKubetest(t *testing.T) {
returnPath: gpk, returnPath: gpk,
returnError: nil, returnError: nil,
}, },
{ // 1: Pass when on PATH {name: "1: Pass when on PATH",
get: false, get: false,
old: 0, old: 0,
@ -233,7 +235,7 @@ func TestGetKubetest(t *testing.T) {
returnPath: pk, returnPath: pk,
returnError: nil, returnError: nil,
}, },
{ // 2: Don't upgrade if on PATH and GOPATH is "" {name: "2: Don't upgrade if on PATH and GOPATH is ''",
get: true, get: true,
old: 0, old: 0,
@ -247,7 +249,7 @@ func TestGetKubetest(t *testing.T) {
returnPath: pk, returnPath: pk,
returnError: nil, returnError: nil,
}, },
{ // 3: Don't upgrade on PATH when young. {name: "3: Don't upgrade on PATH when young.",
get: true, get: true,
old: time.Hour, old: time.Hour,
@ -261,7 +263,7 @@ func TestGetKubetest(t *testing.T) {
returnPath: pk, returnPath: pk,
returnError: nil, returnError: nil,
}, },
{ // 4: Upgrade if old but GOPATH is set. {name: "4: Upgrade if old but GOPATH is set.",
get: true, get: true,
old: 0, old: 0,
@ -275,7 +277,7 @@ func TestGetKubetest(t *testing.T) {
returnPath: pk, returnPath: pk,
returnError: nil, returnError: nil,
}, },
{ // 5: Fail if upgrade fails {name: "5: Fail if upgrade fails",
get: true, get: true,
old: 0, old: 0,
@ -287,9 +289,9 @@ func TestGetKubetest(t *testing.T) {
goPath: gpk, goPath: gpk,
returnPath: "", returnPath: "",
returnError: eu, returnError: euVerbose,
}, },
{ // 6: Fail if touch fails {name: "6: Fail if touch fails",
get: true, get: true,
old: 0, old: 0,
@ -309,21 +311,21 @@ func TestGetKubetest(t *testing.T) {
didUp := false didUp := false
didTouch := false didTouch := false
l := tester{ l := tester{
func(p string) (os.FileInfo, error) { stat: func(p string) (os.FileInfo, error) {
// stat // stat
if p != c.stat { if p != c.stat {
return nil, fmt.Errorf("Failed to find %s", p) return nil, fmt.Errorf("Failed to find %s", p)
} }
return FileInfo{time.Now().Add(c.age * -1)}, nil return FileInfo{time.Now().Add(c.age * -1)}, nil
}, },
func(name string) (string, error) { lookPath: func(name string) (string, error) {
if c.path { if c.path {
return filepath.Join(p, name), nil return filepath.Join(p, name), nil
} }
return "", fmt.Errorf("Not on path: %s", name) return "", fmt.Errorf("Not on path: %s", name)
}, },
c.goPath, goPath: c.goPath,
func(cmd string, args ...string) error { wait: func(cmd string, args ...string) error {
if cmd == "go" { if cmd == "go" {
if c.upgraded { if c.upgraded {
didUp = true didUp = true
@ -338,14 +340,24 @@ func TestGetKubetest(t *testing.T) {
return et return et
}, },
} }
if p, e := l.getKubetest(c.get, c.old); p != c.returnPath || e != c.returnError { p, e := l.getKubetest(c.get, c.old)
t.Errorf("%d: c=%v p=%v e=%v", i, c, p, e) if p != c.returnPath {
t.Errorf("%d: test=%q returnPath %q != %q", i, c.name, p, c.returnPath)
}
if e == nil || c.returnError == nil {
if e != c.returnError {
t.Errorf("%d: test=%q returnError %q != %q", i, c.name, e, c.returnError)
}
} else {
if e.Error() != c.returnError.Error() {
t.Errorf("%d: test=%q returnError %q != %q", i, c.name, e, c.returnError)
}
} }
if didUp != c.upgraded { if didUp != c.upgraded {
t.Errorf("%d: bad upgrade state of %v", i, didUp) t.Errorf("%d: test=%q bad upgrade state of %v", i, c.name, didUp)
} }
if didTouch != c.touched { if didTouch != c.touched {
t.Errorf("%d: bad touch state of %v", i, didTouch) t.Errorf("%d: test=%q bad touch state of %v", i, c.name, didTouch)
} }
} }
} }