diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 246e146813..5f1ef0124b 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -132,7 +132,6 @@ func TestFunctional(t *testing.T) { {"UpdateContextCmd", validateUpdateContextCmd}, {"DockerEnv", validateDockerEnv}, {"NodeLabels", validateNodeLabels}, - {"MultiNode", validateMultiNode}, } for _, tc := range tests { tc := tc @@ -188,38 +187,6 @@ func validateDockerEnv(ctx context.Context, t *testing.T, profile string) { } -func validateMultiNode(ctx context.Context, t *testing.T, profile string) { - if NoneDriver() { - t.Skip("none driver does not support multinode") - } - - // TODO: remove this skip once docker multinode is fixed - if KicDriver() { - t.Skip("docker driver multinode is currently broken :(") - } - - // Add a node to the current cluster - addArgs := []string{"node", "add", "-p", profile, "-v", "3", "--alsologtostderr"} - rr, err := Run(t, exec.CommandContext(ctx, Target(), addArgs...)) - if err != nil { - t.Fatalf("failed to add node to current cluster. args %q : %v", rr.Command(), err) - } - - rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", profile, "status")) - if err != nil { - t.Fatalf("failed to run minikube status. args %q : %v", rr.Command(), err) - } - - if strings.Count(rr.Stdout.String(), "host: Running") != 2 { - t.Errorf("status says both hosts are not running: args %q: %v", rr.Command(), rr.Stdout.String()) - } - - if strings.Count(rr.Stdout.String(), "kubelet: Running") != 2 { - t.Errorf("status says both kubelets are not running: args %q: %v", rr.Command(), rr.Stdout.String()) - } - -} - func validateStartWithProxy(ctx context.Context, t *testing.T, profile string) { srv, err := startHTTPProxy(t) if err != nil { diff --git a/test/integration/multinode_test.go b/test/integration/multinode_test.go new file mode 100644 index 0000000000..d907fbcf8d --- /dev/null +++ b/test/integration/multinode_test.go @@ -0,0 +1,64 @@ +// +build integration + +/* +Copyright 2020 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package integration + +import ( + "context" + "os/exec" + "strings" + "testing" +) + +func TestMultiNode(t *testing.T) { + if NoneDriver() { + t.Skip("none driver does not support multinode") + } + + // TODO: remove this skip once docker multinode is fixed + if KicDriver() { + t.Skip("docker driver multinode is currently broken :(") + } + + newProfile := UniqueProfileName("multinode") + ctx, cancel := context.WithTimeout(context.Background(), Minutes(30)) + defer CleanupWithLogs(t, profile, cancel) + + startArgs := append([]string{"start", "-p", newProfile, "--wait=true"}, StartArgs()...) + c := exec.CommandContext(ctx, Target(), startArgs...) + + // Add a node to the current cluster + addArgs := []string{"node", "add", "-p", newProfile, "-v", "3", "--alsologtostderr"} + rr, err := Run(t, exec.CommandContext(ctx, Target(), addArgs...)) + if err != nil { + t.Fatalf("failed to add node to current cluster. args %q : %v", rr.Command(), err) + } + + rr, err = Run(t, exec.CommandContext(ctx, Target(), "-p", newProfile, "status")) + if err != nil { + t.Fatalf("failed to run minikube status. args %q : %v", rr.Command(), err) + } + + if strings.Count(rr.Stdout.String(), "host: Running") != 2 { + t.Errorf("status says both hosts are not running: args %q: %v", rr.Command(), rr.Stdout.String()) + } + + if strings.Count(rr.Stdout.String(), "kubelet: Running") != 2 { + t.Errorf("status says both kubelets are not running: args %q: %v", rr.Command(), rr.Stdout.String()) + } + +}