From 007e88ec3d1ea461939345ab92425322e4bef16b Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 3 Feb 2025 11:04:40 +0100 Subject: [PATCH] TestCheckpointCreateWithOptions check both "keep-running=true/false" Signed-off-by: Sebastiaan van Stijn --- cli/command/checkpoint/create_test.go | 58 +++++++++++++++++---------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/cli/command/checkpoint/create_test.go b/cli/command/checkpoint/create_test.go index 6015dc03dd..5e40eca097 100644 --- a/cli/command/checkpoint/create_test.go +++ b/cli/command/checkpoint/create_test.go @@ -3,6 +3,7 @@ package checkpoint import ( "errors" "io" + "strconv" "strings" "testing" @@ -48,26 +49,39 @@ func TestCheckpointCreateErrors(t *testing.T) { } func TestCheckpointCreateWithOptions(t *testing.T) { - var containerID, checkpointID, checkpointDir string - var exit bool - cli := test.NewFakeCli(&fakeClient{ - checkpointCreateFunc: func(container string, options checkpoint.CreateOptions) error { - containerID = container - checkpointID = options.CheckpointID - checkpointDir = options.CheckpointDir - exit = options.Exit - return nil - }, - }) - cmd := newCreateCommand(cli) - cp := "checkpoint-bar" - cmd.SetArgs([]string{"container-foo", cp}) - cmd.Flags().Set("leave-running", "true") - cmd.Flags().Set("checkpoint-dir", "/dir/foo") - assert.NilError(t, cmd.Execute()) - assert.Check(t, is.Equal("container-foo", containerID)) - assert.Check(t, is.Equal(cp, checkpointID)) - assert.Check(t, is.Equal("/dir/foo", checkpointDir)) - assert.Check(t, is.Equal(false, exit)) - assert.Check(t, is.Equal(cp, strings.TrimSpace(cli.OutBuffer().String()))) + const ( + containerName = "container-foo" + checkpointName = "checkpoint-bar" + checkpointDir = "/dir/foo" + ) + + for _, tc := range []bool{true, false} { + leaveRunning := strconv.FormatBool(tc) + t.Run("leave-running="+leaveRunning, func(t *testing.T) { + var actualContainerName string + var actualOptions checkpoint.CreateOptions + cli := test.NewFakeCli(&fakeClient{ + checkpointCreateFunc: func(container string, options checkpoint.CreateOptions) error { + actualContainerName = container + actualOptions = options + return nil + }, + }) + cmd := newCreateCommand(cli) + cmd.SetOut(io.Discard) + cmd.SetErr(io.Discard) + cmd.SetArgs([]string{containerName, checkpointName}) + assert.Check(t, cmd.Flags().Set("leave-running", leaveRunning)) + assert.Check(t, cmd.Flags().Set("checkpoint-dir", checkpointDir)) + assert.NilError(t, cmd.Execute()) + assert.Check(t, is.Equal(actualContainerName, containerName)) + expected := checkpoint.CreateOptions{ + CheckpointID: checkpointName, + CheckpointDir: checkpointDir, + Exit: !tc, + } + assert.Check(t, is.Equal(actualOptions, expected)) + assert.Check(t, is.Equal(strings.TrimSpace(cli.OutBuffer().String()), checkpointName)) + }) + } }