@@ -55,6 +55,7 @@ func TestMultiNode(t *testing.T) {
55
55
{"CopyFile" , validateCopyFileWithMultiNode },
56
56
{"StopNode" , validateStopRunningNode },
57
57
{"StartAfterStop" , validateStartNodeAfterStop },
58
+ {"RestartKeepsNodes" , validateRestartKeepsNodes },
58
59
{"DeleteNode" , validateDeleteNodeFromMultiNode },
59
60
{"StopMultiNode" , validateStopMultiNodeCluster },
60
61
{"RestartMultiNode" , validateRestartMultiNodeCluster },
@@ -258,6 +259,36 @@ func validateStartNodeAfterStop(ctx context.Context, t *testing.T, profile strin
258
259
}
259
260
}
260
261
262
+ // validateRestartKeepsNodes restarts minikube cluster and checks if the reported node list is unchanged
263
+ func validateRestartKeepsNodes (ctx context.Context , t * testing.T , profile string ) {
264
+ rr , err := Run (t , exec .CommandContext (ctx , Target (), "node" , "list" , "-p" , profile ))
265
+ if err != nil {
266
+ t .Errorf ("failed to run node list. args %q : %v" , rr .Command (), err )
267
+ }
268
+
269
+ nodeList := rr .Stdout .String ()
270
+
271
+ _ , err = Run (t , exec .CommandContext (ctx , Target (), "stop" , "-p" , profile ))
272
+ if err != nil {
273
+ t .Errorf ("failed to run minikube stop. args %q : %v" , rr .Command (), err )
274
+ }
275
+
276
+ _ , err = Run (t , exec .CommandContext (ctx , Target (), "start" , "-p" , profile , "--wait=true" , "-v=8" , "--alsologtostderr" ))
277
+ if err != nil {
278
+ t .Errorf ("failed to run minikube start. args %q : %v" , rr .Command (), err )
279
+ }
280
+
281
+ rr , err = Run (t , exec .CommandContext (ctx , Target (), "node" , "list" , "-p" , profile ))
282
+ if err != nil {
283
+ t .Errorf ("failed to run node list. args %q : %v" , rr .Command (), err )
284
+ }
285
+
286
+ restartedNodeList := rr .Stdout .String ()
287
+ if nodeList != restartedNodeList {
288
+ t .Fatalf ("reported node list is not the same after restart. Before restart: %s\n After restart: %s" , nodeList , restartedNodeList )
289
+ }
290
+ }
291
+
261
292
// validateStopMultiNodeCluster runs minikube stop on a multinode cluster
262
293
func validateStopMultiNodeCluster (ctx context.Context , t * testing.T , profile string ) {
263
294
// Run minikube stop on the cluster
0 commit comments