use subtest for table units

apply subtest to predicates
This commit is contained in:
John Calabrese 2018-06-05 08:08:23 -04:00
parent 0f9dfca8e7
commit 8bbf182695
2 changed files with 598 additions and 551 deletions

View File

@ -236,7 +236,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
} }
tests := []struct { tests := []struct {
description string name string
pendingPod *v1.Pod pendingPod *v1.Pod
addedPod *v1.Pod addedPod *v1.Pod
existingPods []*v1.Pod existingPods []*v1.Pod
@ -244,7 +244,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
services []*v1.Service services []*v1.Service
}{ }{
{ {
description: "no anti-affinity or service affinity exist", name: "no anti-affinity or service affinity exist",
pendingPod: &v1.Pod{ pendingPod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1}, ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1},
}, },
@ -267,7 +267,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
}, },
}, },
{ {
description: "metadata anti-affinity terms are updated correctly after adding and removing a pod", name: "metadata anti-affinity terms are updated correctly after adding and removing a pod",
pendingPod: &v1.Pod{ pendingPod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1}, ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1},
}, },
@ -300,7 +300,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
}, },
}, },
{ {
description: "metadata service-affinity data are updated correctly after adding and removing a pod", name: "metadata service-affinity data are updated correctly after adding and removing a pod",
pendingPod: &v1.Pod{ pendingPod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1}, ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1},
}, },
@ -324,7 +324,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
}, },
}, },
{ {
description: "metadata anti-affinity terms and service affinity data are updated correctly after adding and removing a pod", name: "metadata anti-affinity terms and service affinity data are updated correctly after adding and removing a pod",
pendingPod: &v1.Pod{ pendingPod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1}, ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1},
}, },
@ -358,7 +358,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
}, },
}, },
{ {
description: "metadata matching pod affinity and anti-affinity are updated correctly after adding and removing a pod", name: "metadata matching pod affinity and anti-affinity are updated correctly after adding and removing a pod",
pendingPod: &v1.Pod{ pendingPod: &v1.Pod{
ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1}, ObjectMeta: metav1.ObjectMeta{Name: "pending", Labels: selector1},
}, },
@ -395,6 +395,7 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
} }
for _, test := range tests { for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
allPodLister := schedulertesting.FakePodLister(append(test.existingPods, test.addedPod)) allPodLister := schedulertesting.FakePodLister(append(test.existingPods, test.addedPod))
// getMeta creates predicate meta data given the list of pods. // getMeta creates predicate meta data given the list of pods.
getMeta := func(lister schedulertesting.FakePodLister) (*predicateMetadata, map[string]*schedulercache.NodeInfo) { getMeta := func(lister schedulertesting.FakePodLister) (*predicateMetadata, map[string]*schedulercache.NodeInfo) {
@ -419,20 +420,21 @@ func TestPredicateMetadata_AddRemovePod(t *testing.T) {
// Add test.addedPod to existingPodsMeta1 and make sure meta is equal to allPodsMeta // Add test.addedPod to existingPodsMeta1 and make sure meta is equal to allPodsMeta
nodeInfo := nodeInfoMap[test.addedPod.Spec.NodeName] nodeInfo := nodeInfoMap[test.addedPod.Spec.NodeName]
if err := existingPodsMeta1.AddPod(test.addedPod, nodeInfo); err != nil { if err := existingPodsMeta1.AddPod(test.addedPod, nodeInfo); err != nil {
t.Errorf("test [%v]: error adding pod to meta: %v", test.description, err) t.Errorf("error adding pod to meta: %v", err)
} }
if err := predicateMetadataEquivalent(allPodsMeta, existingPodsMeta1); err != nil { if err := predicateMetadataEquivalent(allPodsMeta, existingPodsMeta1); err != nil {
t.Errorf("test [%v]: meta data are not equivalent: %v", test.description, err) t.Errorf("meta data are not equivalent: %v", err)
} }
// Remove the added pod and from existingPodsMeta1 an make sure it is equal // Remove the added pod and from existingPodsMeta1 an make sure it is equal
// to meta generated for existing pods. // to meta generated for existing pods.
existingPodsMeta2, _ := getMeta(schedulertesting.FakePodLister(test.existingPods)) existingPodsMeta2, _ := getMeta(schedulertesting.FakePodLister(test.existingPods))
if err := existingPodsMeta1.RemovePod(test.addedPod); err != nil { if err := existingPodsMeta1.RemovePod(test.addedPod); err != nil {
t.Errorf("test [%v]: error removing pod from meta: %v", test.description, err) t.Errorf("error removing pod from meta: %v", err)
} }
if err := predicateMetadataEquivalent(existingPodsMeta1, existingPodsMeta2); err != nil { if err := predicateMetadataEquivalent(existingPodsMeta1, existingPodsMeta2); err != nil {
t.Errorf("test [%v]: meta data are not equivalent: %v", test.description, err) t.Errorf("meta data are not equivalent: %v", err)
} }
})
} }
} }

File diff suppressed because it is too large Load Diff