add test case for deleting & re-adding node after fork
This commit is contained in:
		
							parent
							
								
									b71bbe135b
								
							
						
					
					
						commit
						cf7d7b4032
					
				|  | @ -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)) | ||||
| 			}) | ||||
| 	} | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue