From a5d86270d3ce2a956a21e83bb200f51431adb52c Mon Sep 17 00:00:00 2001 From: Shayne Wang Date: Tue, 11 Apr 2017 21:46:20 -0700 Subject: [PATCH] added coverage for scheduler/algorithm/types_test.go --- plugin/pkg/scheduler/algorithm/BUILD | 11 +++- plugin/pkg/scheduler/algorithm/types_test.go | 65 ++++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 plugin/pkg/scheduler/algorithm/types_test.go diff --git a/plugin/pkg/scheduler/algorithm/BUILD b/plugin/pkg/scheduler/algorithm/BUILD index c6df5bab02a76..91f12ed5f7ce7 100644 --- a/plugin/pkg/scheduler/algorithm/BUILD +++ b/plugin/pkg/scheduler/algorithm/BUILD @@ -28,10 +28,17 @@ go_library( go_test( name = "go_default_test", - srcs = ["scheduler_interface_test.go"], + srcs = [ + "scheduler_interface_test.go", + "types_test.go", + ], library = ":go_default_library", tags = ["automanaged"], - deps = ["//pkg/api/v1:go_default_library"], + deps = [ + "//pkg/api/v1:go_default_library", + "//plugin/pkg/scheduler/schedulercache:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + ], ) filegroup( diff --git a/plugin/pkg/scheduler/algorithm/types_test.go b/plugin/pkg/scheduler/algorithm/types_test.go new file mode 100644 index 0000000000000..0150be3b527c9 --- /dev/null +++ b/plugin/pkg/scheduler/algorithm/types_test.go @@ -0,0 +1,65 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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 algorithm + +import ( + "testing" + + "k8s.io/apimachinery/pkg/labels" + "k8s.io/kubernetes/pkg/api/v1" + "k8s.io/kubernetes/plugin/pkg/scheduler/schedulercache" +) + +// EmptyMetadataProducer should returns a no-op MetadataProducer type. +func TestEmptyMetadataProducer(t *testing.T) { + fakePod := new(v1.Pod) + fakeLabelSelector := labels.SelectorFromSet(labels.Set{"foo": "bar"}) + + nodeNameToInfo := map[string]*schedulercache.NodeInfo{ + "2": schedulercache.NewNodeInfo(fakePod), + "1": schedulercache.NewNodeInfo(), + } + // Test EmptyMetadataProducer + metadata := EmptyMetadataProducer(fakePod, nodeNameToInfo) + if metadata != nil { + t.Errorf("failed to produce empty metadata: got %v, expected nil", metadata) + } + // Test EmptyControllerLister should return nill + controllerLister := EmptyControllerLister{} + nilController, nilError := controllerLister.List(fakeLabelSelector) + if nilController != nil || nilError != nil { + t.Errorf("failed to produce empty controller lister: got %v, expected nil", nilController) + } + // Test GetPodControllers on empty controller lister should return nill + nilController, nilError = controllerLister.GetPodControllers(fakePod) + if nilController != nil || nilError != nil { + t.Errorf("failed to produce empty controller lister: got %v, expected nil", nilController) + } + // Test GetPodReplicaSets on empty replica sets should return nill + replicaSetLister := EmptyReplicaSetLister{} + nilRss, nilErrRss := replicaSetLister.GetPodReplicaSets(fakePod) + if nilRss != nil || nilErrRss != nil { + t.Errorf("failed to produce empty replicaSetLister: got %v, expected nil", nilRss) + } + + // Test GetPodStatefulSets on empty replica sets should return nill + statefulSetLister := EmptyStatefulSetLister{} + nilSSL, nilErrSSL := statefulSetLister.GetPodStatefulSets(fakePod) + if nilSSL != nil || nilErrSSL != nil { + t.Errorf("failed to produce empty statefulSetLister: got %v, expected nil", nilSSL) + } +}