add test case for deleting & re-adding node after fork

This commit is contained in:
Aleksandra Malinowska 2020-02-11 17:05:32 +01:00
parent b71bbe135b
commit cf7d7b4032
1 changed files with 43 additions and 1 deletions

View File

@ -20,10 +20,13 @@ import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
. "k8s.io/autoscaler/cluster-autoscaler/utils/test"
apiv1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/labels"
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
"github.com/stretchr/testify/assert"
)
var snapshots = map[string]func() ClusterSnapshot{
@ -181,3 +184,42 @@ func TestForkRemovePods(t *testing.T) {
})
}
}
func extractNodes(nodeInfos []*schedulernodeinfo.NodeInfo) []*apiv1.Node {
nodes := []*apiv1.Node{}
for _, ni := range nodeInfos {
nodes = append(nodes, ni.Node())
}
return nodes
}
func TestReAddNode(t *testing.T) {
for name, snapshotFactory := range snapshots {
t.Run(fmt.Sprintf("%s: re-add node", name),
func(t *testing.T) {
snapshot := snapshotFactory()
node := BuildTestNode("node", 10, 100)
err := snapshot.AddNode(node)
assert.NoError(t, err)
err = snapshot.Fork()
assert.NoError(t, err)
err = snapshot.RemoveNode("node")
assert.NoError(t, err)
err = snapshot.AddNode(node)
assert.NoError(t, err)
forkNodes, err := snapshot.NodeInfos().List()
assert.NoError(t, err)
assert.ElementsMatch(t, []*apiv1.Node{node}, extractNodes(forkNodes))
err = snapshot.Commit()
committedNodes, err := snapshot.NodeInfos().List()
assert.NoError(t, err)
assert.ElementsMatch(t, []*apiv1.Node{node}, extractNodes(committedNodes))
})
}
}