From 2a98df6b125aa7a5b6b8ea077f7e15dab1f29376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20Trma=C4=8D?= Date: Fri, 23 Jul 2021 16:52:53 +0200 Subject: [PATCH] Split testing of --tls-verify into separate TestTLSVerifyFlags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It will get bigger, and we will also want to test imageDestOptions for extra confidence. Only moves the code, should not change (test) behavior. Signed-off-by: Miloslav Trmač --- cmd/skopeo/utils_test.go | 63 +++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/cmd/skopeo/utils_test.go b/cmd/skopeo/utils_test.go index 6c0992b0..b9fe3e83 100644 --- a/cmd/skopeo/utils_test.go +++ b/cmd/skopeo/utils_test.go @@ -80,36 +80,7 @@ func TestImageOptionsNewSystemContext(t *testing.T) { BigFilesTemporaryDir: "/srv", }, res) - // Global/per-command tlsVerify behavior - for _, c := range []struct { - global, cmd string - expectedDocker types.OptionalBool - expectedDockerDaemon bool - }{ - {"", "", types.OptionalBoolUndefined, false}, - {"", "false", types.OptionalBoolTrue, true}, - {"", "true", types.OptionalBoolFalse, false}, - {"false", "", types.OptionalBoolTrue, false}, - {"false", "false", types.OptionalBoolTrue, true}, - {"false", "true", types.OptionalBoolFalse, false}, - {"true", "", types.OptionalBoolFalse, false}, - {"true", "false", types.OptionalBoolTrue, true}, - {"true", "true", types.OptionalBoolFalse, false}, - } { - globalFlags := []string{} - if c.global != "" { - globalFlags = append(globalFlags, "--tls-verify="+c.global) - } - cmdFlags := []string{} - if c.cmd != "" { - cmdFlags = append(cmdFlags, "--dest-tls-verify="+c.cmd) - } - opts := fakeImageOptions(t, "dest-", globalFlags, cmdFlags) - res, err = opts.newSystemContext() - require.NoError(t, err) - assert.Equal(t, c.expectedDocker, res.DockerInsecureSkipTLSVerify, "%#v", c) - assert.Equal(t, c.expectedDockerDaemon, res.DockerDaemonInsecureSkipTLSVerify, "%#v", c) - } + // Global/per-command tlsVerify behavior is tested in TestTLSVerifyFlags. // Invalid option values opts = fakeImageOptions(t, "dest-", []string{}, []string{"--dest-creds", ""}) @@ -205,6 +176,38 @@ func TestImageDestOptionsNewSystemContext(t *testing.T) { assert.Error(t, err) } +func TestTLSVerifyFlags(t *testing.T) { + for _, c := range []struct { + global, cmd string + expectedDocker types.OptionalBool + expectedDockerDaemon bool + }{ + {"", "", types.OptionalBoolUndefined, false}, + {"", "false", types.OptionalBoolTrue, true}, + {"", "true", types.OptionalBoolFalse, false}, + {"false", "", types.OptionalBoolTrue, false}, + {"false", "false", types.OptionalBoolTrue, true}, + {"false", "true", types.OptionalBoolFalse, false}, + {"true", "", types.OptionalBoolFalse, false}, + {"true", "false", types.OptionalBoolTrue, true}, + {"true", "true", types.OptionalBoolFalse, false}, + } { + globalFlags := []string{} + if c.global != "" { + globalFlags = append(globalFlags, "--tls-verify="+c.global) + } + cmdFlags := []string{} + if c.cmd != "" { + cmdFlags = append(cmdFlags, "--dest-tls-verify="+c.cmd) + } + opts := fakeImageOptions(t, "dest-", globalFlags, cmdFlags) + res, err := opts.newSystemContext() + require.NoError(t, err) + assert.Equal(t, c.expectedDocker, res.DockerInsecureSkipTLSVerify, "%#v", c) + assert.Equal(t, c.expectedDockerDaemon, res.DockerDaemonInsecureSkipTLSVerify, "%#v", c) + } +} + func TestParseManifestFormat(t *testing.T) { for _, testCase := range []struct { formatParam string