From b17830a31203365f127828c0df49c89f895ec6c1 Mon Sep 17 00:00:00 2001 From: liz Date: Mon, 20 Aug 2018 17:08:20 -0400 Subject: [PATCH] Fix `bazel test //cmd/kubeadm/...` kubeadm tests no longer change the default directory, they simply use the correct absolute path --- cmd/kubeadm/test/cmd/BUILD | 3 +-- cmd/kubeadm/test/cmd/completion_test.go | 4 +++- cmd/kubeadm/test/cmd/init_test.go | 3 ++- cmd/kubeadm/test/cmd/join_test.go | 27 ++++++++++++++++--------- cmd/kubeadm/test/cmd/token_test.go | 22 ++++++++++++++++---- cmd/kubeadm/test/cmd/version_test.go | 6 ++++-- 6 files changed, 46 insertions(+), 19 deletions(-) diff --git a/cmd/kubeadm/test/cmd/BUILD b/cmd/kubeadm/test/cmd/BUILD index 33fd5a42cc..2fb31fdde8 100644 --- a/cmd/kubeadm/test/cmd/BUILD +++ b/cmd/kubeadm/test/cmd/BUILD @@ -23,9 +23,8 @@ go_test( "version_test.go", ], args = ["--kubeadm-path=$(location //cmd/kubeadm:kubeadm)"], - data = ["//cmd/kubeadm"], + data = ["//cmd/kubeadm"] + glob(["testdata/**"]), embed = [":go_default_library"], - rundir = ".", tags = [ "integration", "skip", diff --git a/cmd/kubeadm/test/cmd/completion_test.go b/cmd/kubeadm/test/cmd/completion_test.go index c02e775d70..b7e46ac478 100644 --- a/cmd/kubeadm/test/cmd/completion_test.go +++ b/cmd/kubeadm/test/cmd/completion_test.go @@ -19,6 +19,8 @@ package kubeadm import "testing" func TestCmdCompletion(t *testing.T) { + kubeadmPath := getKubeadmPath() + if *kubeadmCmdSkip { t.Log("kubeadm cmd tests being skipped") t.Skip() @@ -33,7 +35,7 @@ func TestCmdCompletion(t *testing.T) { } for _, rt := range tests { - _, _, actual := RunCmd(*kubeadmPath, "completion", rt.args) + _, _, actual := RunCmd(kubeadmPath, "completion", rt.args) if (actual == nil) != rt.expected { t.Errorf( "failed CmdCompletion running 'kubeadm completion %s' with an error: %v\n\texpected: %t\n\t actual: %t", diff --git a/cmd/kubeadm/test/cmd/init_test.go b/cmd/kubeadm/test/cmd/init_test.go index 60f8009723..e9672b352e 100644 --- a/cmd/kubeadm/test/cmd/init_test.go +++ b/cmd/kubeadm/test/cmd/init_test.go @@ -23,9 +23,10 @@ import ( ) func runKubeadmInit(args ...string) (string, string, error) { + kubeadmPath := getKubeadmPath() kubeadmArgs := []string{"init", "--dry-run", "--ignore-preflight-errors=all"} kubeadmArgs = append(kubeadmArgs, args...) - return RunCmd(*kubeadmPath, kubeadmArgs...) + return RunCmd(kubeadmPath, kubeadmArgs...) } func TestCmdInitToken(t *testing.T) { diff --git a/cmd/kubeadm/test/cmd/join_test.go b/cmd/kubeadm/test/cmd/join_test.go index 4a05b7c9b4..556ba7bfef 100644 --- a/cmd/kubeadm/test/cmd/join_test.go +++ b/cmd/kubeadm/test/cmd/join_test.go @@ -20,7 +20,8 @@ import "testing" // kubeadmReset executes "kubeadm reset" and restarts kubelet. func kubeadmReset() error { - _, _, err := RunCmd(*kubeadmPath, "reset") + kubeadmPath := getKubeadmPath() + _, _, err := RunCmd(kubeadmPath, "reset") return err } @@ -38,8 +39,9 @@ func TestCmdJoinConfig(t *testing.T) { {"--config=/does/not/exist/foo/bar", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinConfig running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -67,8 +69,9 @@ func TestCmdJoinDiscoveryFile(t *testing.T) { {"--discovery-file=file:wrong", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinDiscoveryFile running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -96,8 +99,9 @@ func TestCmdJoinDiscoveryToken(t *testing.T) { {"--discovery-token=token://asdf:asdf", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinDiscoveryToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -124,8 +128,9 @@ func TestCmdJoinNodeName(t *testing.T) { {"--node-name=foobar", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinNodeName running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -153,8 +158,9 @@ func TestCmdJoinTLSBootstrapToken(t *testing.T) { {"--tls-bootstrap-token=token://asdf:asdf", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinTLSBootstrapToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -182,8 +188,9 @@ func TestCmdJoinToken(t *testing.T) { {"--token=token://asdf:asdf", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinToken running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -203,6 +210,7 @@ func TestCmdJoinBadArgs(t *testing.T) { t.Skip() } + kubeadmPath := getKubeadmPath() var initTest = []struct { args string expected bool @@ -212,7 +220,7 @@ func TestCmdJoinBadArgs(t *testing.T) { } for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinBadArgs 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -239,8 +247,9 @@ func TestCmdJoinArgsMixed(t *testing.T) { {"--discovery-token=abcdef.1234567890abcdef --config=/etc/kubernetes/kubeadm.config", false}, } + kubeadmPath := getKubeadmPath() for _, rt := range initTest { - _, _, actual := RunCmd(*kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") + _, _, actual := RunCmd(kubeadmPath, "join", rt.args, "--ignore-preflight-errors=all") if (actual == nil) != rt.expected { t.Errorf( "failed CmdJoinArgsMixed running 'kubeadm join %s' with an error: %v\n\texpected: %t\n\t actual: %t", diff --git a/cmd/kubeadm/test/cmd/token_test.go b/cmd/kubeadm/test/cmd/token_test.go index 580bedcff7..b1506798d1 100644 --- a/cmd/kubeadm/test/cmd/token_test.go +++ b/cmd/kubeadm/test/cmd/token_test.go @@ -19,6 +19,7 @@ package kubeadm import ( "flag" "os" + "path" "path/filepath" "regexp" "testing" @@ -28,15 +29,26 @@ const ( TokenExpectedRegex = "^\\S{6}\\.\\S{16}\n$" ) -var kubeadmPath = flag.String("kubeadm-path", filepath.Join(os.Getenv("KUBE_ROOT"), "cluster/kubeadm.sh"), "Location of kubeadm") +var kubeadmPathFlag = flag.String("kubeadm-path", filepath.Join(os.Getenv("KUBE_ROOT"), "cluster/kubeadm.sh"), "Location of kubeadm") + +func getKubeadmPath() string { + kubeadmPath := *kubeadmPathFlag // TEST_SRCDIR is provided by Bazel. + if srcDir := os.Getenv("TEST_SRCDIR"); srcDir != "" { + kubeadmPath = path.Join(srcDir, os.Getenv("TEST_WORKSPACE"), kubeadmPath) + } + + return kubeadmPath +} + var kubeadmCmdSkip = flag.Bool("kubeadm-cmd-skip", false, "Skip kubeadm cmd tests") func TestCmdTokenGenerate(t *testing.T) { + kubeadmPath := getKubeadmPath() if *kubeadmCmdSkip { t.Log("kubeadm cmd tests being skipped") t.Skip() } - stdout, _, err := RunCmd(*kubeadmPath, "token", "generate") + stdout, _, err := RunCmd(kubeadmPath, "token", "generate") if err != nil { t.Fatalf("'kubeadm token generate' exited uncleanly: %v", err) } @@ -65,7 +77,8 @@ func TestCmdTokenGenerateTypoError(t *testing.T) { t.Skip() } - _, _, err := RunCmd(*kubeadmPath, "token", "genorate") // subtle typo + kubeadmPath := getKubeadmPath() + _, _, err := RunCmd(kubeadmPath, "token", "genorate") // subtle typo if err == nil { t.Error("'kubeadm token genorate' (a deliberate typo) exited without an error when we expected non-zero exit status") } @@ -84,8 +97,9 @@ func TestCmdTokenDelete(t *testing.T) { {"foobar", false}, // invalid token } + kubeadmPath := getKubeadmPath() for _, rt := range tests { - _, _, actual := RunCmd(*kubeadmPath, "token", "delete", rt.args) + _, _, actual := RunCmd(kubeadmPath, "token", "delete", rt.args) if (actual == nil) != rt.expected { t.Errorf( "failed CmdTokenDelete running 'kubeadm token %s' with an error: %v\n\texpected: %t\n\t actual: %t", diff --git a/cmd/kubeadm/test/cmd/version_test.go b/cmd/kubeadm/test/cmd/version_test.go index 07095d7285..85fb117061 100644 --- a/cmd/kubeadm/test/cmd/version_test.go +++ b/cmd/kubeadm/test/cmd/version_test.go @@ -49,8 +49,9 @@ func TestCmdVersion(t *testing.T) { {"", NormalExpectedRegex, true}, } + kubeadmPath := getKubeadmPath() for _, rt := range versionTest { - stdout, _, actual := RunCmd(*kubeadmPath, "version", rt.args) + stdout, _, actual := RunCmd(kubeadmPath, "version", rt.args) if (actual == nil) != rt.expected { t.Errorf( "failed CmdVersion running 'kubeadm version %s' with an error: %v\n\texpected: %t\n\t actual: %t", @@ -88,8 +89,9 @@ func TestCmdVersionOutputJsonOrYaml(t *testing.T) { {"--output=yaml", "yaml", true}, } + kubeadmPath := getKubeadmPath() for _, rt := range versionTest { - stdout, _, actual := RunCmd(*kubeadmPath, "version", rt.args) + stdout, _, actual := RunCmd(kubeadmPath, "version", rt.args) if (actual == nil) != rt.expected { t.Errorf( "failed CmdVersion running 'kubeadm version %s' with an error: %v\n\texpected: %t\n\t actual: %t",