mirror of https://github.com/k3s-io/k3s
Merge pull request #48292 from mml/fnord
Automatic merge from submit-queue (batch tested with PRs 48292, 48121) Return a slightly more verbose error when "go get" fails.pull/6/head
commit
c0c3fe011c
|
@ -144,8 +144,9 @@ func (t tester) getKubetest(get bool, old time.Duration) (string, error) {
|
|||
return "", fmt.Errorf("Cannot install kubetest until $GOPATH is set")
|
||||
}
|
||||
log.Print("Updating kubetest binary...")
|
||||
if err = t.wait("go", "get", "-u", "k8s.io/test-infra/kubetest"); err != nil {
|
||||
return "", err // Could not upgrade
|
||||
cmd := []string{"go", "get", "-u", "k8s.io/test-infra/kubetest"}
|
||||
if err = t.wait(cmd[0], cmd[1:]...); err != nil {
|
||||
return "", fmt.Errorf("%s: %v", strings.Join(cmd, " "), err) // Could not upgrade
|
||||
}
|
||||
if p, err = t.lookKubetest(); err != nil {
|
||||
return "", err // Cannot find kubetest
|
||||
|
|
|
@ -190,10 +190,12 @@ func TestGetKubetest(t *testing.T) {
|
|||
p := "PATH"
|
||||
pk := filepath.Join(p, "kubetest")
|
||||
eu := errors.New("upgrade failed")
|
||||
euVerbose := fmt.Errorf("go get -u k8s.io/test-infra/kubetest: %v", eu)
|
||||
et := errors.New("touch failed")
|
||||
cases := []struct {
|
||||
get bool
|
||||
old time.Duration
|
||||
name string
|
||||
get bool
|
||||
old time.Duration
|
||||
|
||||
stat string // stat succeeds on this file
|
||||
path bool // file exists on path
|
||||
|
@ -205,7 +207,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath string
|
||||
returnError error
|
||||
}{
|
||||
{ // 0: Pass when on GOPATH/bin
|
||||
{name: "0: Pass when on GOPATH/bin",
|
||||
get: false,
|
||||
old: 0,
|
||||
|
||||
|
@ -219,7 +221,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath: gpk,
|
||||
returnError: nil,
|
||||
},
|
||||
{ // 1: Pass when on PATH
|
||||
{name: "1: Pass when on PATH",
|
||||
get: false,
|
||||
old: 0,
|
||||
|
||||
|
@ -233,7 +235,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath: pk,
|
||||
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,
|
||||
old: 0,
|
||||
|
||||
|
@ -247,7 +249,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath: pk,
|
||||
returnError: nil,
|
||||
},
|
||||
{ // 3: Don't upgrade on PATH when young.
|
||||
{name: "3: Don't upgrade on PATH when young.",
|
||||
get: true,
|
||||
old: time.Hour,
|
||||
|
||||
|
@ -261,7 +263,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath: pk,
|
||||
returnError: nil,
|
||||
},
|
||||
{ // 4: Upgrade if old but GOPATH is set.
|
||||
{name: "4: Upgrade if old but GOPATH is set.",
|
||||
get: true,
|
||||
old: 0,
|
||||
|
||||
|
@ -275,7 +277,7 @@ func TestGetKubetest(t *testing.T) {
|
|||
returnPath: pk,
|
||||
returnError: nil,
|
||||
},
|
||||
{ // 5: Fail if upgrade fails
|
||||
{name: "5: Fail if upgrade fails",
|
||||
get: true,
|
||||
old: 0,
|
||||
|
||||
|
@ -287,9 +289,9 @@ func TestGetKubetest(t *testing.T) {
|
|||
goPath: gpk,
|
||||
|
||||
returnPath: "",
|
||||
returnError: eu,
|
||||
returnError: euVerbose,
|
||||
},
|
||||
{ // 6: Fail if touch fails
|
||||
{name: "6: Fail if touch fails",
|
||||
get: true,
|
||||
old: 0,
|
||||
|
||||
|
@ -309,21 +311,21 @@ func TestGetKubetest(t *testing.T) {
|
|||
didUp := false
|
||||
didTouch := false
|
||||
l := tester{
|
||||
func(p string) (os.FileInfo, error) {
|
||||
stat: func(p string) (os.FileInfo, error) {
|
||||
// stat
|
||||
if p != c.stat {
|
||||
return nil, fmt.Errorf("Failed to find %s", p)
|
||||
}
|
||||
return FileInfo{time.Now().Add(c.age * -1)}, nil
|
||||
},
|
||||
func(name string) (string, error) {
|
||||
lookPath: func(name string) (string, error) {
|
||||
if c.path {
|
||||
return filepath.Join(p, name), nil
|
||||
}
|
||||
return "", fmt.Errorf("Not on path: %s", name)
|
||||
},
|
||||
c.goPath,
|
||||
func(cmd string, args ...string) error {
|
||||
goPath: c.goPath,
|
||||
wait: func(cmd string, args ...string) error {
|
||||
if cmd == "go" {
|
||||
if c.upgraded {
|
||||
didUp = true
|
||||
|
@ -338,14 +340,24 @@ func TestGetKubetest(t *testing.T) {
|
|||
return et
|
||||
},
|
||||
}
|
||||
if p, e := l.getKubetest(c.get, c.old); p != c.returnPath || e != c.returnError {
|
||||
t.Errorf("%d: c=%v p=%v e=%v", i, c, p, e)
|
||||
p, e := l.getKubetest(c.get, c.old)
|
||||
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 {
|
||||
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 {
|
||||
t.Errorf("%d: bad touch state of %v", i, didTouch)
|
||||
t.Errorf("%d: test=%q bad touch state of %v", i, c.name, didTouch)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue