From 6be0f709830113966f295401327b027ec2f0bbca Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Tue, 13 Mar 2018 15:28:34 -0400 Subject: [PATCH] Automated migration using gty-migrate-from-testify --ignore-build-tags Signed-off-by: Daniel Nephin --- api/server/middleware/debug_test.go | 5 +- api/server/middleware/version_test.go | 21 +-- api/types/filters/parse_test.go | 15 +- builder/dockerfile/buildargs_test.go | 17 +- builder/dockerfile/builder_test.go | 9 +- builder/dockerfile/copy_test.go | 9 +- builder/dockerfile/dispatchers_test.go | 150 +++++++++--------- builder/dockerfile/instructions/parse_test.go | 28 ++-- builder/dockerfile/internals_linux_test.go | 10 +- builder/dockerfile/internals_test.go | 16 +- builder/dockerfile/internals_windows_test.go | 7 +- .../dockerfile/parser/line_parsers_test.go | 15 +- builder/dockerfile/parser/parser_test.go | 48 +++--- builder/dockerfile/shell/lex_test.go | 13 +- builder/fscache/fscache_test.go | 75 ++++----- builder/remotecontext/git/gitutils_test.go | 110 ++++++------- builder/remotecontext/mimetype_test.go | 8 +- builder/remotecontext/remote_test.go | 18 +-- client/client_test.go | 44 ++--- client/config_create_test.go | 5 +- client/config_inspect_test.go | 5 +- client/config_list_test.go | 5 +- client/config_remove_test.go | 5 +- client/config_update_test.go | 5 +- client/container_prune_test.go | 13 +- client/container_remove_test.go | 11 +- client/distribution_inspect_test.go | 5 +- client/image_prune_test.go | 13 +- client/image_remove_test.go | 9 +- client/network_inspect_test.go | 11 +- client/network_prune_test.go | 9 +- client/ping_test.go | 27 ++-- client/request_test.go | 6 +- client/secret_create_test.go | 5 +- client/secret_inspect_test.go | 5 +- client/secret_list_test.go | 5 +- client/secret_remove_test.go | 5 +- client/secret_update_test.go | 5 +- client/service_create_test.go | 11 +- client/service_remove_test.go | 9 +- client/swarm_get_unlock_key_test.go | 8 +- client/volume_inspect_test.go | 10 +- cmd/dockerd/config_unix_test.go | 9 +- cmd/dockerd/daemon_test.go | 82 +++++----- cmd/dockerd/daemon_unix_test.go | 56 +++---- cmd/dockerd/options_test.go | 19 +-- container/container_unit_test.go | 18 +-- container/view_test.go | 51 +++--- daemon/cluster/convert/service_test.go | 8 +- .../executor/container/container_test.go | 4 +- daemon/config/config_test.go | 19 +-- daemon/config/config_unix_test.go | 24 +-- daemon/config/config_windows_test.go | 12 +- daemon/container_unix_test.go | 6 +- daemon/create_test.go | 4 +- daemon/daemon_linux_test.go | 12 +- daemon/daemon_test.go | 7 +- daemon/daemon_unix_test.go | 6 +- daemon/delete_test.go | 4 +- daemon/discovery/discovery_test.go | 20 +-- daemon/graphdriver/aufs/aufs_test.go | 38 ++--- daemon/graphdriver/copy/copy_test.go | 78 ++++----- daemon/graphdriver/driver_test.go | 19 ++- .../graphdriver/graphtest/graphbench_unix.go | 4 +- .../graphdriver/graphtest/graphtest_unix.go | 26 +-- daemon/graphdriver/graphtest/testutil_unix.go | 36 ++--- daemon/graphdriver/quota/projectquota_test.go | 42 ++--- daemon/info_unix_test.go | 9 +- daemon/inspect_test.go | 8 +- daemon/logger/adapter_test.go | 25 +-- daemon/logger/awslogs/cloudwatchlogs_test.go | 85 +++++----- daemon/logger/jsonfilelog/jsonfilelog_test.go | 22 +-- .../jsonfilelog/jsonlog/jsonlogbytes_test.go | 7 +- .../jsonlog/time_marshalling_test.go | 14 +- daemon/logger/jsonfilelog/read_test.go | 6 +- daemon/logger/splunk/splunk_test.go | 18 +-- daemon/logger/templates/templates_test.go | 9 +- daemon/oci_linux_test.go | 16 +- daemon/reload_test.go | 5 +- daemon/trustkey_test.go | 30 ++-- distribution/metadata/v1_id_service_test.go | 4 +- image/fs_test.go | 73 ++++----- image/image_test.go | 40 ++--- image/store_test.go | 105 ++++++------ integration-cli/cli/build/fakegit/fakegit.go | 4 +- .../cli/build/fakestorage/storage.go | 4 +- integration-cli/daemon/daemon.go | 18 +-- integration-cli/daemon/daemon_swarm.go | 10 +- integration-cli/docker_api_build_test.go | 110 ++++++------- integration-cli/docker_api_containers_test.go | 34 ++-- .../docker_api_containers_windows_test.go | 12 +- integration-cli/docker_api_inspect_test.go | 7 +- integration-cli/docker_api_swarm_test.go | 16 +- integration-cli/docker_cli_by_digest_test.go | 5 +- integration/build/build_test.go | 68 ++++---- integration/config/config_test.go | 74 ++++----- integration/container/copy_test.go | 11 +- integration/container/daemon_linux_test.go | 22 +-- integration/container/diff_test.go | 8 +- integration/container/exec_test.go | 15 +- integration/container/export_test.go | 20 +-- integration/container/inspect_test.go | 12 +- integration/container/kill_test.go | 28 ++-- integration/container/links_linux_test.go | 18 +-- integration/container/logs_test.go | 6 +- integration/container/mounts_linux_test.go | 14 +- integration/container/nat_test.go | 28 ++-- integration/container/pause_test.go | 20 +-- integration/container/ps_test.go | 12 +- integration/container/remove_test.go | 20 +-- integration/container/rename_test.go | 54 +++---- integration/container/resize_test.go | 10 +- integration/container/stats_test.go | 14 +- integration/container/stop_test.go | 8 +- integration/container/update_linux_test.go | 40 ++--- integration/container/update_test.go | 12 +- integration/image/commit_test.go | 16 +- integration/image/remove_test.go | 22 +-- integration/internal/container/container.go | 6 +- integration/internal/request/client.go | 8 +- integration/internal/swarm/service.go | 14 +- integration/network/delete_test.go | 30 ++-- integration/network/inspect_test.go | 32 ++-- integration/network/service_test.go | 10 +- integration/plugin/authz/authz_plugin_test.go | 110 ++++++------- .../plugin/authz/authz_plugin_v2_test.go | 52 +++--- integration/plugin/logging/validation_test.go | 6 +- integration/secret/secret_test.go | 78 ++++----- integration/service/create_test.go | 82 +++++----- integration/service/inspect_test.go | 16 +- integration/service/network_test.go | 28 ++-- integration/session/session_test.go | 28 ++-- integration/system/event_test.go | 34 ++-- integration/system/info_linux_test.go | 40 ++--- integration/system/info_test.go | 8 +- integration/system/login_test.go | 5 +- integration/system/version_test.go | 16 +- integration/volume/volume_test.go | 32 ++-- internal/test/environment/clean.go | 29 ++-- internal/test/environment/protect.go | 22 +-- internal/testutil/helpers.go | 10 +- internal/testutil/stringutils_test.go | 9 +- libcontainerd/queue_test.go | 8 +- opts/quotedstring_test.go | 17 +- pkg/archive/archive_linux_test.go | 44 ++--- pkg/archive/archive_test.go | 52 +++--- pkg/archive/archive_unix_test.go | 80 +++++----- pkg/archive/changes_test.go | 106 ++++++------- pkg/archive/copy_unix_test.go | 46 +++--- pkg/archive/wrap_test.go | 10 +- pkg/authorization/api_test.go | 21 +-- pkg/authorization/middleware_test.go | 20 +-- pkg/authorization/middleware_unix_test.go | 9 +- pkg/fileutils/fileutils_test.go | 8 +- pkg/idtools/idtools_unix_test.go | 82 +++++----- pkg/ioutils/readers_test.go | 5 +- pkg/jsonmessage/jsonmessage_test.go | 5 +- pkg/plugins/client_test.go | 14 +- pkg/plugins/discovery_unix_test.go | 4 +- pkg/plugins/plugin_test.go | 7 +- pkg/plugins/transport/http_test.go | 5 +- pkg/pools/pools_test.go | 12 +- pkg/reexec/reexec_test.go | 17 +- pkg/signal/signal_linux_test.go | 9 +- pkg/signal/signal_test.go | 15 +- pkg/signal/trap_linux_test.go | 24 +-- pkg/streamformatter/streamformatter_test.go | 34 ++-- pkg/streamformatter/streamwriter_test.go | 16 +- pkg/sysinfo/sysinfo_linux_test.go | 22 +-- pkg/system/stat_unix_test.go | 6 +- pkg/tarsum/tarsum_test.go | 16 +- pkg/term/ascii_test.go | 18 +-- pkg/term/proxy_test.go | 66 ++++---- pkg/term/term_linux_test.go | 68 ++++---- reference/store_test.go | 20 +-- registry/config_test.go | 13 +- registry/registry_test.go | 6 +- .../resumable/resumablerequestreader_test.go | 56 +++---- runconfig/config_test.go | 16 +- runconfig/hostconfig_test.go | 17 +- volume/store/db_test.go | 21 +-- volume/store/restore_test.go | 24 +-- volume/store/store_test.go | 46 +++--- 183 files changed, 2253 insertions(+), 2199 deletions(-) diff --git a/api/server/middleware/debug_test.go b/api/server/middleware/debug_test.go index a467c4a442..cc227b3248 100644 --- a/api/server/middleware/debug_test.go +++ b/api/server/middleware/debug_test.go @@ -3,7 +3,8 @@ package middleware // import "github.com/docker/docker/api/server/middleware" import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestMaskSecretKeys(t *testing.T) { @@ -53,6 +54,6 @@ func TestMaskSecretKeys(t *testing.T) { for _, testcase := range tests { maskSecretKeys(testcase.input, testcase.path) - assert.Equal(t, testcase.expected, testcase.input) + assert.Check(t, is.DeepEqual(testcase.expected, testcase.input)) } } diff --git a/api/server/middleware/version_test.go b/api/server/middleware/version_test.go index 37d22b5c46..f426acf0a3 100644 --- a/api/server/middleware/version_test.go +++ b/api/server/middleware/version_test.go @@ -7,7 +7,8 @@ import ( "testing" "github.com/docker/docker/api/server/httputils" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -17,7 +18,7 @@ func TestVersionMiddlewareVersion(t *testing.T) { expectedVersion := defaultVersion handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { v := httputils.VersionFromContext(ctx) - assert.Equal(t, expectedVersion, v) + assert.Check(t, is.Equal(expectedVersion, v)) return nil } @@ -56,9 +57,9 @@ func TestVersionMiddlewareVersion(t *testing.T) { err := h(ctx, resp, req, map[string]string{"version": test.reqVersion}) if test.errString != "" { - assert.EqualError(t, err, test.errString) + assert.Check(t, is.Error(err, test.errString)) } else { - assert.NoError(t, err) + assert.Check(t, err) } } } @@ -66,7 +67,7 @@ func TestVersionMiddlewareVersion(t *testing.T) { func TestVersionMiddlewareWithErrorsReturnsHeaders(t *testing.T) { handler := func(ctx context.Context, w http.ResponseWriter, r *http.Request, vars map[string]string) error { v := httputils.VersionFromContext(ctx) - assert.NotEmpty(t, v) + assert.Check(t, len(v) != 0) return nil } @@ -81,11 +82,11 @@ func TestVersionMiddlewareWithErrorsReturnsHeaders(t *testing.T) { vars := map[string]string{"version": "0.1"} err := h(ctx, resp, req, vars) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) hdr := resp.Result().Header - assert.Contains(t, hdr.Get("Server"), "Docker/"+defaultVersion) - assert.Contains(t, hdr.Get("Server"), runtime.GOOS) - assert.Equal(t, hdr.Get("API-Version"), defaultVersion) - assert.Equal(t, hdr.Get("OSType"), runtime.GOOS) + assert.Check(t, is.Contains(hdr.Get("Server"), "Docker/"+defaultVersion)) + assert.Check(t, is.Contains(hdr.Get("Server"), runtime.GOOS)) + assert.Check(t, is.Equal(hdr.Get("API-Version"), defaultVersion)) + assert.Check(t, is.Equal(hdr.Get("OSType"), runtime.GOOS)) } diff --git a/api/types/filters/parse_test.go b/api/types/filters/parse_test.go index b54ffa66ec..fbd9ae4fb1 100644 --- a/api/types/filters/parse_test.go +++ b/api/types/filters/parse_test.go @@ -4,8 +4,8 @@ import ( "errors" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestParseArgs(t *testing.T) { @@ -22,10 +22,10 @@ func TestParseArgs(t *testing.T) { for i := range flagArgs { args, err = ParseFlag(flagArgs[i], args) - require.NoError(t, err) + assert.NilError(t, err) } - assert.Len(t, args.Get("created"), 1) - assert.Len(t, args.Get("image.name"), 2) + assert.Check(t, is.Len(args.Get("created"), 1)) + assert.Check(t, is.Len(args.Get("image.name"), 2)) } func TestParseArgsEdgeCase(t *testing.T) { @@ -231,7 +231,7 @@ func TestArgsMatch(t *testing.T) { } for args, field := range matches { - assert.True(t, args.Match(field, source), + assert.Check(t, args.Match(field, source), "Expected field %s to match %s", field, source) } @@ -255,8 +255,7 @@ func TestArgsMatch(t *testing.T) { } for args, field := range differs { - assert.False(t, args.Match(field, source), - "Expected field %s to not match %s", field, source) + assert.Check(t, !args.Match(field, source), "Expected field %s to not match %s", field, source) } } diff --git a/builder/dockerfile/buildargs_test.go b/builder/dockerfile/buildargs_test.go index c46dd7d49e..1ce841b404 100644 --- a/builder/dockerfile/buildargs_test.go +++ b/builder/dockerfile/buildargs_test.go @@ -4,7 +4,8 @@ import ( "bytes" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func strPtr(source string) *string { @@ -39,7 +40,7 @@ func TestGetAllAllowed(t *testing.T) { "ArgFromMeta": "frommeta1", "ArgFromMetaOverridden": "fromdockerfile3", } - assert.Equal(t, expected, all) + assert.Check(t, is.DeepEqual(expected, all)) } func TestGetAllMeta(t *testing.T) { @@ -61,7 +62,7 @@ func TestGetAllMeta(t *testing.T) { "ArgOverriddenByOptions": "fromopt2", "ArgNoDefaultInMetaFromOptions": "fromopt3", } - assert.Equal(t, expected, all) + assert.Check(t, is.DeepEqual(expected, all)) } func TestWarnOnUnusedBuildArgs(t *testing.T) { @@ -80,7 +81,7 @@ func TestWarnOnUnusedBuildArgs(t *testing.T) { assert.NotContains(t, out, "ThisArgIsUsed") assert.NotContains(t, out, "HTTPS_PROXY") assert.NotContains(t, out, "HTTP_PROXY") - assert.Contains(t, out, "ThisArgIsNotUsed") + assert.Check(t, is.Contains(out, "ThisArgIsNotUsed")) } func TestIsUnreferencedBuiltin(t *testing.T) { @@ -93,8 +94,8 @@ func TestIsUnreferencedBuiltin(t *testing.T) { buildArgs.AddArg("ThisArgIsUsed", nil) buildArgs.AddArg("HTTPS_PROXY", nil) - assert.True(t, buildArgs.IsReferencedOrNotBuiltin("ThisArgIsUsed")) - assert.True(t, buildArgs.IsReferencedOrNotBuiltin("ThisArgIsNotUsed")) - assert.True(t, buildArgs.IsReferencedOrNotBuiltin("HTTPS_PROXY")) - assert.False(t, buildArgs.IsReferencedOrNotBuiltin("HTTP_PROXY")) + assert.Check(t, buildArgs.IsReferencedOrNotBuiltin("ThisArgIsUsed")) + assert.Check(t, buildArgs.IsReferencedOrNotBuiltin("ThisArgIsNotUsed")) + assert.Check(t, buildArgs.IsReferencedOrNotBuiltin("HTTPS_PROXY")) + assert.Check(t, !buildArgs.IsReferencedOrNotBuiltin("HTTP_PROXY")) } diff --git a/builder/dockerfile/builder_test.go b/builder/dockerfile/builder_test.go index a3a1f122f9..6c73b6cced 100644 --- a/builder/dockerfile/builder_test.go +++ b/builder/dockerfile/builder_test.go @@ -5,13 +5,14 @@ import ( "testing" "github.com/docker/docker/builder/dockerfile/parser" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestAddNodesForLabelOption(t *testing.T) { dockerfile := "FROM scratch" result, err := parser.Parse(strings.NewReader(dockerfile)) - assert.NoError(t, err) + assert.Check(t, err) labels := map[string]string{ "org.e": "cli-e", @@ -27,8 +28,8 @@ func TestAddNodesForLabelOption(t *testing.T) { "FROM scratch", `LABEL "org.a"='cli-a' "org.b"='cli-b' "org.c"='cli-c' "org.d"='cli-d' "org.e"='cli-e'`, } - assert.Len(t, nodes.Children, 2) + assert.Check(t, is.Len(nodes.Children, 2)) for i, v := range nodes.Children { - assert.Equal(t, expected[i], v.Original) + assert.Check(t, is.Equal(expected[i], v.Original)) } } diff --git a/builder/dockerfile/copy_test.go b/builder/dockerfile/copy_test.go index da8e0711ac..f2f895387c 100644 --- a/builder/dockerfile/copy_test.go +++ b/builder/dockerfile/copy_test.go @@ -5,8 +5,9 @@ import ( "testing" "github.com/docker/docker/pkg/containerfs" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" ) func TestIsExistingDirectory(t *testing.T) { @@ -39,10 +40,10 @@ func TestIsExistingDirectory(t *testing.T) { for _, testcase := range testcases { result, err := isExistingDirectory(©Endpoint{driver: containerfs.NewLocalDriver(), path: testcase.path}) - if !assert.NoError(t, err) { + if !assert.Check(t, err) { continue } - assert.Equal(t, testcase.expected, result, testcase.doc) + assert.Check(t, is.Equal(testcase.expected, result), testcase.doc) } } @@ -142,6 +143,6 @@ func TestGetFilenameForDownload(t *testing.T) { resp.Header.Add("Content-Disposition", testcase.disposition) } filename := getFilenameForDownload(testcase.path, &resp) - assert.Equal(t, testcase.expected, filename) + assert.Check(t, is.Equal(testcase.expected, filename)) } } diff --git a/builder/dockerfile/dispatchers_test.go b/builder/dockerfile/dispatchers_test.go index 6d52e7e619..988580cb15 100644 --- a/builder/dockerfile/dispatchers_test.go +++ b/builder/dockerfile/dispatchers_test.go @@ -16,8 +16,8 @@ import ( "github.com/docker/docker/image" "github.com/docker/docker/pkg/system" "github.com/docker/go-connections/nat" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func newBuilderWithMockBackend() *Builder { @@ -49,13 +49,13 @@ func TestEnv2Variables(t *testing.T) { }, } err := dispatch(sb, envCommand) - require.NoError(t, err) + assert.NilError(t, err) expected := []string{ "var1=val1", "var2=val2", } - assert.Equal(t, expected, sb.state.runConfig.Env) + assert.Check(t, is.DeepEqual(expected, sb.state.runConfig.Env)) } func TestEnvValueWithExistingRunConfigEnv(t *testing.T) { @@ -68,12 +68,12 @@ func TestEnvValueWithExistingRunConfigEnv(t *testing.T) { }, } err := dispatch(sb, envCommand) - require.NoError(t, err) + assert.NilError(t, err) expected := []string{ "var1=val1", "var2=fromenv", } - assert.Equal(t, expected, sb.state.runConfig.Env) + assert.Check(t, is.DeepEqual(expected, sb.state.runConfig.Env)) } func TestMaintainer(t *testing.T) { @@ -82,8 +82,8 @@ func TestMaintainer(t *testing.T) { sb := newDispatchRequest(b, '\\', nil, newBuildArgs(make(map[string]*string)), newStagesBuildResults()) cmd := &instructions.MaintainerCommand{Maintainer: maintainerEntry} err := dispatch(sb, cmd) - require.NoError(t, err) - assert.Equal(t, maintainerEntry, sb.state.maintainer) + assert.NilError(t, err) + assert.Check(t, is.Equal(maintainerEntry, sb.state.maintainer)) } func TestLabel(t *testing.T) { @@ -98,10 +98,10 @@ func TestLabel(t *testing.T) { }, } err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) - require.Contains(t, sb.state.runConfig.Labels, labelName) - assert.Equal(t, sb.state.runConfig.Labels[labelName], labelValue) + assert.Assert(t, is.Contains(sb.state.runConfig.Labels, labelName)) + assert.Check(t, is.Equal(sb.state.runConfig.Labels[labelName], labelValue)) } func TestFromScratch(t *testing.T) { @@ -113,22 +113,22 @@ func TestFromScratch(t *testing.T) { err := initializeStage(sb, cmd) if runtime.GOOS == "windows" && !system.LCOWSupported() { - assert.EqualError(t, err, "Windows does not support FROM scratch") + assert.Check(t, is.Error(err, "Windows does not support FROM scratch")) return } - require.NoError(t, err) - assert.True(t, sb.state.hasFromImage()) - assert.Equal(t, "", sb.state.imageID) + assert.NilError(t, err) + assert.Check(t, sb.state.hasFromImage()) + assert.Check(t, is.Equal("", sb.state.imageID)) expected := "PATH=" + system.DefaultPathEnv(runtime.GOOS) - assert.Equal(t, []string{expected}, sb.state.runConfig.Env) + assert.Check(t, is.DeepEqual([]string{expected}, sb.state.runConfig.Env)) } func TestFromWithArg(t *testing.T) { tag, expected := ":sometag", "expectedthisid" getImage := func(name string) (builder.Image, builder.ROLayer, error) { - assert.Equal(t, "alpine"+tag, name) + assert.Check(t, is.Equal("alpine"+tag, name)) return &mockImage{id: "expectedthisid"}, nil, nil } b := newBuilderWithMockBackend() @@ -146,21 +146,21 @@ func TestFromWithArg(t *testing.T) { err := processMetaArg(metaArg, shell.NewLex('\\'), args) sb := newDispatchRequest(b, '\\', nil, args, newStagesBuildResults()) - require.NoError(t, err) + assert.NilError(t, err) err = initializeStage(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, expected, sb.state.imageID) - assert.Equal(t, expected, sb.state.baseImage.ImageID()) - assert.Len(t, sb.state.buildArgs.GetAllAllowed(), 0) - assert.Len(t, sb.state.buildArgs.GetAllMeta(), 1) + assert.Check(t, is.Equal(expected, sb.state.imageID)) + assert.Check(t, is.Equal(expected, sb.state.baseImage.ImageID())) + assert.Check(t, is.Len(sb.state.buildArgs.GetAllAllowed(), 0)) + assert.Check(t, is.Len(sb.state.buildArgs.GetAllMeta(), 1)) } func TestFromWithUndefinedArg(t *testing.T) { tag, expected := "sometag", "expectedthisid" getImage := func(name string) (builder.Image, builder.ROLayer, error) { - assert.Equal(t, "alpine", name) + assert.Check(t, is.Equal("alpine", name)) return &mockImage{id: "expectedthisid"}, nil, nil } b := newBuilderWithMockBackend() @@ -173,8 +173,8 @@ func TestFromWithUndefinedArg(t *testing.T) { BaseName: "alpine${THETAG}", } err := initializeStage(sb, cmd) - require.NoError(t, err) - assert.Equal(t, expected, sb.state.imageID) + assert.NilError(t, err) + assert.Check(t, is.Equal(expected, sb.state.imageID)) } func TestFromMultiStageWithNamedStage(t *testing.T) { @@ -185,13 +185,13 @@ func TestFromMultiStageWithNamedStage(t *testing.T) { firstSB := newDispatchRequest(b, '\\', nil, newBuildArgs(make(map[string]*string)), previousResults) secondSB := newDispatchRequest(b, '\\', nil, newBuildArgs(make(map[string]*string)), previousResults) err := initializeStage(firstSB, firstFrom) - require.NoError(t, err) - assert.True(t, firstSB.state.hasFromImage()) + assert.NilError(t, err) + assert.Check(t, firstSB.state.hasFromImage()) previousResults.indexed["base"] = firstSB.state.runConfig previousResults.flat = append(previousResults.flat, firstSB.state.runConfig) err = initializeStage(secondSB, secondFrom) - require.NoError(t, err) - assert.True(t, secondSB.state.hasFromImage()) + assert.NilError(t, err) + assert.Check(t, secondSB.state.hasFromImage()) } func TestOnbuild(t *testing.T) { @@ -201,8 +201,8 @@ func TestOnbuild(t *testing.T) { Expression: "ADD . /app/src", } err := dispatch(sb, cmd) - require.NoError(t, err) - assert.Equal(t, "ADD . /app/src", sb.state.runConfig.OnBuild[0]) + assert.NilError(t, err) + assert.Check(t, is.Equal("ADD . /app/src", sb.state.runConfig.OnBuild[0])) } func TestWorkdir(t *testing.T) { @@ -217,8 +217,8 @@ func TestWorkdir(t *testing.T) { } err := dispatch(sb, cmd) - require.NoError(t, err) - assert.Equal(t, workingDir, sb.state.runConfig.WorkingDir) + assert.NilError(t, err) + assert.Check(t, is.Equal(workingDir, sb.state.runConfig.WorkingDir)) } func TestCmd(t *testing.T) { @@ -233,7 +233,7 @@ func TestCmd(t *testing.T) { }, } err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) var expectedCommand strslice.StrSlice if runtime.GOOS == "windows" { @@ -242,8 +242,8 @@ func TestCmd(t *testing.T) { expectedCommand = strslice.StrSlice(append([]string{"/bin/sh"}, "-c", command)) } - assert.Equal(t, expectedCommand, sb.state.runConfig.Cmd) - assert.True(t, sb.state.cmdSet) + assert.Check(t, is.DeepEqual(expectedCommand, sb.state.runConfig.Cmd)) + assert.Check(t, sb.state.cmdSet) } func TestHealthcheckNone(t *testing.T) { @@ -255,10 +255,10 @@ func TestHealthcheckNone(t *testing.T) { }, } err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) - require.NotNil(t, sb.state.runConfig.Healthcheck) - assert.Equal(t, []string{"NONE"}, sb.state.runConfig.Healthcheck.Test) + assert.Assert(t, sb.state.runConfig.Healthcheck != nil) + assert.Check(t, is.DeepEqual([]string{"NONE"}, sb.state.runConfig.Healthcheck.Test)) } func TestHealthcheckCmd(t *testing.T) { @@ -272,10 +272,10 @@ func TestHealthcheckCmd(t *testing.T) { }, } err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) - require.NotNil(t, sb.state.runConfig.Healthcheck) - assert.Equal(t, expectedTest, sb.state.runConfig.Healthcheck.Test) + assert.Assert(t, sb.state.runConfig.Healthcheck != nil) + assert.Check(t, is.DeepEqual(expectedTest, sb.state.runConfig.Healthcheck.Test)) } func TestEntrypoint(t *testing.T) { @@ -290,8 +290,8 @@ func TestEntrypoint(t *testing.T) { }, } err := dispatch(sb, cmd) - require.NoError(t, err) - require.NotNil(t, sb.state.runConfig.Entrypoint) + assert.NilError(t, err) + assert.Assert(t, sb.state.runConfig.Entrypoint != nil) var expectedEntrypoint strslice.StrSlice if runtime.GOOS == "windows" { @@ -299,7 +299,7 @@ func TestEntrypoint(t *testing.T) { } else { expectedEntrypoint = strslice.StrSlice(append([]string{"/bin/sh"}, "-c", entrypointCmd)) } - assert.Equal(t, expectedEntrypoint, sb.state.runConfig.Entrypoint) + assert.Check(t, is.DeepEqual(expectedEntrypoint, sb.state.runConfig.Entrypoint)) } func TestExpose(t *testing.T) { @@ -311,14 +311,14 @@ func TestExpose(t *testing.T) { Ports: []string{exposedPort}, } err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) - require.NotNil(t, sb.state.runConfig.ExposedPorts) - require.Len(t, sb.state.runConfig.ExposedPorts, 1) + assert.Assert(t, sb.state.runConfig.ExposedPorts != nil) + assert.Assert(t, is.Len(sb.state.runConfig.ExposedPorts, 1)) portsMapping, err := nat.ParsePortSpec(exposedPort) - require.NoError(t, err) - assert.Contains(t, sb.state.runConfig.ExposedPorts, portsMapping[0].Port) + assert.NilError(t, err) + assert.Check(t, is.Contains(sb.state.runConfig.ExposedPorts, portsMapping[0].Port)) } func TestUser(t *testing.T) { @@ -329,8 +329,8 @@ func TestUser(t *testing.T) { User: "test", } err := dispatch(sb, cmd) - require.NoError(t, err) - assert.Equal(t, "test", sb.state.runConfig.User) + assert.NilError(t, err) + assert.Check(t, is.Equal("test", sb.state.runConfig.User)) } func TestVolume(t *testing.T) { @@ -343,10 +343,10 @@ func TestVolume(t *testing.T) { Volumes: []string{exposedVolume}, } err := dispatch(sb, cmd) - require.NoError(t, err) - require.NotNil(t, sb.state.runConfig.Volumes) - assert.Len(t, sb.state.runConfig.Volumes, 1) - assert.Contains(t, sb.state.runConfig.Volumes, exposedVolume) + assert.NilError(t, err) + assert.Assert(t, sb.state.runConfig.Volumes != nil) + assert.Check(t, is.Len(sb.state.runConfig.Volumes, 1)) + assert.Check(t, is.Contains(sb.state.runConfig.Volumes, exposedVolume)) } func TestStopSignal(t *testing.T) { @@ -362,8 +362,8 @@ func TestStopSignal(t *testing.T) { Signal: signal, } err := dispatch(sb, cmd) - require.NoError(t, err) - assert.Equal(t, signal, sb.state.runConfig.StopSignal) + assert.NilError(t, err) + assert.Check(t, is.Equal(signal, sb.state.runConfig.StopSignal)) } func TestArg(t *testing.T) { @@ -374,10 +374,10 @@ func TestArg(t *testing.T) { argVal := "bar" cmd := &instructions.ArgCommand{Key: argName, Value: &argVal} err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) expected := map[string]string{argName: argVal} - assert.Equal(t, expected, sb.state.buildArgs.GetAllAllowed()) + assert.Check(t, is.DeepEqual(expected, sb.state.buildArgs.GetAllAllowed())) } func TestShell(t *testing.T) { @@ -388,10 +388,10 @@ func TestShell(t *testing.T) { cmd := &instructions.ShellCommand{Shell: strslice.StrSlice{shellCmd}} err := dispatch(sb, cmd) - require.NoError(t, err) + assert.NilError(t, err) expectedShell := strslice.StrSlice([]string{shellCmd}) - assert.Equal(t, expectedShell, sb.state.runConfig.Shell) + assert.Check(t, is.DeepEqual(expectedShell, sb.state.runConfig.Shell)) } func TestPrependEnvOnCmd(t *testing.T) { @@ -403,7 +403,7 @@ func TestPrependEnvOnCmd(t *testing.T) { cmdWithEnv := prependEnvOnCmd(buildArgs, args, cmd) expected := strslice.StrSlice([]string{ "|3", "NO_PROXY=YA", "args=not", "sorted=nope", "foo", "bar"}) - assert.Equal(t, expected, cmdWithEnv) + assert.Check(t, is.DeepEqual(expected, cmdWithEnv)) } func TestRunWithBuildArgs(t *testing.T) { @@ -422,8 +422,8 @@ func TestRunWithBuildArgs(t *testing.T) { imageCache := &mockImageCache{ getCacheFunc: func(parentID string, cfg *container.Config) (string, error) { // Check the runConfig.Cmd sent to probeCache() - assert.Equal(t, cachedCmd, cfg.Cmd) - assert.Equal(t, strslice.StrSlice(nil), cfg.Entrypoint) + assert.Check(t, is.DeepEqual(cachedCmd, cfg.Cmd)) + assert.Check(t, is.DeepEqual(strslice.StrSlice(nil), cfg.Entrypoint)) return "", nil }, } @@ -441,21 +441,21 @@ func TestRunWithBuildArgs(t *testing.T) { } mockBackend.containerCreateFunc = func(config types.ContainerCreateConfig) (container.ContainerCreateCreatedBody, error) { // Check the runConfig.Cmd sent to create() - assert.Equal(t, cmdWithShell, config.Config.Cmd) - assert.Contains(t, config.Config.Env, "one=two") - assert.Equal(t, strslice.StrSlice{""}, config.Config.Entrypoint) + assert.Check(t, is.DeepEqual(cmdWithShell, config.Config.Cmd)) + assert.Check(t, is.Contains(config.Config.Env, "one=two")) + assert.Check(t, is.DeepEqual(strslice.StrSlice{""}, config.Config.Entrypoint)) return container.ContainerCreateCreatedBody{ID: "12345"}, nil } mockBackend.commitFunc = func(cfg backend.CommitConfig) (image.ID, error) { // Check the runConfig.Cmd sent to commit() - assert.Equal(t, origCmd, cfg.Config.Cmd) - assert.Equal(t, cachedCmd, cfg.ContainerConfig.Cmd) - assert.Equal(t, strslice.StrSlice(nil), cfg.Config.Entrypoint) + assert.Check(t, is.DeepEqual(origCmd, cfg.Config.Cmd)) + assert.Check(t, is.DeepEqual(cachedCmd, cfg.ContainerConfig.Cmd)) + assert.Check(t, is.DeepEqual(strslice.StrSlice(nil), cfg.Config.Entrypoint)) return "", nil } from := &instructions.Stage{BaseName: "abcdef"} err := initializeStage(sb, from) - require.NoError(t, err) + assert.NilError(t, err) sb.state.buildArgs.AddArg("one", strPtr("two")) run := &instructions.RunCommand{ ShellDependantCmdLine: instructions.ShellDependantCmdLine{ @@ -463,8 +463,8 @@ func TestRunWithBuildArgs(t *testing.T) { PrependShell: true, }, } - require.NoError(t, dispatch(sb, run)) + assert.NilError(t, dispatch(sb, run)) // Check that runConfig.Cmd has not been modified by run - assert.Equal(t, origCmd, sb.state.runConfig.Cmd) + assert.Check(t, is.DeepEqual(origCmd, sb.state.runConfig.Cmd)) } diff --git a/builder/dockerfile/instructions/parse_test.go b/builder/dockerfile/instructions/parse_test.go index ffd6d4f45c..b084ad11c7 100644 --- a/builder/dockerfile/instructions/parse_test.go +++ b/builder/dockerfile/instructions/parse_test.go @@ -7,8 +7,8 @@ import ( "github.com/docker/docker/builder/dockerfile/command" "github.com/docker/docker/builder/dockerfile/parser" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestCommandsExactlyOneArgument(t *testing.T) { @@ -21,9 +21,9 @@ func TestCommandsExactlyOneArgument(t *testing.T) { for _, command := range commands { ast, err := parser.Parse(strings.NewReader(command)) - require.NoError(t, err) + assert.NilError(t, err) _, err = ParseInstruction(ast.AST.Children[0]) - assert.EqualError(t, err, errExactlyOneArgument(command).Error()) + assert.Check(t, is.Error(err, errExactlyOneArgument(command).Error())) } } @@ -39,9 +39,9 @@ func TestCommandsAtLeastOneArgument(t *testing.T) { for _, command := range commands { ast, err := parser.Parse(strings.NewReader(command)) - require.NoError(t, err) + assert.NilError(t, err) _, err = ParseInstruction(ast.AST.Children[0]) - assert.EqualError(t, err, errAtLeastOneArgument(command).Error()) + assert.Check(t, is.Error(err, errAtLeastOneArgument(command).Error())) } } @@ -53,9 +53,9 @@ func TestCommandsNoDestinationArgument(t *testing.T) { for _, command := range commands { ast, err := parser.Parse(strings.NewReader(command + " arg1")) - require.NoError(t, err) + assert.NilError(t, err) _, err = ParseInstruction(ast.AST.Children[0]) - assert.EqualError(t, err, errNoDestinationArgument(command).Error()) + assert.Check(t, is.Error(err, errNoDestinationArgument(command).Error())) } } @@ -80,7 +80,7 @@ func TestCommandsTooManyArguments(t *testing.T) { }, } _, err := ParseInstruction(node) - assert.EqualError(t, err, errTooManyArguments(command).Error()) + assert.Check(t, is.Error(err, errTooManyArguments(command).Error())) } } @@ -102,7 +102,7 @@ func TestCommandsBlankNames(t *testing.T) { }, } _, err := ParseInstruction(node) - assert.EqualError(t, err, errBlankCommandNames(command).Error()) + assert.Check(t, is.Error(err, errBlankCommandNames(command).Error())) } } @@ -120,11 +120,11 @@ func TestHealthCheckCmd(t *testing.T) { }, } cmd, err := ParseInstruction(node) - assert.NoError(t, err) + assert.Check(t, err) hc, ok := cmd.(*HealthCheckCommand) - assert.True(t, ok) + assert.Check(t, ok) expected := []string{"CMD-SHELL", "hello world"} - assert.Equal(t, expected, hc.Health.Test) + assert.Check(t, is.DeepEqual(expected, hc.Health.Test)) } func TestParseOptInterval(t *testing.T) { @@ -138,7 +138,7 @@ func TestParseOptInterval(t *testing.T) { flInterval.Value = "1ms" _, err = parseOptInterval(flInterval) - require.NoError(t, err) + assert.NilError(t, err) } func TestErrorCases(t *testing.T) { diff --git a/builder/dockerfile/internals_linux_test.go b/builder/dockerfile/internals_linux_test.go index 08067f8573..c244ddfe3f 100644 --- a/builder/dockerfile/internals_linux_test.go +++ b/builder/dockerfile/internals_linux_test.go @@ -6,8 +6,8 @@ import ( "testing" "github.com/docker/docker/pkg/idtools" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestChownFlagParsing(t *testing.T) { @@ -99,8 +99,8 @@ othergrp:x:6666: } { t.Run(testcase.name, func(t *testing.T) { idPair, err := parseChownFlag(testcase.chownStr, contextDir, testcase.idMapping) - require.NoError(t, err, "Failed to parse chown flag: %q", testcase.chownStr) - assert.Equal(t, testcase.expected, idPair, "chown flag mapping failure") + assert.NilError(t, err, "Failed to parse chown flag: %q", testcase.chownStr) + assert.Check(t, is.DeepEqual(testcase.expected, idPair), "chown flag mapping failure") }) } @@ -132,7 +132,7 @@ othergrp:x:6666: } { t.Run(testcase.name, func(t *testing.T) { _, err := parseChownFlag(testcase.chownStr, contextDir, testcase.idMapping) - assert.EqualError(t, err, testcase.descr, "Expected error string doesn't match") + assert.Check(t, is.Error(err, testcase.descr), "Expected error string doesn't match") }) } } diff --git a/builder/dockerfile/internals_test.go b/builder/dockerfile/internals_test.go index 24103ecd8e..ae20026833 100644 --- a/builder/dockerfile/internals_test.go +++ b/builder/dockerfile/internals_test.go @@ -12,8 +12,8 @@ import ( "github.com/docker/docker/builder/remotecontext" "github.com/docker/docker/pkg/archive" "github.com/docker/go-connections/nat" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestEmptyDockerfile(t *testing.T) { @@ -60,7 +60,7 @@ func TestNonExistingDockerfile(t *testing.T) { func readAndCheckDockerfile(t *testing.T, testName, contextDir, dockerfilePath, expectedError string) { tarStream, err := archive.Tar(contextDir, archive.Uncompressed) - require.NoError(t, err) + assert.NilError(t, err) defer func() { if err = tarStream.Close(); err != nil { @@ -77,7 +77,7 @@ func readAndCheckDockerfile(t *testing.T, testName, contextDir, dockerfilePath, Source: tarStream, } _, _, err = remotecontext.Detect(config) - assert.EqualError(t, err, expectedError) + assert.Check(t, is.Error(err, expectedError)) } func TestCopyRunConfig(t *testing.T) { @@ -124,9 +124,9 @@ func TestCopyRunConfig(t *testing.T) { Env: defaultEnv, } runConfigCopy := copyRunConfig(runConfig, testcase.modifiers...) - assert.Equal(t, testcase.expected, runConfigCopy, testcase.doc) + assert.Check(t, is.DeepEqual(testcase.expected, runConfigCopy), testcase.doc) // Assert the original was not modified - assert.NotEqual(t, runConfig, runConfigCopy, testcase.doc) + assert.Check(t, runConfig != runConfigCopy, testcase.doc) } } @@ -156,7 +156,7 @@ func fullMutableRunConfig() *container.Config { func TestDeepCopyRunConfig(t *testing.T) { runConfig := fullMutableRunConfig() copy := copyRunConfig(runConfig) - assert.Equal(t, fullMutableRunConfig(), copy) + assert.Check(t, is.DeepEqual(fullMutableRunConfig(), copy)) copy.Cmd[1] = "arg2" copy.Env[1] = "env2=new" @@ -166,5 +166,5 @@ func TestDeepCopyRunConfig(t *testing.T) { copy.OnBuild[0] = "start" copy.Labels["label3"] = "value3" copy.Shell[0] = "sh" - assert.Equal(t, fullMutableRunConfig(), runConfig) + assert.Check(t, is.DeepEqual(fullMutableRunConfig(), runConfig)) } diff --git a/builder/dockerfile/internals_windows_test.go b/builder/dockerfile/internals_windows_test.go index 08f394ac60..1fc55c0752 100644 --- a/builder/dockerfile/internals_windows_test.go +++ b/builder/dockerfile/internals_windows_test.go @@ -7,7 +7,8 @@ import ( "testing" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestNormalizeDest(t *testing.T) { @@ -42,10 +43,10 @@ func TestNormalizeDest(t *testing.T) { msg := fmt.Sprintf("Input: %s, %s", testcase.current, testcase.requested) actual, err := normalizeDest(testcase.current, testcase.requested, "windows") if testcase.etext == "" { - if !assert.NoError(t, err, msg) { + if !assert.Check(t, err, msg) { continue } - assert.Equal(t, testcase.expected, actual, msg) + assert.Check(t, is.Equal(testcase.expected, actual), msg) } else { testutil.ErrorContains(t, err, testcase.etext) } diff --git a/builder/dockerfile/parser/line_parsers_test.go b/builder/dockerfile/parser/line_parsers_test.go index 8ce6a7ad6f..20369cad0b 100644 --- a/builder/dockerfile/parser/line_parsers_test.go +++ b/builder/dockerfile/parser/line_parsers_test.go @@ -3,25 +3,26 @@ package parser // import "github.com/docker/docker/builder/dockerfile/parser" import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestParseNameValOldFormat(t *testing.T) { directive := Directive{} node, err := parseNameVal("foo bar", "LABEL", &directive) - assert.NoError(t, err) + assert.Check(t, err) expected := &Node{ Value: "foo", Next: &Node{Value: "bar"}, } - assert.Equal(t, expected, node) + assert.Check(t, is.DeepEqual(expected, node)) } func TestParseNameValNewFormat(t *testing.T) { directive := Directive{} node, err := parseNameVal("foo=bar thing=star", "LABEL", &directive) - assert.NoError(t, err) + assert.Check(t, err) expected := &Node{ Value: "foo", @@ -35,7 +36,7 @@ func TestParseNameValNewFormat(t *testing.T) { }, }, } - assert.Equal(t, expected, node) + assert.Check(t, is.DeepEqual(expected, node)) } func TestNodeFromLabels(t *testing.T) { @@ -61,7 +62,7 @@ func TestNodeFromLabels(t *testing.T) { } node := NodeFromLabels(labels) - assert.Equal(t, expected, node) + assert.Check(t, is.DeepEqual(expected, node)) } @@ -70,5 +71,5 @@ func TestParseNameValWithoutVal(t *testing.T) { // In Config.Env, a variable without `=` is removed from the environment. (#31634) // However, in Dockerfile, we don't allow "unsetting" an environment variable. (#11922) _, err := parseNameVal("foo", "ENV", &directive) - assert.Error(t, err, "ENV must have two arguments") + assert.Check(t, is.ErrorContains(err, ""), "ENV must have two arguments") } diff --git a/builder/dockerfile/parser/parser_test.go b/builder/dockerfile/parser/parser_test.go index 807ac1b097..10bed1f756 100644 --- a/builder/dockerfile/parser/parser_test.go +++ b/builder/dockerfile/parser/parser_test.go @@ -11,8 +11,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) const testDir = "testfiles" @@ -21,11 +21,11 @@ const testFileLineInfo = "testfile-line/Dockerfile" func getDirs(t *testing.T, dir string) []string { f, err := os.Open(dir) - require.NoError(t, err) + assert.NilError(t, err) defer f.Close() dirs, err := f.Readdirnames(0) - require.NoError(t, err) + assert.NilError(t, err) return dirs } @@ -34,11 +34,11 @@ func TestParseErrorCases(t *testing.T) { dockerfile := filepath.Join(negativeTestDir, dir, "Dockerfile") df, err := os.Open(dockerfile) - require.NoError(t, err, dockerfile) + assert.NilError(t, err, dockerfile) defer df.Close() _, err = Parse(df) - assert.Error(t, err, dockerfile) + assert.Check(t, is.ErrorContains(err, ""), dockerfile) } } @@ -48,20 +48,20 @@ func TestParseCases(t *testing.T) { resultfile := filepath.Join(testDir, dir, "result") df, err := os.Open(dockerfile) - require.NoError(t, err, dockerfile) + assert.NilError(t, err, dockerfile) defer df.Close() result, err := Parse(df) - require.NoError(t, err, dockerfile) + assert.NilError(t, err, dockerfile) content, err := ioutil.ReadFile(resultfile) - require.NoError(t, err, resultfile) + assert.NilError(t, err, resultfile) if runtime.GOOS == "windows" { // CRLF --> CR to match Unix behavior content = bytes.Replace(content, []byte{'\x0d', '\x0a'}, []byte{'\x0a'}, -1) } - assert.Equal(t, result.AST.Dump()+"\n", string(content), "In "+dockerfile) + assert.Check(t, is.Equal(result.AST.Dump()+"\n", string(content)), "In "+dockerfile) } } @@ -103,22 +103,22 @@ func TestParseWords(t *testing.T) { for _, test := range tests { words := parseWords(test["input"][0], NewDefaultDirective()) - assert.Equal(t, test["expect"], words) + assert.Check(t, is.DeepEqual(test["expect"], words)) } } func TestParseIncludesLineNumbers(t *testing.T) { df, err := os.Open(testFileLineInfo) - require.NoError(t, err) + assert.NilError(t, err) defer df.Close() result, err := Parse(df) - require.NoError(t, err) + assert.NilError(t, err) ast := result.AST - assert.Equal(t, 5, ast.StartLine) - assert.Equal(t, 31, ast.endLine) - assert.Len(t, ast.Children, 3) + assert.Check(t, is.Equal(5, ast.StartLine)) + assert.Check(t, is.Equal(31, ast.endLine)) + assert.Check(t, is.Len(ast.Children, 3)) expected := [][]int{ {5, 5}, {11, 12}, @@ -126,7 +126,7 @@ func TestParseIncludesLineNumbers(t *testing.T) { } for i, child := range ast.Children { msg := fmt.Sprintf("Child %d", i) - assert.Equal(t, expected[i], []int{child.StartLine, child.endLine}, msg) + assert.Check(t, is.DeepEqual(expected[i], []int{child.StartLine, child.endLine}), msg) } } @@ -153,13 +153,13 @@ RUN indented \ `) result, err := Parse(dockerfile) - require.NoError(t, err) + assert.NilError(t, err) warnings := result.Warnings - assert.Len(t, warnings, 3) - assert.Contains(t, warnings[0], "Empty continuation line found in") - assert.Contains(t, warnings[0], "RUN something following more") - assert.Contains(t, warnings[1], "RUN another thing") - assert.Contains(t, warnings[2], "will become errors in a future release") + assert.Check(t, is.Len(warnings, 3)) + assert.Check(t, is.Contains(warnings[0], "Empty continuation line found in")) + assert.Check(t, is.Contains(warnings[0], "RUN something following more")) + assert.Check(t, is.Contains(warnings[1], "RUN another thing")) + assert.Check(t, is.Contains(warnings[2], "will become errors in a future release")) } func TestParseReturnsScannerErrors(t *testing.T) { @@ -170,5 +170,5 @@ func TestParseReturnsScannerErrors(t *testing.T) { LABEL test=%s `, label)) _, err := Parse(dockerfile) - assert.EqualError(t, err, "dockerfile line greater than max allowed size of 65535") + assert.Check(t, is.Error(err, "dockerfile line greater than max allowed size of 65535")) } diff --git a/builder/dockerfile/shell/lex_test.go b/builder/dockerfile/shell/lex_test.go index 6932a44e3d..7a726ad79b 100644 --- a/builder/dockerfile/shell/lex_test.go +++ b/builder/dockerfile/shell/lex_test.go @@ -7,7 +7,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestShellParser4EnvVars(t *testing.T) { @@ -15,7 +16,7 @@ func TestShellParser4EnvVars(t *testing.T) { lineCount := 0 file, err := os.Open(fn) - assert.NoError(t, err) + assert.Check(t, err) defer file.Close() shlex := NewLex('\\') @@ -37,7 +38,7 @@ func TestShellParser4EnvVars(t *testing.T) { } words := strings.Split(line, "|") - assert.Len(t, words, 3) + assert.Check(t, is.Len(words, 3)) platform := strings.TrimSpace(words[0]) source := strings.TrimSpace(words[1]) @@ -52,10 +53,10 @@ func TestShellParser4EnvVars(t *testing.T) { ((platform == "U" || platform == "A") && runtime.GOOS != "windows") { newWord, err := shlex.ProcessWord(source, envs) if expected == "error" { - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) } else { - assert.NoError(t, err) - assert.Equal(t, newWord, expected) + assert.Check(t, err) + assert.Check(t, is.Equal(newWord, expected)) } } } diff --git a/builder/fscache/fscache_test.go b/builder/fscache/fscache_test.go index 7afee49ed5..613070f7b6 100644 --- a/builder/fscache/fscache_test.go +++ b/builder/fscache/fscache_test.go @@ -7,14 +7,15 @@ import ( "testing" "time" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/moby/buildkit/session/filesync" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) func TestFSCache(t *testing.T) { tmpDir, err := ioutil.TempDir("", "fscache") - assert.Nil(t, err) + assert.Check(t, err) defer os.RemoveAll(tmpDir) backend := NewNaiveCacheBackend(filepath.Join(tmpDir, "backend")) @@ -26,84 +27,84 @@ func TestFSCache(t *testing.T) { } fscache, err := NewFSCache(opt) - assert.Nil(t, err) + assert.Check(t, err) defer fscache.Close() err = fscache.RegisterTransport("test", &testTransport{}) - assert.Nil(t, err) + assert.Check(t, err) src1, err := fscache.SyncFrom(context.TODO(), &testIdentifier{"foo", "data", "bar"}) - assert.Nil(t, err) + assert.Check(t, err) dt, err := ioutil.ReadFile(filepath.Join(src1.Root().Path(), "foo")) - assert.Nil(t, err) - assert.Equal(t, string(dt), "data") + assert.Check(t, err) + assert.Check(t, is.Equal(string(dt), "data")) // same id doesn't recalculate anything src2, err := fscache.SyncFrom(context.TODO(), &testIdentifier{"foo", "data2", "bar"}) - assert.Nil(t, err) - assert.Equal(t, src1.Root().Path(), src2.Root().Path()) + assert.Check(t, err) + assert.Check(t, is.Equal(src1.Root().Path(), src2.Root().Path())) dt, err = ioutil.ReadFile(filepath.Join(src1.Root().Path(), "foo")) - assert.Nil(t, err) - assert.Equal(t, string(dt), "data") - assert.Nil(t, src2.Close()) + assert.Check(t, err) + assert.Check(t, is.Equal(string(dt), "data")) + assert.Check(t, src2.Close()) src3, err := fscache.SyncFrom(context.TODO(), &testIdentifier{"foo2", "data2", "bar"}) - assert.Nil(t, err) - assert.NotEqual(t, src1.Root().Path(), src3.Root().Path()) + assert.Check(t, err) + assert.Check(t, src1.Root().Path() != src3.Root().Path()) dt, err = ioutil.ReadFile(filepath.Join(src3.Root().Path(), "foo2")) - assert.Nil(t, err) - assert.Equal(t, string(dt), "data2") + assert.Check(t, err) + assert.Check(t, is.Equal(string(dt), "data2")) s, err := fscache.DiskUsage() - assert.Nil(t, err) - assert.Equal(t, s, int64(0)) + assert.Check(t, err) + assert.Check(t, is.Equal(s, int64(0))) - assert.Nil(t, src3.Close()) + assert.Check(t, src3.Close()) s, err = fscache.DiskUsage() - assert.Nil(t, err) - assert.Equal(t, s, int64(5)) + assert.Check(t, err) + assert.Check(t, is.Equal(s, int64(5))) // new upload with the same shared key shoutl overwrite src4, err := fscache.SyncFrom(context.TODO(), &testIdentifier{"foo3", "data3", "bar"}) - assert.Nil(t, err) - assert.NotEqual(t, src1.Root().Path(), src3.Root().Path()) + assert.Check(t, err) + assert.Check(t, src1.Root().Path() != src3.Root().Path()) dt, err = ioutil.ReadFile(filepath.Join(src3.Root().Path(), "foo3")) - assert.Nil(t, err) - assert.Equal(t, string(dt), "data3") - assert.Equal(t, src4.Root().Path(), src3.Root().Path()) - assert.Nil(t, src4.Close()) + assert.Check(t, err) + assert.Check(t, is.Equal(string(dt), "data3")) + assert.Check(t, is.Equal(src4.Root().Path(), src3.Root().Path())) + assert.Check(t, src4.Close()) s, err = fscache.DiskUsage() - assert.Nil(t, err) - assert.Equal(t, s, int64(10)) + assert.Check(t, err) + assert.Check(t, is.Equal(s, int64(10))) // this one goes over the GC limit src5, err := fscache.SyncFrom(context.TODO(), &testIdentifier{"foo4", "datadata", "baz"}) - assert.Nil(t, err) - assert.Nil(t, src5.Close()) + assert.Check(t, err) + assert.Check(t, src5.Close()) // GC happens async time.Sleep(100 * time.Millisecond) // only last insertion after GC s, err = fscache.DiskUsage() - assert.Nil(t, err) - assert.Equal(t, s, int64(8)) + assert.Check(t, err) + assert.Check(t, is.Equal(s, int64(8))) // prune deletes everything released, err := fscache.Prune(context.TODO()) - assert.Nil(t, err) - assert.Equal(t, released, uint64(8)) + assert.Check(t, err) + assert.Check(t, is.Equal(released, uint64(8))) s, err = fscache.DiskUsage() - assert.Nil(t, err) - assert.Equal(t, s, int64(0)) + assert.Check(t, err) + assert.Check(t, is.Equal(s, int64(0))) } type testTransport struct { diff --git a/builder/remotecontext/git/gitutils_test.go b/builder/remotecontext/git/gitutils_test.go index 4f4d833508..cb2adb8c29 100644 --- a/builder/remotecontext/git/gitutils_test.go +++ b/builder/remotecontext/git/gitutils_test.go @@ -13,40 +13,40 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestParseRemoteURL(t *testing.T) { dir, err := parseRemoteURL("git://github.com/user/repo.git") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"git://github.com/user/repo.git", "master", ""}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"git://github.com/user/repo.git", "master", ""}, dir)) dir, err = parseRemoteURL("git://github.com/user/repo.git#mybranch:mydir/mysubdir/") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"git://github.com/user/repo.git", "mybranch", "mydir/mysubdir/"}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"git://github.com/user/repo.git", "mybranch", "mydir/mysubdir/"}, dir)) dir, err = parseRemoteURL("https://github.com/user/repo.git") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"https://github.com/user/repo.git", "master", ""}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"https://github.com/user/repo.git", "master", ""}, dir)) dir, err = parseRemoteURL("https://github.com/user/repo.git#mybranch:mydir/mysubdir/") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"https://github.com/user/repo.git", "mybranch", "mydir/mysubdir/"}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"https://github.com/user/repo.git", "mybranch", "mydir/mysubdir/"}, dir)) dir, err = parseRemoteURL("git@github.com:user/repo.git") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"git@github.com:user/repo.git", "master", ""}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"git@github.com:user/repo.git", "master", ""}, dir)) dir, err = parseRemoteURL("git@github.com:user/repo.git#mybranch:mydir/mysubdir/") - require.NoError(t, err) - assert.NotEmpty(t, dir) - assert.Equal(t, gitRepo{"git@github.com:user/repo.git", "mybranch", "mydir/mysubdir/"}, dir) + assert.NilError(t, err) + assert.Check(t, len(dir) != 0) + assert.Check(t, is.DeepEqual(gitRepo{"git@github.com:user/repo.git", "mybranch", "mydir/mysubdir/"}, dir)) } func TestCloneArgsSmartHttp(t *testing.T) { @@ -63,7 +63,7 @@ func TestCloneArgsSmartHttp(t *testing.T) { args := fetchArgs(serverURL.String(), "master") exp := []string{"fetch", "--depth", "1", "origin", "master"} - assert.Equal(t, exp, args) + assert.Check(t, is.DeepEqual(exp, args)) } func TestCloneArgsDumbHttp(t *testing.T) { @@ -79,13 +79,13 @@ func TestCloneArgsDumbHttp(t *testing.T) { args := fetchArgs(serverURL.String(), "master") exp := []string{"fetch", "origin", "master"} - assert.Equal(t, exp, args) + assert.Check(t, is.DeepEqual(exp, args)) } func TestCloneArgsGit(t *testing.T) { args := fetchArgs("git://github.com/docker/docker", "master") exp := []string{"fetch", "--depth", "1", "origin", "master"} - assert.Equal(t, exp, args) + assert.Check(t, is.DeepEqual(exp, args)) } func gitGetConfig(name string) string { @@ -100,7 +100,7 @@ func gitGetConfig(name string) string { func TestCheckoutGit(t *testing.T) { root, err := ioutil.TempDir("", "docker-build-git-checkout") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(root) autocrlf := gitGetConfig("core.autocrlf") @@ -115,22 +115,22 @@ func TestCheckoutGit(t *testing.T) { gitDir := filepath.Join(root, "repo") _, err = git("init", gitDir) - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "config", "user.email", "test@docker.com") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "config", "user.name", "Docker test") - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(gitDir, "Dockerfile"), []byte("FROM scratch"), 0644) - require.NoError(t, err) + assert.NilError(t, err) subDir := filepath.Join(gitDir, "subdir") - require.NoError(t, os.Mkdir(subDir, 0755)) + assert.NilError(t, os.Mkdir(subDir, 0755)) err = ioutil.WriteFile(filepath.Join(subDir, "Dockerfile"), []byte("FROM scratch\nEXPOSE 5000"), 0644) - require.NoError(t, err) + assert.NilError(t, err) if runtime.GOOS != "windows" { if err = os.Symlink("../subdir", filepath.Join(gitDir, "parentlink")); err != nil { @@ -143,58 +143,58 @@ func TestCheckoutGit(t *testing.T) { } _, err = gitWithinDir(gitDir, "add", "-A") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "commit", "-am", "First commit") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "checkout", "-b", "test") - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(gitDir, "Dockerfile"), []byte("FROM scratch\nEXPOSE 3000"), 0644) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(subDir, "Dockerfile"), []byte("FROM busybox\nEXPOSE 5000"), 0644) - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "add", "-A") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "commit", "-am", "Branch commit") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "checkout", "master") - require.NoError(t, err) + assert.NilError(t, err) // set up submodule subrepoDir := filepath.Join(root, "subrepo") _, err = git("init", subrepoDir) - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(subrepoDir, "config", "user.email", "test@docker.com") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(subrepoDir, "config", "user.name", "Docker test") - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(subrepoDir, "subfile"), []byte("subcontents"), 0644) - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(subrepoDir, "add", "-A") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(subrepoDir, "commit", "-am", "Subrepo initial") - require.NoError(t, err) + assert.NilError(t, err) cmd := exec.Command("git", "submodule", "add", subrepoDir, "sub") // this command doesn't work with --work-tree cmd.Dir = gitDir - require.NoError(t, cmd.Run()) + assert.NilError(t, cmd.Run()) _, err = gitWithinDir(gitDir, "add", "-A") - require.NoError(t, err) + assert.NilError(t, err) _, err = gitWithinDir(gitDir, "commit", "-am", "With submodule") - require.NoError(t, err) + assert.NilError(t, err) type singleCase struct { frag string @@ -232,24 +232,24 @@ func TestCheckoutGit(t *testing.T) { r, err := cloneGitRepo(gitRepo{remote: gitDir, ref: ref, subdir: subdir}) if c.fail { - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) continue } - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(r) if c.submodule { b, err := ioutil.ReadFile(filepath.Join(r, "sub/subfile")) - require.NoError(t, err) - assert.Equal(t, "subcontents", string(b)) + assert.NilError(t, err) + assert.Check(t, is.Equal("subcontents", string(b))) } else { _, err := os.Stat(filepath.Join(r, "sub/subfile")) - require.Error(t, err) - require.True(t, os.IsNotExist(err)) + assert.Assert(t, is.ErrorContains(err, "")) + assert.Assert(t, os.IsNotExist(err)) } b, err := ioutil.ReadFile(filepath.Join(r, "Dockerfile")) - require.NoError(t, err) - assert.Equal(t, c.exp, string(b)) + assert.NilError(t, err) + assert.Check(t, is.Equal(c.exp, string(b))) } } diff --git a/builder/remotecontext/mimetype_test.go b/builder/remotecontext/mimetype_test.go index ff097c2e7b..b13429cfa8 100644 --- a/builder/remotecontext/mimetype_test.go +++ b/builder/remotecontext/mimetype_test.go @@ -3,14 +3,14 @@ package remotecontext // import "github.com/docker/docker/builder/remotecontext" import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestDetectContentType(t *testing.T) { input := []byte("That is just a plain text") contentType, _, err := detectContentType(input) - require.NoError(t, err) - assert.Equal(t, "text/plain", contentType) + assert.NilError(t, err) + assert.Check(t, is.Equal("text/plain", contentType)) } diff --git a/builder/remotecontext/remote_test.go b/builder/remotecontext/remote_test.go index 3983bd1b6c..5267d23969 100644 --- a/builder/remotecontext/remote_test.go +++ b/builder/remotecontext/remote_test.go @@ -11,9 +11,9 @@ import ( "github.com/docker/docker/builder" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) var binaryContext = []byte{0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00} //xz magic @@ -189,12 +189,12 @@ func TestDownloadRemote(t *testing.T) { mux.Handle("/", http.FileServer(http.Dir(contextDir.Path()))) contentType, content, err := downloadRemote(remoteURL) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, mimeTypes.TextPlain, contentType) + assert.Check(t, is.Equal(mimeTypes.TextPlain, contentType)) raw, err := ioutil.ReadAll(content) - require.NoError(t, err) - assert.Equal(t, dockerfileContents, string(raw)) + assert.NilError(t, err) + assert.Check(t, is.Equal(dockerfileContents, string(raw))) } func TestGetWithStatusError(t *testing.T) { @@ -226,11 +226,11 @@ func TestGetWithStatusError(t *testing.T) { response, err := GetWithStatusError(ts.URL) if testcase.expectedErr == "" { - require.NoError(t, err) + assert.NilError(t, err) body, err := readBody(response.Body) - require.NoError(t, err) - assert.Contains(t, string(body), testcase.expectedBody) + assert.NilError(t, err) + assert.Check(t, is.Contains(string(body), testcase.expectedBody)) } else { testutil.ErrorContains(t, err, testcase.expectedErr) } diff --git a/client/client_test.go b/client/client_test.go index d6b8f67352..335dd99bcf 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -11,10 +11,10 @@ import ( "github.com/docker/docker/api" "github.com/docker/docker/api/types" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/env" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestNewEnvClient(t *testing.T) { @@ -89,19 +89,19 @@ func TestNewEnvClient(t *testing.T) { env.PatchAll(t, c.envs) apiclient, err := NewEnvClient() if c.expectedError != "" { - assert.Error(t, err, c.doc) - assert.Equal(t, c.expectedError, err.Error(), c.doc) + assert.Check(t, is.ErrorContains(err, ""), c.doc) + assert.Check(t, is.Equal(c.expectedError, err.Error()), c.doc) } else { - assert.NoError(t, err, c.doc) + assert.Check(t, err, c.doc) version := apiclient.ClientVersion() - assert.Equal(t, c.expectedVersion, version, c.doc) + assert.Check(t, is.Equal(c.expectedVersion, version), c.doc) } if c.envs["DOCKER_TLS_VERIFY"] != "" { // pedantic checking that this is handled correctly tr := apiclient.client.Transport.(*http.Transport) - assert.NotNil(t, tr.TLSClientConfig, c.doc) - assert.Equal(t, tr.TLSClientConfig.InsecureSkipVerify, false, c.doc) + assert.Check(t, tr.TLSClientConfig != nil, c.doc) + assert.Check(t, is.Equal(tr.TLSClientConfig.InsecureSkipVerify, false), c.doc) } } } @@ -128,7 +128,7 @@ func TestGetAPIPath(t *testing.T) { for _, testcase := range testcases { c := Client{version: testcase.version, basePath: "/"} actual := c.getAPIPath(testcase.path, testcase.query) - assert.Equal(t, actual, testcase.expected) + assert.Check(t, is.Equal(actual, testcase.expected)) } } @@ -165,7 +165,7 @@ func TestParseHostURL(t *testing.T) { if testcase.expectedErr != "" { testutil.ErrorContains(t, err, testcase.expectedErr) } - assert.Equal(t, testcase.expected, actual) + assert.Check(t, is.DeepEqual(testcase.expected, actual)) } } @@ -181,7 +181,7 @@ func TestNewEnvClientSetsDefaultVersion(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Equal(t, client.version, api.DefaultVersion) + assert.Check(t, is.Equal(client.version, api.DefaultVersion)) expected := "1.22" os.Setenv("DOCKER_API_VERSION", expected) @@ -189,7 +189,7 @@ func TestNewEnvClientSetsDefaultVersion(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Equal(t, expected, client.version) + assert.Check(t, is.Equal(expected, client.version)) } // TestNegotiateAPIVersionEmpty asserts that client.Client can @@ -198,7 +198,7 @@ func TestNegotiateAPIVersionEmpty(t *testing.T) { defer env.PatchAll(t, map[string]string{"DOCKER_API_VERSION": ""}) client, err := NewEnvClient() - require.NoError(t, err) + assert.NilError(t, err) ping := types.Ping{ APIVersion: "", @@ -215,14 +215,14 @@ func TestNegotiateAPIVersionEmpty(t *testing.T) { // test downgrade client.NegotiateAPIVersionPing(ping) - assert.Equal(t, expected, client.version) + assert.Check(t, is.Equal(expected, client.version)) } // TestNegotiateAPIVersion asserts that client.Client can // negotiate a compatible APIVersion with the server func TestNegotiateAPIVersion(t *testing.T) { client, err := NewEnvClient() - require.NoError(t, err) + assert.NilError(t, err) expected := "1.21" ping := types.Ping{ @@ -236,14 +236,14 @@ func TestNegotiateAPIVersion(t *testing.T) { // test downgrade client.NegotiateAPIVersionPing(ping) - assert.Equal(t, expected, client.version) + assert.Check(t, is.Equal(expected, client.version)) // set the client version to something older, and verify that we keep the // original setting. expected = "1.20" client.version = expected client.NegotiateAPIVersionPing(ping) - assert.Equal(t, expected, client.version) + assert.Check(t, is.Equal(expected, client.version)) } @@ -254,7 +254,7 @@ func TestNegotiateAPVersionOverride(t *testing.T) { defer env.PatchAll(t, map[string]string{"DOCKER_API_VERSION": expected})() client, err := NewEnvClient() - require.NoError(t, err) + assert.NilError(t, err) ping := types.Ping{ APIVersion: "1.24", @@ -264,7 +264,7 @@ func TestNegotiateAPVersionOverride(t *testing.T) { // test that we honored the env var client.NegotiateAPIVersionPing(ping) - assert.Equal(t, expected, client.version) + assert.Check(t, is.Equal(expected, client.version)) } type roundTripFunc func(*http.Request) (*http.Response, error) @@ -309,9 +309,9 @@ func TestClientRedirect(t *testing.T) { for _, tc := range cases { req, err := http.NewRequest(tc.httpMethod, "/redirectme", nil) - assert.NoError(t, err) + assert.Check(t, err) resp, err := client.Do(req) - assert.Equal(t, tc.expectedErr, err) - assert.Equal(t, tc.statusCode, resp.StatusCode) + assert.Check(t, is.DeepEqual(tc.expectedErr, err)) + assert.Check(t, is.Equal(tc.statusCode, resp.StatusCode)) } } diff --git a/client/config_create_test.go b/client/config_create_test.go index 3f3cb3fc56..2ee8f1fd40 100644 --- a/client/config_create_test.go +++ b/client/config_create_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -21,7 +22,7 @@ func TestConfigCreateUnsupported(t *testing.T) { client: &http.Client{}, } _, err := client.ConfigCreate(context.Background(), swarm.ConfigSpec{}) - assert.EqualError(t, err, `"config create" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"config create" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestConfigCreateError(t *testing.T) { diff --git a/client/config_inspect_test.go b/client/config_inspect_test.go index c6d73e5c02..9d5af0bf8c 100644 --- a/client/config_inspect_test.go +++ b/client/config_inspect_test.go @@ -10,8 +10,9 @@ import ( "testing" "github.com/docker/docker/api/types/swarm" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -44,7 +45,7 @@ func TestConfigInspectUnsupported(t *testing.T) { client: &http.Client{}, } _, _, err := client.ConfigInspectWithRaw(context.Background(), "nothing") - assert.EqualError(t, err, `"config inspect" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"config inspect" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestConfigInspectError(t *testing.T) { diff --git a/client/config_list_test.go b/client/config_list_test.go index 4b4a5e84ce..0cd99c50d1 100644 --- a/client/config_list_test.go +++ b/client/config_list_test.go @@ -12,7 +12,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -22,7 +23,7 @@ func TestConfigListUnsupported(t *testing.T) { client: &http.Client{}, } _, err := client.ConfigList(context.Background(), types.ConfigListOptions{}) - assert.EqualError(t, err, `"config list" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"config list" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestConfigListError(t *testing.T) { diff --git a/client/config_remove_test.go b/client/config_remove_test.go index 290395aae5..25a5c4ac87 100644 --- a/client/config_remove_test.go +++ b/client/config_remove_test.go @@ -8,7 +8,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -18,7 +19,7 @@ func TestConfigRemoveUnsupported(t *testing.T) { client: &http.Client{}, } err := client.ConfigRemove(context.Background(), "config_id") - assert.EqualError(t, err, `"config remove" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"config remove" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestConfigRemoveError(t *testing.T) { diff --git a/client/config_update_test.go b/client/config_update_test.go index 99f2e173c2..a7eea2f8b1 100644 --- a/client/config_update_test.go +++ b/client/config_update_test.go @@ -9,7 +9,8 @@ import ( "testing" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -19,7 +20,7 @@ func TestConfigUpdateUnsupported(t *testing.T) { client: &http.Client{}, } err := client.ConfigUpdate(context.Background(), "config_id", swarm.Version{}, swarm.ConfigSpec{}) - assert.EqualError(t, err, `"config update" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"config update" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestConfigUpdateError(t *testing.T) { diff --git a/client/container_prune_test.go b/client/container_prune_test.go index 1f8c22cbfe..7ffd9c7ecf 100644 --- a/client/container_prune_test.go +++ b/client/container_prune_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -24,7 +25,7 @@ func TestContainersPruneError(t *testing.T) { filters := filters.NewArgs() _, err := client.ContainersPrune(context.Background(), filters) - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestContainersPrune(t *testing.T) { @@ -99,7 +100,7 @@ func TestContainersPrune(t *testing.T) { query := req.URL.Query() for key, expected := range listCase.expectedQueryParams { actual := query.Get(key) - assert.Equal(t, expected, actual) + assert.Check(t, is.Equal(expected, actual)) } content, err := json.Marshal(types.ContainersPruneReport{ ContainersDeleted: []string{"container_id1", "container_id2"}, @@ -117,8 +118,8 @@ func TestContainersPrune(t *testing.T) { } report, err := client.ContainersPrune(context.Background(), listCase.filters) - assert.NoError(t, err) - assert.Len(t, report.ContainersDeleted, 2) - assert.Equal(t, uint64(9999), report.SpaceReclaimed) + assert.Check(t, err) + assert.Check(t, is.Len(report.ContainersDeleted, 2)) + assert.Check(t, is.Equal(uint64(9999), report.SpaceReclaimed)) } } diff --git a/client/container_remove_test.go b/client/container_remove_test.go index 0b1b64fa3a..537272cd1d 100644 --- a/client/container_remove_test.go +++ b/client/container_remove_test.go @@ -9,7 +9,8 @@ import ( "testing" "github.com/docker/docker/api/types" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -18,7 +19,7 @@ func TestContainerRemoveError(t *testing.T) { client: newMockClient(errorMock(http.StatusInternalServerError, "Server error")), } err := client.ContainerRemove(context.Background(), "container_id", types.ContainerRemoveOptions{}) - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestContainerRemoveNotFoundError(t *testing.T) { @@ -26,8 +27,8 @@ func TestContainerRemoveNotFoundError(t *testing.T) { client: newMockClient(errorMock(http.StatusNotFound, "missing")), } err := client.ContainerRemove(context.Background(), "container_id", types.ContainerRemoveOptions{}) - assert.EqualError(t, err, "Error: No such container: container_id") - assert.True(t, IsErrNotFound(err)) + assert.Check(t, is.Error(err, "Error: No such container: container_id")) + assert.Check(t, IsErrNotFound(err)) } func TestContainerRemove(t *testing.T) { @@ -61,5 +62,5 @@ func TestContainerRemove(t *testing.T) { RemoveVolumes: true, Force: true, }) - assert.NoError(t, err) + assert.Check(t, err) } diff --git a/client/distribution_inspect_test.go b/client/distribution_inspect_test.go index 90b35a285b..d4124bfa15 100644 --- a/client/distribution_inspect_test.go +++ b/client/distribution_inspect_test.go @@ -4,8 +4,9 @@ import ( "net/http" "testing" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -15,7 +16,7 @@ func TestDistributionInspectUnsupported(t *testing.T) { client: &http.Client{}, } _, err := client.DistributionInspect(context.Background(), "foobar:1.0", "") - assert.EqualError(t, err, `"distribution inspect" requires API version 1.30, but the Docker daemon API version is 1.29`) + assert.Check(t, is.Error(err, `"distribution inspect" requires API version 1.30, but the Docker daemon API version is 1.29`)) } func TestDistributionInspectWithEmptyID(t *testing.T) { diff --git a/client/image_prune_test.go b/client/image_prune_test.go index f165e5c746..9b161531f2 100644 --- a/client/image_prune_test.go +++ b/client/image_prune_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -24,7 +25,7 @@ func TestImagesPruneError(t *testing.T) { filters := filters.NewArgs() _, err := client.ImagesPrune(context.Background(), filters) - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestImagesPrune(t *testing.T) { @@ -87,7 +88,7 @@ func TestImagesPrune(t *testing.T) { query := req.URL.Query() for key, expected := range listCase.expectedQueryParams { actual := query.Get(key) - assert.Equal(t, expected, actual) + assert.Check(t, is.Equal(expected, actual)) } content, err := json.Marshal(types.ImagesPruneReport{ ImagesDeleted: []types.ImageDeleteResponseItem{ @@ -112,8 +113,8 @@ func TestImagesPrune(t *testing.T) { } report, err := client.ImagesPrune(context.Background(), listCase.filters) - assert.NoError(t, err) - assert.Len(t, report.ImagesDeleted, 2) - assert.Equal(t, uint64(9999), report.SpaceReclaimed) + assert.Check(t, err) + assert.Check(t, is.Len(report.ImagesDeleted, 2)) + assert.Check(t, is.Equal(uint64(9999), report.SpaceReclaimed)) } } diff --git a/client/image_remove_test.go b/client/image_remove_test.go index 8f5aa0120d..a1686e6496 100644 --- a/client/image_remove_test.go +++ b/client/image_remove_test.go @@ -10,7 +10,8 @@ import ( "testing" "github.com/docker/docker/api/types" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -20,7 +21,7 @@ func TestImageRemoveError(t *testing.T) { } _, err := client.ImageRemove(context.Background(), "image_id", types.ImageRemoveOptions{}) - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestImageRemoveImageNotFound(t *testing.T) { @@ -29,8 +30,8 @@ func TestImageRemoveImageNotFound(t *testing.T) { } _, err := client.ImageRemove(context.Background(), "unknown", types.ImageRemoveOptions{}) - assert.EqualError(t, err, "Error: No such image: unknown") - assert.True(t, IsErrNotFound(err)) + assert.Check(t, is.Error(err, "Error: No such image: unknown")) + assert.Check(t, IsErrNotFound(err)) } func TestImageRemove(t *testing.T) { diff --git a/client/network_inspect_test.go b/client/network_inspect_test.go index 7031611911..8778021ed9 100644 --- a/client/network_inspect_test.go +++ b/client/network_inspect_test.go @@ -11,8 +11,9 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/network" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -22,7 +23,7 @@ func TestNetworkInspectError(t *testing.T) { } _, err := client.NetworkInspect(context.Background(), "nothing", types.NetworkInspectOptions{}) - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestNetworkInspectNotFoundError(t *testing.T) { @@ -31,8 +32,8 @@ func TestNetworkInspectNotFoundError(t *testing.T) { } _, err := client.NetworkInspect(context.Background(), "unknown", types.NetworkInspectOptions{}) - assert.EqualError(t, err, "Error: No such network: unknown") - assert.True(t, IsErrNotFound(err)) + assert.Check(t, is.Error(err, "Error: No such network: unknown")) + assert.Check(t, IsErrNotFound(err)) } func TestNetworkInspectWithEmptyID(t *testing.T) { @@ -113,5 +114,5 @@ func TestNetworkInspect(t *testing.T) { } _, err = client.NetworkInspect(context.Background(), "network_id", types.NetworkInspectOptions{Scope: "global"}) - assert.EqualError(t, err, "Error: No such network: network_id") + assert.Check(t, is.Error(err, "Error: No such network: network_id")) } diff --git a/client/network_prune_test.go b/client/network_prune_test.go index 8bba3751e7..85908f0cf3 100644 --- a/client/network_prune_test.go +++ b/client/network_prune_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -89,7 +90,7 @@ func TestNetworksPrune(t *testing.T) { query := req.URL.Query() for key, expected := range listCase.expectedQueryParams { actual := query.Get(key) - assert.Equal(t, expected, actual) + assert.Check(t, is.Equal(expected, actual)) } content, err := json.Marshal(types.NetworksPruneReport{ NetworksDeleted: []string{"network_id1", "network_id2"}, @@ -106,7 +107,7 @@ func TestNetworksPrune(t *testing.T) { } report, err := client.NetworksPrune(context.Background(), listCase.filters) - assert.NoError(t, err) - assert.Len(t, report.NetworksDeleted, 2) + assert.Check(t, err) + assert.Check(t, is.Len(report.NetworksDeleted, 2)) } } diff --git a/client/ping_test.go b/client/ping_test.go index 69ff86269d..f83233aceb 100644 --- a/client/ping_test.go +++ b/client/ping_test.go @@ -7,7 +7,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -31,15 +32,15 @@ func TestPingFail(t *testing.T) { } ping, err := client.Ping(context.Background()) - assert.Error(t, err) - assert.Equal(t, false, ping.Experimental) - assert.Equal(t, "", ping.APIVersion) + assert.Check(t, is.ErrorContains(err, "")) + assert.Check(t, is.Equal(false, ping.Experimental)) + assert.Check(t, is.Equal("", ping.APIVersion)) withHeader = true ping2, err := client.Ping(context.Background()) - assert.Error(t, err) - assert.Equal(t, true, ping2.Experimental) - assert.Equal(t, "awesome", ping2.APIVersion) + assert.Check(t, is.ErrorContains(err, "")) + assert.Check(t, is.Equal(true, ping2.Experimental)) + assert.Check(t, is.Equal("awesome", ping2.APIVersion)) } // TestPingWithError tests the case where there is a protocol error in the ping. @@ -57,9 +58,9 @@ func TestPingWithError(t *testing.T) { } ping, err := client.Ping(context.Background()) - assert.Error(t, err) - assert.Equal(t, false, ping.Experimental) - assert.Equal(t, "", ping.APIVersion) + assert.Check(t, is.ErrorContains(err, "")) + assert.Check(t, is.Equal(false, ping.Experimental)) + assert.Check(t, is.Equal("", ping.APIVersion)) } // TestPingSuccess tests that we are able to get the expected API headers/ping @@ -76,7 +77,7 @@ func TestPingSuccess(t *testing.T) { }), } ping, err := client.Ping(context.Background()) - assert.Error(t, err) - assert.Equal(t, true, ping.Experimental) - assert.Equal(t, "awesome", ping.APIVersion) + assert.Check(t, is.ErrorContains(err, "")) + assert.Check(t, is.Equal(true, ping.Experimental)) + assert.Check(t, is.Equal("awesome", ping.APIVersion)) } diff --git a/client/request_test.go b/client/request_test.go index 1dbfed62c7..1a0a87e2f4 100644 --- a/client/request_test.go +++ b/client/request_test.go @@ -9,7 +9,7 @@ import ( "testing" "github.com/docker/docker/api/types" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" "golang.org/x/net/context" ) @@ -46,7 +46,7 @@ func TestSetHostHeader(t *testing.T) { for c, test := range testCases { hostURL, err := ParseHostURL(test.host) - require.NoError(t, err) + assert.NilError(t, err) client := &Client{ client: newMockClient(func(req *http.Request) (*http.Response, error) { @@ -71,7 +71,7 @@ func TestSetHostHeader(t *testing.T) { } _, err = client.sendRequest(context.Background(), "GET", testURL, nil, nil, nil) - require.NoError(t, err) + assert.NilError(t, err) } } diff --git a/client/secret_create_test.go b/client/secret_create_test.go index 7d54e1aeb0..b31cab509f 100644 --- a/client/secret_create_test.go +++ b/client/secret_create_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -21,7 +22,7 @@ func TestSecretCreateUnsupported(t *testing.T) { client: &http.Client{}, } _, err := client.SecretCreate(context.Background(), swarm.SecretSpec{}) - assert.EqualError(t, err, `"secret create" requires API version 1.25, but the Docker daemon API version is 1.24`) + assert.Check(t, is.Error(err, `"secret create" requires API version 1.25, but the Docker daemon API version is 1.24`)) } func TestSecretCreateError(t *testing.T) { diff --git a/client/secret_inspect_test.go b/client/secret_inspect_test.go index eb63162c18..0bb3ae24cc 100644 --- a/client/secret_inspect_test.go +++ b/client/secret_inspect_test.go @@ -10,8 +10,9 @@ import ( "testing" "github.com/docker/docker/api/types/swarm" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -21,7 +22,7 @@ func TestSecretInspectUnsupported(t *testing.T) { client: &http.Client{}, } _, _, err := client.SecretInspectWithRaw(context.Background(), "nothing") - assert.EqualError(t, err, `"secret inspect" requires API version 1.25, but the Docker daemon API version is 1.24`) + assert.Check(t, is.Error(err, `"secret inspect" requires API version 1.25, but the Docker daemon API version is 1.24`)) } func TestSecretInspectError(t *testing.T) { diff --git a/client/secret_list_test.go b/client/secret_list_test.go index 2bd427898b..36d8e8e2f0 100644 --- a/client/secret_list_test.go +++ b/client/secret_list_test.go @@ -12,7 +12,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -22,7 +23,7 @@ func TestSecretListUnsupported(t *testing.T) { client: &http.Client{}, } _, err := client.SecretList(context.Background(), types.SecretListOptions{}) - assert.EqualError(t, err, `"secret list" requires API version 1.25, but the Docker daemon API version is 1.24`) + assert.Check(t, is.Error(err, `"secret list" requires API version 1.25, but the Docker daemon API version is 1.24`)) } func TestSecretListError(t *testing.T) { diff --git a/client/secret_remove_test.go b/client/secret_remove_test.go index 44cc0cbcc4..37c22650d1 100644 --- a/client/secret_remove_test.go +++ b/client/secret_remove_test.go @@ -8,7 +8,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -18,7 +19,7 @@ func TestSecretRemoveUnsupported(t *testing.T) { client: &http.Client{}, } err := client.SecretRemove(context.Background(), "secret_id") - assert.EqualError(t, err, `"secret remove" requires API version 1.25, but the Docker daemon API version is 1.24`) + assert.Check(t, is.Error(err, `"secret remove" requires API version 1.25, but the Docker daemon API version is 1.24`)) } func TestSecretRemoveError(t *testing.T) { diff --git a/client/secret_update_test.go b/client/secret_update_test.go index d2fca4b2d5..3ff172ba53 100644 --- a/client/secret_update_test.go +++ b/client/secret_update_test.go @@ -9,7 +9,8 @@ import ( "testing" "github.com/docker/docker/api/types/swarm" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -19,7 +20,7 @@ func TestSecretUpdateUnsupported(t *testing.T) { client: &http.Client{}, } err := client.SecretUpdate(context.Background(), "secret_id", swarm.Version{}, swarm.SecretSpec{}) - assert.EqualError(t, err, `"secret update" requires API version 1.25, but the Docker daemon API version is 1.24`) + assert.Check(t, is.Error(err, `"secret update" requires API version 1.25, but the Docker daemon API version is 1.24`)) } func TestSecretUpdateError(t *testing.T) { diff --git a/client/service_create_test.go b/client/service_create_test.go index 9e859b18ac..c5d8ae4ff9 100644 --- a/client/service_create_test.go +++ b/client/service_create_test.go @@ -12,9 +12,10 @@ import ( "github.com/docker/docker/api/types" registrytypes "github.com/docker/docker/api/types/registry" "github.com/docker/docker/api/types/swarm" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/opencontainers/go-digest" "github.com/opencontainers/image-spec/specs-go/v1" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -73,8 +74,8 @@ func TestServiceCreateCompatiblePlatforms(t *testing.T) { return nil, err } - assert.Equal(t, "foobar:1.0@sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96", serviceSpec.TaskTemplate.ContainerSpec.Image) - assert.Len(t, serviceSpec.TaskTemplate.Placement.Platforms, 1) + assert.Check(t, is.Equal("foobar:1.0@sha256:c0537ff6a5218ef531ece93d4984efc99bbf3f7497c0a7726c88e2bb7584dc96", serviceSpec.TaskTemplate.ContainerSpec.Image)) + assert.Check(t, is.Len(serviceSpec.TaskTemplate.Placement.Platforms, 1)) p := serviceSpec.TaskTemplate.Placement.Platforms[0] b, err := json.Marshal(types.ServiceCreateResponse{ @@ -115,8 +116,8 @@ func TestServiceCreateCompatiblePlatforms(t *testing.T) { spec := swarm.ServiceSpec{TaskTemplate: swarm.TaskSpec{ContainerSpec: &swarm.ContainerSpec{Image: "foobar:1.0"}}} r, err := client.ServiceCreate(context.Background(), spec, types.ServiceCreateOptions{QueryRegistry: true}) - assert.NoError(t, err) - assert.Equal(t, "service_linux_amd64", r.ID) + assert.Check(t, err) + assert.Check(t, is.Equal("service_linux_amd64", r.ID)) } func TestServiceCreateDigestPinning(t *testing.T) { diff --git a/client/service_remove_test.go b/client/service_remove_test.go index 0909c9e064..9198763f8e 100644 --- a/client/service_remove_test.go +++ b/client/service_remove_test.go @@ -8,7 +8,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -18,7 +19,7 @@ func TestServiceRemoveError(t *testing.T) { } err := client.ServiceRemove(context.Background(), "service_id") - assert.EqualError(t, err, "Error response from daemon: Server error") + assert.Check(t, is.Error(err, "Error response from daemon: Server error")) } func TestServiceRemoveNotFoundError(t *testing.T) { @@ -27,8 +28,8 @@ func TestServiceRemoveNotFoundError(t *testing.T) { } err := client.ServiceRemove(context.Background(), "service_id") - assert.EqualError(t, err, "Error: No such service: service_id") - assert.True(t, IsErrNotFound(err)) + assert.Check(t, is.Error(err, "Error: No such service: service_id")) + assert.Check(t, IsErrNotFound(err)) } func TestServiceRemove(t *testing.T) { diff --git a/client/swarm_get_unlock_key_test.go b/client/swarm_get_unlock_key_test.go index c4ac70738a..aff79440fe 100644 --- a/client/swarm_get_unlock_key_test.go +++ b/client/swarm_get_unlock_key_test.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -55,6 +55,6 @@ func TestSwarmGetUnlockKey(t *testing.T) { } resp, err := client.SwarmGetUnlockKey(context.Background()) - require.NoError(t, err) - assert.Equal(t, unlockKey, resp.UnlockKey) + assert.NilError(t, err) + assert.Check(t, is.Equal(unlockKey, resp.UnlockKey)) } diff --git a/client/volume_inspect_test.go b/client/volume_inspect_test.go index c97f5c7215..4a2cf7c7d7 100644 --- a/client/volume_inspect_test.go +++ b/client/volume_inspect_test.go @@ -11,9 +11,9 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -32,7 +32,7 @@ func TestVolumeInspectNotFound(t *testing.T) { } _, err := client.VolumeInspect(context.Background(), "unknown") - assert.True(t, IsErrNotFound(err)) + assert.Check(t, IsErrNotFound(err)) } func TestVolumeInspectWithEmptyID(t *testing.T) { @@ -75,6 +75,6 @@ func TestVolumeInspect(t *testing.T) { } volume, err := client.VolumeInspect(context.Background(), "volume_id") - require.NoError(t, err) - assert.Equal(t, expected, volume) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(expected, volume)) } diff --git a/cmd/dockerd/config_unix_test.go b/cmd/dockerd/config_unix_test.go index 2705d671ba..eaa53d8f6f 100644 --- a/cmd/dockerd/config_unix_test.go +++ b/cmd/dockerd/config_unix_test.go @@ -6,8 +6,9 @@ import ( "testing" "github.com/docker/docker/daemon/config" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" ) func TestDaemonParseShmSize(t *testing.T) { @@ -16,7 +17,7 @@ func TestDaemonParseShmSize(t *testing.T) { conf := &config.Config{} installConfigFlags(conf, flags) // By default `--default-shm-size=64M` - assert.Equal(t, int64(64*1024*1024), conf.ShmSize.Value()) - assert.NoError(t, flags.Set("default-shm-size", "128M")) - assert.Equal(t, int64(128*1024*1024), conf.ShmSize.Value()) + assert.Check(t, is.Equal(int64(64*1024*1024), conf.ShmSize.Value())) + assert.Check(t, flags.Set("default-shm-size", "128M")) + assert.Check(t, is.Equal(int64(128*1024*1024), conf.ShmSize.Value())) } diff --git a/cmd/dockerd/daemon_test.go b/cmd/dockerd/daemon_test.go index b065831871..e5c2c2ec7c 100644 --- a/cmd/dockerd/daemon_test.go +++ b/cmd/dockerd/daemon_test.go @@ -5,11 +5,11 @@ import ( "github.com/docker/docker/daemon/config" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" "github.com/sirupsen/logrus" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func defaultOptions(configFile string) *daemonOptions { @@ -27,8 +27,8 @@ func TestLoadDaemonCliConfigWithoutOverriding(t *testing.T) { opts.Debug = true loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) if !loadedConfig.Debug { t.Fatalf("expected debug to be copied from the common flags, got false") } @@ -40,9 +40,9 @@ func TestLoadDaemonCliConfigWithTLS(t *testing.T) { opts.TLS = true loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.Equal(t, "/tmp/ca.pem", loadedConfig.CommonTLSOptions.CAFile) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, is.Equal("/tmp/ca.pem", loadedConfig.CommonTLSOptions.CAFile)) } func TestLoadDaemonCliConfigWithConflicts(t *testing.T) { @@ -53,9 +53,9 @@ func TestLoadDaemonCliConfigWithConflicts(t *testing.T) { opts := defaultOptions(configFile) flags := opts.flags - assert.NoError(t, flags.Set("config-file", configFile)) - assert.NoError(t, flags.Set("label", "l1=bar")) - assert.NoError(t, flags.Set("label", "l2=baz")) + assert.Check(t, flags.Set("config-file", configFile)) + assert.Check(t, flags.Set("label", "l1=bar")) + assert.Check(t, flags.Set("label", "l2=baz")) _, err := loadDaemonCliConfig(opts) testutil.ErrorContains(t, err, "as a flag and in the configuration file: labels") @@ -69,9 +69,9 @@ func TestLoadDaemonCliWithConflictingNodeGenericResources(t *testing.T) { opts := defaultOptions(configFile) flags := opts.flags - assert.NoError(t, flags.Set("config-file", configFile)) - assert.NoError(t, flags.Set("node-generic-resource", "r1=bar")) - assert.NoError(t, flags.Set("node-generic-resource", "r2=baz")) + assert.Check(t, flags.Set("config-file", configFile)) + assert.Check(t, flags.Set("node-generic-resource", "r1=bar")) + assert.Check(t, flags.Set("node-generic-resource", "r2=baz")) _, err := loadDaemonCliConfig(opts) testutil.ErrorContains(t, err, "as a flag and in the configuration file: node-generic-resources") @@ -81,22 +81,22 @@ func TestLoadDaemonCliWithConflictingLabels(t *testing.T) { opts := defaultOptions("") flags := opts.flags - assert.NoError(t, flags.Set("label", "foo=bar")) - assert.NoError(t, flags.Set("label", "foo=baz")) + assert.Check(t, flags.Set("label", "foo=bar")) + assert.Check(t, flags.Set("label", "foo=baz")) _, err := loadDaemonCliConfig(opts) - assert.EqualError(t, err, "conflict labels for foo=baz and foo=bar") + assert.Check(t, is.Error(err, "conflict labels for foo=baz and foo=bar")) } func TestLoadDaemonCliWithDuplicateLabels(t *testing.T) { opts := defaultOptions("") flags := opts.flags - assert.NoError(t, flags.Set("label", "foo=the-same")) - assert.NoError(t, flags.Set("label", "foo=the-same")) + assert.Check(t, flags.Set("label", "foo=the-same")) + assert.Check(t, flags.Set("label", "foo=the-same")) _, err := loadDaemonCliConfig(opts) - assert.NoError(t, err) + assert.Check(t, err) } func TestLoadDaemonCliConfigWithTLSVerify(t *testing.T) { @@ -107,9 +107,9 @@ func TestLoadDaemonCliConfigWithTLSVerify(t *testing.T) { opts.TLSOptions.CAFile = "/tmp/ca.pem" loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.Equal(t, loadedConfig.TLS, true) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, is.Equal(loadedConfig.TLS, true)) } func TestLoadDaemonCliConfigWithExplicitTLSVerifyFalse(t *testing.T) { @@ -120,9 +120,9 @@ func TestLoadDaemonCliConfigWithExplicitTLSVerifyFalse(t *testing.T) { opts.TLSOptions.CAFile = "/tmp/ca.pem" loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.True(t, loadedConfig.TLS) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, loadedConfig.TLS) } func TestLoadDaemonCliConfigWithoutTLSVerify(t *testing.T) { @@ -133,9 +133,9 @@ func TestLoadDaemonCliConfigWithoutTLSVerify(t *testing.T) { opts.TLSOptions.CAFile = "/tmp/ca.pem" loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.False(t, loadedConfig.TLS) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, !loadedConfig.TLS) } func TestLoadDaemonCliConfigWithLogLevel(t *testing.T) { @@ -144,10 +144,10 @@ func TestLoadDaemonCliConfigWithLogLevel(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.Equal(t, "warn", loadedConfig.LogLevel) - assert.Equal(t, logrus.WarnLevel, logrus.GetLevel()) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, is.Equal("warn", loadedConfig.LogLevel)) + assert.Check(t, is.Equal(logrus.WarnLevel, logrus.GetLevel())) } func TestLoadDaemonConfigWithEmbeddedOptions(t *testing.T) { @@ -157,10 +157,10 @@ func TestLoadDaemonConfigWithEmbeddedOptions(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.Equal(t, "/etc/certs/ca.pem", loadedConfig.CommonTLSOptions.CAFile) - assert.Equal(t, "syslog", loadedConfig.LogConfig.Type) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, is.Equal("/etc/certs/ca.pem", loadedConfig.CommonTLSOptions.CAFile)) + assert.Check(t, is.Equal("syslog", loadedConfig.LogConfig.Type)) } func TestLoadDaemonConfigWithRegistryOptions(t *testing.T) { @@ -174,10 +174,10 @@ func TestLoadDaemonConfigWithRegistryOptions(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) - assert.Len(t, loadedConfig.AllowNondistributableArtifacts, 1) - assert.Len(t, loadedConfig.Mirrors, 1) - assert.Len(t, loadedConfig.InsecureRegistries, 1) + assert.Check(t, is.Len(loadedConfig.AllowNondistributableArtifacts, 1)) + assert.Check(t, is.Len(loadedConfig.Mirrors, 1)) + assert.Check(t, is.Len(loadedConfig.InsecureRegistries, 1)) } diff --git a/cmd/dockerd/daemon_unix_test.go b/cmd/dockerd/daemon_unix_test.go index 41c392e1b1..39ff1e6822 100644 --- a/cmd/dockerd/daemon_unix_test.go +++ b/cmd/dockerd/daemon_unix_test.go @@ -6,9 +6,9 @@ import ( "testing" "github.com/docker/docker/daemon/config" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { @@ -19,17 +19,17 @@ func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { opts := defaultOptions(tempFile.Path()) opts.Debug = true opts.LogLevel = "info" - assert.NoError(t, opts.flags.Set("selinux-enabled", "true")) + assert.Check(t, opts.flags.Set("selinux-enabled", "true")) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) - assert.True(t, loadedConfig.Debug) - assert.Equal(t, "info", loadedConfig.LogLevel) - assert.True(t, loadedConfig.EnableSelinuxSupport) - assert.Equal(t, "json-file", loadedConfig.LogConfig.Type) - assert.Equal(t, "1k", loadedConfig.LogConfig.Config["max-size"]) + assert.Check(t, loadedConfig.Debug) + assert.Check(t, is.Equal("info", loadedConfig.LogLevel)) + assert.Check(t, loadedConfig.EnableSelinuxSupport) + assert.Check(t, is.Equal("json-file", loadedConfig.LogConfig.Type)) + assert.Check(t, is.Equal("1k", loadedConfig.LogConfig.Config["max-size"])) } func TestLoadDaemonConfigWithNetwork(t *testing.T) { @@ -39,11 +39,11 @@ func TestLoadDaemonConfigWithNetwork(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) - assert.Equal(t, "127.0.0.2", loadedConfig.IP) - assert.Equal(t, "127.0.0.1", loadedConfig.DefaultIP.String()) + assert.Check(t, is.Equal("127.0.0.2", loadedConfig.IP)) + assert.Check(t, is.Equal("127.0.0.1", loadedConfig.DefaultIP.String())) } func TestLoadDaemonConfigWithMapOptions(t *testing.T) { @@ -56,14 +56,14 @@ func TestLoadDaemonConfigWithMapOptions(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) - assert.NotNil(t, loadedConfig.ClusterOpts) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) + assert.Check(t, loadedConfig.ClusterOpts != nil) expectedPath := "/var/lib/docker/discovery_certs/ca.pem" - assert.Equal(t, expectedPath, loadedConfig.ClusterOpts["kv.cacertfile"]) - assert.NotNil(t, loadedConfig.LogConfig.Config) - assert.Equal(t, "test", loadedConfig.LogConfig.Config["tag"]) + assert.Check(t, is.Equal(expectedPath, loadedConfig.ClusterOpts["kv.cacertfile"])) + assert.Check(t, loadedConfig.LogConfig.Config != nil) + assert.Check(t, is.Equal("test", loadedConfig.LogConfig.Config["tag"])) } func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { @@ -73,17 +73,17 @@ func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) - assert.False(t, loadedConfig.EnableUserlandProxy) + assert.Check(t, !loadedConfig.EnableUserlandProxy) // make sure reloading doesn't generate configuration // conflicts after normalizing boolean values. reload := func(reloadedConfig *config.Config) { - assert.False(t, reloadedConfig.EnableUserlandProxy) + assert.Check(t, !reloadedConfig.EnableUserlandProxy) } - assert.NoError(t, config.Reload(opts.configFile, opts.flags, reload)) + assert.Check(t, config.Reload(opts.configFile, opts.flags, reload)) } func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { @@ -92,8 +92,8 @@ func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { opts := defaultOptions(tempFile.Path()) loadedConfig, err := loadDaemonCliConfig(opts) - require.NoError(t, err) - require.NotNil(t, loadedConfig) + assert.NilError(t, err) + assert.Assert(t, loadedConfig != nil) - assert.True(t, loadedConfig.EnableUserlandProxy) + assert.Check(t, loadedConfig.EnableUserlandProxy) } diff --git a/cmd/dockerd/options_test.go b/cmd/dockerd/options_test.go index c3298a0ac6..2a4e63b6b6 100644 --- a/cmd/dockerd/options_test.go +++ b/cmd/dockerd/options_test.go @@ -6,8 +6,9 @@ import ( cliconfig "github.com/docker/docker/cli/config" "github.com/docker/docker/daemon/config" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" ) func TestCommonOptionsInstallFlags(t *testing.T) { @@ -20,10 +21,10 @@ func TestCommonOptionsInstallFlags(t *testing.T) { "--tlscert=\"/foo/cert\"", "--tlskey=\"/foo/key\"", }) - assert.NoError(t, err) - assert.Equal(t, "/foo/cafile", opts.TLSOptions.CAFile) - assert.Equal(t, "/foo/cert", opts.TLSOptions.CertFile) - assert.Equal(t, opts.TLSOptions.KeyFile, "/foo/key") + assert.Check(t, err) + assert.Check(t, is.Equal("/foo/cafile", opts.TLSOptions.CAFile)) + assert.Check(t, is.Equal("/foo/cert", opts.TLSOptions.CertFile)) + assert.Check(t, is.Equal(opts.TLSOptions.KeyFile, "/foo/key")) } func defaultPath(filename string) string { @@ -36,8 +37,8 @@ func TestCommonOptionsInstallFlagsWithDefaults(t *testing.T) { opts.InstallFlags(flags) err := flags.Parse([]string{}) - assert.NoError(t, err) - assert.Equal(t, defaultPath("ca.pem"), opts.TLSOptions.CAFile) - assert.Equal(t, defaultPath("cert.pem"), opts.TLSOptions.CertFile) - assert.Equal(t, defaultPath("key.pem"), opts.TLSOptions.KeyFile) + assert.Check(t, err) + assert.Check(t, is.Equal(defaultPath("ca.pem"), opts.TLSOptions.CAFile)) + assert.Check(t, is.Equal(defaultPath("cert.pem"), opts.TLSOptions.CertFile)) + assert.Check(t, is.Equal(defaultPath("key.pem"), opts.TLSOptions.KeyFile)) } diff --git a/container/container_unit_test.go b/container/container_unit_test.go index 863a47a1f2..bf45df942e 100644 --- a/container/container_unit_test.go +++ b/container/container_unit_test.go @@ -11,7 +11,7 @@ import ( swarmtypes "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/daemon/logger/jsonfilelog" "github.com/docker/docker/pkg/signal" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestContainerStopSignal(t *testing.T) { @@ -74,7 +74,7 @@ func TestContainerSecretReferenceDestTarget(t *testing.T) { func TestContainerLogPathSetForJSONFileLogger(t *testing.T) { containerRoot, err := ioutil.TempDir("", "TestContainerLogPathSetForJSONFileLogger") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(containerRoot) c := &Container{ @@ -89,17 +89,17 @@ func TestContainerLogPathSetForJSONFileLogger(t *testing.T) { } logger, err := c.StartLogger() - require.NoError(t, err) + assert.NilError(t, err) defer logger.Close() expectedLogPath, err := filepath.Abs(filepath.Join(containerRoot, fmt.Sprintf("%s-json.log", c.ID))) - require.NoError(t, err) - require.Equal(t, c.LogPath, expectedLogPath) + assert.NilError(t, err) + assert.Equal(t, c.LogPath, expectedLogPath) } func TestContainerLogPathSetForRingLogger(t *testing.T) { containerRoot, err := ioutil.TempDir("", "TestContainerLogPathSetForRingLogger") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(containerRoot) c := &Container{ @@ -117,10 +117,10 @@ func TestContainerLogPathSetForRingLogger(t *testing.T) { } logger, err := c.StartLogger() - require.NoError(t, err) + assert.NilError(t, err) defer logger.Close() expectedLogPath, err := filepath.Abs(filepath.Join(containerRoot, fmt.Sprintf("%s-json.log", c.ID))) - require.NoError(t, err) - require.Equal(t, c.LogPath, expectedLogPath) + assert.NilError(t, err) + assert.Equal(t, c.LogPath, expectedLogPath) } diff --git a/container/view_test.go b/container/view_test.go index 26803b04e6..a872dffea6 100644 --- a/container/view_test.go +++ b/container/view_test.go @@ -8,8 +8,9 @@ import ( "github.com/docker/docker/api/types" containertypes "github.com/docker/docker/api/types/container" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pborman/uuid" - "github.com/stretchr/testify/assert" ) var root string @@ -109,56 +110,56 @@ func TestNames(t *testing.T) { if err != nil { t.Fatal(err) } - assert.NoError(t, db.ReserveName("name1", "containerid1")) - assert.NoError(t, db.ReserveName("name1", "containerid1")) // idempotent - assert.NoError(t, db.ReserveName("name2", "containerid2")) - assert.EqualError(t, db.ReserveName("name2", "containerid3"), ErrNameReserved.Error()) + assert.Check(t, db.ReserveName("name1", "containerid1")) + assert.Check(t, db.ReserveName("name1", "containerid1")) // idempotent + assert.Check(t, db.ReserveName("name2", "containerid2")) + assert.Check(t, is.Error(db.ReserveName("name2", "containerid3"), ErrNameReserved.Error())) // Releasing a name allows the name to point to something else later. - assert.NoError(t, db.ReleaseName("name2")) - assert.NoError(t, db.ReserveName("name2", "containerid3")) + assert.Check(t, db.ReleaseName("name2")) + assert.Check(t, db.ReserveName("name2", "containerid3")) view := db.Snapshot() id, err := view.GetID("name1") - assert.NoError(t, err) - assert.Equal(t, "containerid1", id) + assert.Check(t, err) + assert.Check(t, is.Equal("containerid1", id)) id, err = view.GetID("name2") - assert.NoError(t, err) - assert.Equal(t, "containerid3", id) + assert.Check(t, err) + assert.Check(t, is.Equal("containerid3", id)) _, err = view.GetID("notreserved") - assert.EqualError(t, err, ErrNameNotReserved.Error()) + assert.Check(t, is.Error(err, ErrNameNotReserved.Error())) // Releasing and re-reserving a name doesn't affect the snapshot. - assert.NoError(t, db.ReleaseName("name2")) - assert.NoError(t, db.ReserveName("name2", "containerid4")) + assert.Check(t, db.ReleaseName("name2")) + assert.Check(t, db.ReserveName("name2", "containerid4")) id, err = view.GetID("name1") - assert.NoError(t, err) - assert.Equal(t, "containerid1", id) + assert.Check(t, err) + assert.Check(t, is.Equal("containerid1", id)) id, err = view.GetID("name2") - assert.NoError(t, err) - assert.Equal(t, "containerid3", id) + assert.Check(t, err) + assert.Check(t, is.Equal("containerid3", id)) // GetAllNames - assert.Equal(t, map[string][]string{"containerid1": {"name1"}, "containerid3": {"name2"}}, view.GetAllNames()) + assert.Check(t, is.DeepEqual(map[string][]string{"containerid1": {"name1"}, "containerid3": {"name2"}}, view.GetAllNames())) - assert.NoError(t, db.ReserveName("name3", "containerid1")) - assert.NoError(t, db.ReserveName("name4", "containerid1")) + assert.Check(t, db.ReserveName("name3", "containerid1")) + assert.Check(t, db.ReserveName("name4", "containerid1")) view = db.Snapshot() - assert.Equal(t, map[string][]string{"containerid1": {"name1", "name3", "name4"}, "containerid4": {"name2"}}, view.GetAllNames()) + assert.Check(t, is.DeepEqual(map[string][]string{"containerid1": {"name1", "name3", "name4"}, "containerid4": {"name2"}}, view.GetAllNames())) // Release containerid1's names with Delete even though no container exists - assert.NoError(t, db.Delete(&Container{ID: "containerid1"})) + assert.Check(t, db.Delete(&Container{ID: "containerid1"})) // Reusing one of those names should work - assert.NoError(t, db.ReserveName("name1", "containerid4")) + assert.Check(t, db.ReserveName("name1", "containerid4")) view = db.Snapshot() - assert.Equal(t, map[string][]string{"containerid4": {"name1", "name2"}}, view.GetAllNames()) + assert.Check(t, is.DeepEqual(map[string][]string{"containerid4": {"name1", "name2"}}, view.GetAllNames())) } // Test case for GitHub issue 35920 diff --git a/daemon/cluster/convert/service_test.go b/daemon/cluster/convert/service_test.go index 347aa028be..0794af99a6 100644 --- a/daemon/cluster/convert/service_test.go +++ b/daemon/cluster/convert/service_test.go @@ -8,7 +8,7 @@ import ( "github.com/docker/docker/api/types/swarm/runtime" swarmapi "github.com/docker/swarmkit/api" google_protobuf3 "github.com/gogo/protobuf/types" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestServiceConvertFromGRPCRuntimeContainer(t *testing.T) { @@ -178,12 +178,12 @@ func TestServiceConvertToGRPCIsolation(t *testing.T) { }, } res, err := ServiceSpecToGRPC(s) - require.NoError(t, err) + assert.NilError(t, err) v, ok := res.Task.Runtime.(*swarmapi.TaskSpec_Container) if !ok { t.Fatal("expected type swarmapi.TaskSpec_Container") } - require.Equal(t, c.to, v.Container.Isolation) + assert.Equal(t, c.to, v.Container.Isolation) }) } } @@ -228,7 +228,7 @@ func TestServiceConvertFromGRPCIsolation(t *testing.T) { t.Fatal(err) } - require.Equal(t, c.to, svc.Spec.TaskTemplate.ContainerSpec.Isolation) + assert.Equal(t, c.to, svc.Spec.TaskTemplate.ContainerSpec.Isolation) }) } } diff --git a/daemon/cluster/executor/container/container_test.go b/daemon/cluster/executor/container/container_test.go index 456cd403b1..1e94171974 100644 --- a/daemon/cluster/executor/container/container_test.go +++ b/daemon/cluster/executor/container/container_test.go @@ -5,7 +5,7 @@ import ( container "github.com/docker/docker/api/types/container" swarmapi "github.com/docker/swarmkit/api" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestIsolationConversion(t *testing.T) { @@ -31,7 +31,7 @@ func TestIsolationConversion(t *testing.T) { }, } config := containerConfig{task: &task} - require.Equal(t, c.to, config.hostConfig().Isolation) + assert.Equal(t, c.to, config.hostConfig().Isolation) }) } } diff --git a/daemon/config/config_test.go b/daemon/config/config_test.go index 53db2922cb..2fe2b3805c 100644 --- a/daemon/config/config_test.go +++ b/daemon/config/config_test.go @@ -9,9 +9,10 @@ import ( "github.com/docker/docker/daemon/discovery" "github.com/docker/docker/internal/testutil" "github.com/docker/docker/opts" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" ) func TestDaemonConfigurationNotFound(t *testing.T) { @@ -59,7 +60,7 @@ func TestFindConfigurationConflicts(t *testing.T) { flags := pflag.NewFlagSet("test", pflag.ContinueOnError) flags.String("authorization-plugins", "", "") - assert.NoError(t, flags.Set("authorization-plugins", "asdf")) + assert.Check(t, flags.Set("authorization-plugins", "asdf")) testutil.ErrorContains(t, findConfigurationConflicts(config, flags), @@ -72,8 +73,8 @@ func TestFindConfigurationConflictsWithNamedOptions(t *testing.T) { var hosts []string flags.VarP(opts.NewNamedListOptsRef("hosts", &hosts, opts.ValidateHost), "host", "H", "Daemon socket(s) to connect to") - assert.NoError(t, flags.Set("host", "tcp://127.0.0.1:4444")) - assert.NoError(t, flags.Set("host", "unix:///var/run/docker.sock")) + assert.Check(t, flags.Set("host", "tcp://127.0.0.1:4444")) + assert.Check(t, flags.Set("host", "unix:///var/run/docker.sock")) testutil.ErrorContains(t, findConfigurationConflicts(config, flags), "hosts") } @@ -424,7 +425,7 @@ func TestReloadSetConfigFileNotExist(t *testing.T) { flags.Set("config-file", configFile) err := Reload(configFile, flags, func(c *Config) {}) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) testutil.ErrorContains(t, err, "unable to configure the Docker daemon with file") } @@ -438,8 +439,8 @@ func TestReloadDefaultConfigNotExist(t *testing.T) { err := Reload(configFile, flags, func(c *Config) { reloaded = true }) - assert.Nil(t, err) - assert.True(t, reloaded) + assert.Check(t, err) + assert.Check(t, reloaded) } // TestReloadBadDefaultConfig tests that when `--config-file` is not set @@ -457,7 +458,7 @@ func TestReloadBadDefaultConfig(t *testing.T) { flags := pflag.NewFlagSet("test", pflag.ContinueOnError) flags.String("config-file", configFile, "") err = Reload(configFile, flags, func(c *Config) {}) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) testutil.ErrorContains(t, err, "unable to configure the Docker daemon with file") } @@ -484,5 +485,5 @@ func TestReloadWithDuplicateLabels(t *testing.T) { flags.String("config-file", configFile, "") flags.StringSlice("labels", lbls, "") err := Reload(configFile, flags, func(c *Config) {}) - assert.NoError(t, err) + assert.Check(t, err) } diff --git a/daemon/config/config_unix_test.go b/daemon/config/config_unix_test.go index b4efa95e0e..53eb428264 100644 --- a/daemon/config/config_unix_test.go +++ b/daemon/config/config_unix_test.go @@ -7,10 +7,10 @@ import ( "github.com/docker/docker/opts" units "github.com/docker/go-units" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestGetConflictFreeConfiguration(t *testing.T) { @@ -39,9 +39,9 @@ func TestGetConflictFreeConfiguration(t *testing.T) { flags.Var(opts.NewNamedMapOpts("log-opts", nil, nil), "log-opt", "") cc, err := getConflictFreeConfiguration(file.Path(), flags) - require.NoError(t, err) + assert.NilError(t, err) - assert.True(t, cc.Debug) + assert.Check(t, cc.Debug) expectedUlimits := map[string]*units.Ulimit{ "nofile": { @@ -51,7 +51,7 @@ func TestGetConflictFreeConfiguration(t *testing.T) { }, } - assert.Equal(t, expectedUlimits, cc.Ulimits) + assert.Check(t, is.DeepEqual(expectedUlimits, cc.Ulimits)) } func TestDaemonConfigurationMerge(t *testing.T) { @@ -91,17 +91,17 @@ func TestDaemonConfigurationMerge(t *testing.T) { flags.Var(opts.NewNamedMapOpts("log-opts", nil, nil), "log-opt", "") cc, err := MergeDaemonConfigurations(c, flags, file.Path()) - require.NoError(t, err) + assert.NilError(t, err) - assert.True(t, cc.Debug) - assert.True(t, cc.AutoRestart) + assert.Check(t, cc.Debug) + assert.Check(t, cc.AutoRestart) expectedLogConfig := LogConfig{ Type: "syslog", Config: map[string]string{"tag": "test_tag"}, } - assert.Equal(t, expectedLogConfig, cc.LogConfig) + assert.Check(t, is.DeepEqual(expectedLogConfig, cc.LogConfig)) expectedUlimits := map[string]*units.Ulimit{ "nofile": { @@ -111,7 +111,7 @@ func TestDaemonConfigurationMerge(t *testing.T) { }, } - assert.Equal(t, expectedUlimits, cc.Ulimits) + assert.Check(t, is.DeepEqual(expectedUlimits, cc.Ulimits)) } func TestDaemonConfigurationMergeShmSize(t *testing.T) { @@ -127,8 +127,8 @@ func TestDaemonConfigurationMergeShmSize(t *testing.T) { flags.Var(&shmSize, "default-shm-size", "") cc, err := MergeDaemonConfigurations(c, flags, file.Path()) - require.NoError(t, err) + assert.NilError(t, err) expectedValue := 1 * 1024 * 1024 * 1024 - assert.Equal(t, int64(expectedValue), cc.ShmSize.Value()) + assert.Check(t, is.Equal(int64(expectedValue), cc.ShmSize.Value())) } diff --git a/daemon/config/config_windows_test.go b/daemon/config/config_windows_test.go index 5382bb3b77..fff98014f9 100644 --- a/daemon/config/config_windows_test.go +++ b/daemon/config/config_windows_test.go @@ -7,9 +7,9 @@ import ( "testing" "github.com/docker/docker/opts" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/spf13/pflag" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestDaemonConfigurationMerge(t *testing.T) { @@ -46,15 +46,15 @@ func TestDaemonConfigurationMerge(t *testing.T) { flags.Var(opts.NewNamedMapOpts("log-opts", nil, nil), "log-opt", "") cc, err := MergeDaemonConfigurations(c, flags, configFile) - require.NoError(t, err) + assert.NilError(t, err) - assert.True(t, cc.Debug) - assert.True(t, cc.AutoRestart) + assert.Check(t, cc.Debug) + assert.Check(t, cc.AutoRestart) expectedLogConfig := LogConfig{ Type: "syslog", Config: map[string]string{"tag": "test_tag"}, } - assert.Equal(t, expectedLogConfig, cc.LogConfig) + assert.Check(t, is.DeepEqual(expectedLogConfig, cc.LogConfig)) } diff --git a/daemon/container_unix_test.go b/daemon/container_unix_test.go index e102be6cdc..12075f8b8d 100644 --- a/daemon/container_unix_test.go +++ b/daemon/container_unix_test.go @@ -9,7 +9,7 @@ import ( containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/daemon/config" "github.com/docker/go-connections/nat" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // TestContainerWarningHostAndPublishPorts that a warning is returned when setting network mode to host and specifying published ports. @@ -38,7 +38,7 @@ func TestContainerWarningHostAndPublishPorts(t *testing.T) { } d := &Daemon{configStore: cs} wrns, err := d.verifyContainerSettings("", hostConfig, &containertypes.Config{}, false) - require.NoError(t, err) - require.Equal(t, tc.warnings, wrns) + assert.NilError(t, err) + assert.DeepEqual(t, tc.warnings, wrns) } } diff --git a/daemon/create_test.go b/daemon/create_test.go index 3e355f6473..7ef49d7623 100644 --- a/daemon/create_test.go +++ b/daemon/create_test.go @@ -5,7 +5,7 @@ import ( "github.com/docker/docker/api/types/network" "github.com/docker/docker/errdefs" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" ) // Test case for 35752 @@ -17,5 +17,5 @@ func TestVerifyNetworkingConfig(t *testing.T) { EndpointsConfig: endpoints, } err := verifyNetworkingConfig(nwConfig) - assert.True(t, errdefs.IsInvalidParameter(err)) + assert.Check(t, errdefs.IsInvalidParameter(err)) } diff --git a/daemon/daemon_linux_test.go b/daemon/daemon_linux_test.go index ad651e3e1c..195afb1e0f 100644 --- a/daemon/daemon_linux_test.go +++ b/daemon/daemon_linux_test.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/oci" "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/mount" - - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) const mountsFixture = `142 78 0:38 / / rw,relatime - aufs none rw,si=573b861da0b3a05b,dio @@ -138,7 +138,7 @@ func TestTmpfsDevShmSizeOverride(t *testing.T) { // convert ms to spec spec := oci.DefaultSpec() err := setMounts(&d, &spec, c, ms) - assert.NoError(t, err) + assert.Check(t, err) // Check the resulting spec for the correct size found := false @@ -149,7 +149,7 @@ func TestTmpfsDevShmSizeOverride(t *testing.T) { continue } t.Logf("%+v\n", m.Options) - assert.Equal(t, "size="+size, o) + assert.Check(t, is.Equal("size="+size, o)) found = true } } @@ -163,7 +163,7 @@ func TestValidateContainerIsolationLinux(t *testing.T) { d := Daemon{} _, err := d.verifyContainerSettings("linux", &containertypes.HostConfig{Isolation: containertypes.IsolationHyperV}, nil, false) - assert.EqualError(t, err, "invalid isolation 'hyperv' on linux") + assert.Check(t, is.Error(err, "invalid isolation 'hyperv' on linux")) } func TestShouldUnmountRoot(t *testing.T) { @@ -222,7 +222,7 @@ func TestShouldUnmountRoot(t *testing.T) { if test.info != nil { test.info.Optional = options.Optional } - assert.Equal(t, expect, shouldUnmountRoot(test.root, test.info)) + assert.Check(t, is.Equal(expect, shouldUnmountRoot(test.root, test.info))) }) } }) diff --git a/daemon/daemon_test.go b/daemon/daemon_test.go index 5d40e11143..2fb4ff902a 100644 --- a/daemon/daemon_test.go +++ b/daemon/daemon_test.go @@ -19,8 +19,9 @@ import ( "github.com/docker/docker/volume/store" "github.com/docker/go-connections/nat" "github.com/docker/libnetwork" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" ) // @@ -312,7 +313,7 @@ func TestValidateContainerIsolation(t *testing.T) { d := Daemon{} _, err := d.verifyContainerSettings(runtime.GOOS, &containertypes.HostConfig{Isolation: containertypes.Isolation("invalid")}, nil, false) - assert.EqualError(t, err, "invalid isolation 'invalid' on "+runtime.GOOS) + assert.Check(t, is.Error(err, "invalid isolation 'invalid' on "+runtime.GOOS)) } func TestFindNetworkErrorType(t *testing.T) { @@ -320,6 +321,6 @@ func TestFindNetworkErrorType(t *testing.T) { _, err := d.FindNetwork("fakeNet") _, ok := errors.Cause(err).(libnetwork.ErrNoSuchNetwork) if !errdefs.IsNotFound(err) || !ok { - assert.Fail(t, "The FindNetwork method MUST always return an error that implements the NotFound interface and is ErrNoSuchNetwork") + t.Error("The FindNetwork method MUST always return an error that implements the NotFound interface and is ErrNoSuchNetwork") } } diff --git a/daemon/daemon_unix_test.go b/daemon/daemon_unix_test.go index cd88b38335..84281c0b8c 100644 --- a/daemon/daemon_unix_test.go +++ b/daemon/daemon_unix_test.go @@ -17,7 +17,7 @@ import ( "github.com/docker/docker/volume/drivers" "github.com/docker/docker/volume/local" "github.com/docker/docker/volume/store" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) type fakeContainerGetter struct { @@ -290,12 +290,12 @@ func TestMigratePre17Volumes(t *testing.T) { containerRoot := filepath.Join(rootDir, "containers") cid := "1234" err = os.MkdirAll(filepath.Join(containerRoot, cid), 0755) - require.NoError(t, err) + assert.NilError(t, err) vid := "5678" vfsPath := filepath.Join(rootDir, "vfs", "dir", vid) err = os.MkdirAll(vfsPath, 0755) - require.NoError(t, err) + assert.NilError(t, err) config := []byte(` { diff --git a/daemon/delete_test.go b/daemon/delete_test.go index 48a8afec48..8bfa5d8170 100644 --- a/daemon/delete_test.go +++ b/daemon/delete_test.go @@ -10,12 +10,12 @@ import ( containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/container" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func newDaemonWithTmpRoot(t *testing.T) (*Daemon, func()) { tmp, err := ioutil.TempDir("", "docker-daemon-unix-test-") - require.NoError(t, err) + assert.NilError(t, err) d := &Daemon{ repository: tmp, root: tmp, diff --git a/daemon/discovery/discovery_test.go b/daemon/discovery/discovery_test.go index 4560af2878..d00e02e10b 100644 --- a/daemon/discovery/discovery_test.go +++ b/daemon/discovery/discovery_test.go @@ -5,8 +5,8 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestDiscoveryOptsErrors(t *testing.T) { @@ -42,26 +42,26 @@ func TestDiscoveryOptsErrors(t *testing.T) { for _, testcase := range testcases { _, _, err := discoveryOpts(testcase.opts) - assert.Error(t, err, testcase.doc) + assert.Check(t, is.ErrorContains(err, ""), testcase.doc) } } func TestDiscoveryOpts(t *testing.T) { clusterOpts := map[string]string{"discovery.heartbeat": "10", "discovery.ttl": "20"} heartbeat, ttl, err := discoveryOpts(clusterOpts) - require.NoError(t, err) - assert.Equal(t, 10*time.Second, heartbeat) - assert.Equal(t, 20*time.Second, ttl) + assert.NilError(t, err) + assert.Check(t, is.Equal(10*time.Second, heartbeat)) + assert.Check(t, is.Equal(20*time.Second, ttl)) clusterOpts = map[string]string{"discovery.heartbeat": "10"} heartbeat, ttl, err = discoveryOpts(clusterOpts) - require.NoError(t, err) - assert.Equal(t, 10*time.Second, heartbeat) - assert.Equal(t, 10*defaultDiscoveryTTLFactor*time.Second, ttl) + assert.NilError(t, err) + assert.Check(t, is.Equal(10*time.Second, heartbeat)) + assert.Check(t, is.Equal(10*defaultDiscoveryTTLFactor*time.Second, ttl)) clusterOpts = map[string]string{"discovery.ttl": "30"} heartbeat, ttl, err = discoveryOpts(clusterOpts) - require.NoError(t, err) + assert.NilError(t, err) if ttl != 30*time.Second { t.Fatalf("TTL - Expected : %v, Actual : %v", 30*time.Second, ttl) diff --git a/daemon/graphdriver/aufs/aufs_test.go b/daemon/graphdriver/aufs/aufs_test.go index d0641abe35..2338ad320d 100644 --- a/daemon/graphdriver/aufs/aufs_test.go +++ b/daemon/graphdriver/aufs/aufs_test.go @@ -17,8 +17,8 @@ import ( "github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/reexec" "github.com/docker/docker/pkg/stringid" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) var ( @@ -189,7 +189,7 @@ func TestCleanupWithNoDirs(t *testing.T) { defer os.RemoveAll(tmp) err := d.Cleanup() - assert.NoError(t, err) + assert.Check(t, err) } func TestCleanupWithDir(t *testing.T) { @@ -210,11 +210,11 @@ func TestMountedFalseResponse(t *testing.T) { defer os.RemoveAll(tmp) err := d.Create("1", "", nil) - require.NoError(t, err) + assert.NilError(t, err) response, err := d.mounted(d.getDiffPath("1")) - require.NoError(t, err) - assert.False(t, response) + assert.NilError(t, err) + assert.Check(t, !response) } func TestMountedTrueResponse(t *testing.T) { @@ -223,16 +223,16 @@ func TestMountedTrueResponse(t *testing.T) { defer d.Cleanup() err := d.Create("1", "", nil) - require.NoError(t, err) + assert.NilError(t, err) err = d.Create("2", "1", nil) - require.NoError(t, err) + assert.NilError(t, err) _, err = d.Get("2", "") - require.NoError(t, err) + assert.NilError(t, err) response, err := d.mounted(d.pathCache["2"]) - require.NoError(t, err) - assert.True(t, response) + assert.NilError(t, err) + assert.Check(t, response) } func TestMountWithParent(t *testing.T) { @@ -567,7 +567,7 @@ func TestStatus(t *testing.T) { } status := d.Status() - assert.Len(t, status, 4) + assert.Check(t, is.Len(status, 4)) rootDir := status[0] dirs := status[2] @@ -670,18 +670,18 @@ func testMountMoreThan42Layers(t *testing.T, mountPath string) { current = hash(current) err := d.CreateReadWrite(current, parent, nil) - require.NoError(t, err, "current layer %d", i) + assert.NilError(t, err, "current layer %d", i) point, err := driverGet(d, current, "") - require.NoError(t, err, "current layer %d", i) + assert.NilError(t, err, "current layer %d", i) f, err := os.Create(path.Join(point, current)) - require.NoError(t, err, "current layer %d", i) + assert.NilError(t, err, "current layer %d", i) f.Close() if i%10 == 0 { err := os.Remove(path.Join(point, parent)) - require.NoError(t, err, "current layer %d", i) + assert.NilError(t, err, "current layer %d", i) expected-- } last = current @@ -689,10 +689,10 @@ func testMountMoreThan42Layers(t *testing.T, mountPath string) { // Perform the actual mount for the top most image point, err := driverGet(d, last, "") - require.NoError(t, err) + assert.NilError(t, err) files, err := ioutil.ReadDir(point) - require.NoError(t, err) - assert.Len(t, files, expected) + assert.NilError(t, err) + assert.Check(t, is.Len(files, expected)) } func TestMountMoreThan42Layers(t *testing.T) { diff --git a/daemon/graphdriver/copy/copy_test.go b/daemon/graphdriver/copy/copy_test.go index 6d4387c94e..a09bb2637e 100644 --- a/daemon/graphdriver/copy/copy_test.go +++ b/daemon/graphdriver/copy/copy_test.go @@ -14,8 +14,8 @@ import ( "github.com/docker/docker/pkg/parsers/kernel" "github.com/docker/docker/pkg/system" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/sys/unix" ) @@ -24,16 +24,16 @@ func TestIsCopyFileRangeSyscallAvailable(t *testing.T) { // 1. That copyFileRangeEnabled is being set to true when copy_file_range syscall is available // 2. That isCopyFileRangeSyscallAvailable() works on "new" kernels v, err := kernel.GetKernelVersion() - require.NoError(t, err) + assert.NilError(t, err) copyWithFileRange := true copyWithFileClone := false doCopyTest(t, ©WithFileRange, ©WithFileClone) if kernel.CompareKernelVersion(*v, kernel.VersionInfo{Kernel: 4, Major: 5, Minor: 0}) < 0 { - assert.False(t, copyWithFileRange) + assert.Check(t, !copyWithFileRange) } else { - assert.True(t, copyWithFileRange) + assert.Check(t, copyWithFileRange) } } @@ -52,47 +52,47 @@ func TestCopyWithoutRange(t *testing.T) { func TestCopyDir(t *testing.T) { srcDir, err := ioutil.TempDir("", "srcDir") - require.NoError(t, err) + assert.NilError(t, err) populateSrcDir(t, srcDir, 3) dstDir, err := ioutil.TempDir("", "testdst") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dstDir) - assert.NoError(t, DirCopy(srcDir, dstDir, Content, false)) - require.NoError(t, filepath.Walk(srcDir, func(srcPath string, f os.FileInfo, err error) error { + assert.Check(t, DirCopy(srcDir, dstDir, Content, false)) + assert.NilError(t, filepath.Walk(srcDir, func(srcPath string, f os.FileInfo, err error) error { if err != nil { return err } // Rebase path relPath, err := filepath.Rel(srcDir, srcPath) - require.NoError(t, err) + assert.NilError(t, err) if relPath == "." { return nil } dstPath := filepath.Join(dstDir, relPath) - require.NoError(t, err) + assert.NilError(t, err) // If we add non-regular dirs and files to the test // then we need to add more checks here. dstFileInfo, err := os.Lstat(dstPath) - require.NoError(t, err) + assert.NilError(t, err) srcFileSys := f.Sys().(*syscall.Stat_t) dstFileSys := dstFileInfo.Sys().(*syscall.Stat_t) t.Log(relPath) if srcFileSys.Dev == dstFileSys.Dev { - assert.NotEqual(t, srcFileSys.Ino, dstFileSys.Ino) + assert.Check(t, srcFileSys.Ino != dstFileSys.Ino) } // Todo: check size, and ctim is not equal /// on filesystems that have granular ctimes - assert.Equal(t, srcFileSys.Mode, dstFileSys.Mode) - assert.Equal(t, srcFileSys.Uid, dstFileSys.Uid) - assert.Equal(t, srcFileSys.Gid, dstFileSys.Gid) - assert.Equal(t, srcFileSys.Mtim, dstFileSys.Mtim) + assert.Check(t, is.DeepEqual(srcFileSys.Mode, dstFileSys.Mode)) + assert.Check(t, is.DeepEqual(srcFileSys.Uid, dstFileSys.Uid)) + assert.Check(t, is.DeepEqual(srcFileSys.Gid, dstFileSys.Gid)) + assert.Check(t, is.DeepEqual(srcFileSys.Mtim, dstFileSys.Mtim)) return nil })) @@ -115,22 +115,22 @@ func populateSrcDir(t *testing.T, srcDir string, remainingDepth int) { for i := 0; i < 10; i++ { dirName := filepath.Join(srcDir, fmt.Sprintf("srcdir-%d", i)) // Owner all bits set - require.NoError(t, os.Mkdir(dirName, randomMode(0700))) + assert.NilError(t, os.Mkdir(dirName, randomMode(0700))) populateSrcDir(t, dirName, remainingDepth-1) - require.NoError(t, system.Chtimes(dirName, aTime, mTime)) + assert.NilError(t, system.Chtimes(dirName, aTime, mTime)) } for i := 0; i < 10; i++ { fileName := filepath.Join(srcDir, fmt.Sprintf("srcfile-%d", i)) // Owner read bit set - require.NoError(t, ioutil.WriteFile(fileName, []byte{}, randomMode(0400))) - require.NoError(t, system.Chtimes(fileName, aTime, mTime)) + assert.NilError(t, ioutil.WriteFile(fileName, []byte{}, randomMode(0400))) + assert.NilError(t, system.Chtimes(fileName, aTime, mTime)) } } func doCopyTest(t *testing.T, copyWithFileRange, copyWithFileClone *bool) { dir, err := ioutil.TempDir("", "docker-copy-check") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dir) srcFilename := filepath.Join(dir, "srcFilename") dstFilename := filepath.Join(dir, "dstilename") @@ -138,42 +138,42 @@ func doCopyTest(t *testing.T, copyWithFileRange, copyWithFileClone *bool) { r := rand.New(rand.NewSource(0)) buf := make([]byte, 1024) _, err = r.Read(buf) - require.NoError(t, err) - require.NoError(t, ioutil.WriteFile(srcFilename, buf, 0777)) + assert.NilError(t, err) + assert.NilError(t, ioutil.WriteFile(srcFilename, buf, 0777)) fileinfo, err := os.Stat(srcFilename) - require.NoError(t, err) + assert.NilError(t, err) - require.NoError(t, copyRegular(srcFilename, dstFilename, fileinfo, copyWithFileRange, copyWithFileClone)) + assert.NilError(t, copyRegular(srcFilename, dstFilename, fileinfo, copyWithFileRange, copyWithFileClone)) readBuf, err := ioutil.ReadFile(dstFilename) - require.NoError(t, err) - assert.Equal(t, buf, readBuf) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(buf, readBuf)) } func TestCopyHardlink(t *testing.T) { var srcFile1FileInfo, srcFile2FileInfo, dstFile1FileInfo, dstFile2FileInfo unix.Stat_t srcDir, err := ioutil.TempDir("", "srcDir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(srcDir) dstDir, err := ioutil.TempDir("", "dstDir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dstDir) srcFile1 := filepath.Join(srcDir, "file1") srcFile2 := filepath.Join(srcDir, "file2") dstFile1 := filepath.Join(dstDir, "file1") dstFile2 := filepath.Join(dstDir, "file2") - require.NoError(t, ioutil.WriteFile(srcFile1, []byte{}, 0777)) - require.NoError(t, os.Link(srcFile1, srcFile2)) + assert.NilError(t, ioutil.WriteFile(srcFile1, []byte{}, 0777)) + assert.NilError(t, os.Link(srcFile1, srcFile2)) - assert.NoError(t, DirCopy(srcDir, dstDir, Content, false)) + assert.Check(t, DirCopy(srcDir, dstDir, Content, false)) - require.NoError(t, unix.Stat(srcFile1, &srcFile1FileInfo)) - require.NoError(t, unix.Stat(srcFile2, &srcFile2FileInfo)) - require.Equal(t, srcFile1FileInfo.Ino, srcFile2FileInfo.Ino) + assert.NilError(t, unix.Stat(srcFile1, &srcFile1FileInfo)) + assert.NilError(t, unix.Stat(srcFile2, &srcFile2FileInfo)) + assert.Equal(t, srcFile1FileInfo.Ino, srcFile2FileInfo.Ino) - require.NoError(t, unix.Stat(dstFile1, &dstFile1FileInfo)) - require.NoError(t, unix.Stat(dstFile2, &dstFile2FileInfo)) - assert.Equal(t, dstFile1FileInfo.Ino, dstFile2FileInfo.Ino) + assert.NilError(t, unix.Stat(dstFile1, &dstFile1FileInfo)) + assert.NilError(t, unix.Stat(dstFile2, &dstFile2FileInfo)) + assert.Check(t, is.Equal(dstFile1FileInfo.Ino, dstFile2FileInfo.Ino)) } diff --git a/daemon/graphdriver/driver_test.go b/daemon/graphdriver/driver_test.go index 777bac7af9..4a29465f15 100644 --- a/daemon/graphdriver/driver_test.go +++ b/daemon/graphdriver/driver_test.go @@ -6,32 +6,31 @@ import ( "path/filepath" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestIsEmptyDir(t *testing.T) { tmp, err := ioutil.TempDir("", "test-is-empty-dir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmp) d := filepath.Join(tmp, "empty-dir") err = os.Mkdir(d, 0755) - require.NoError(t, err) + assert.NilError(t, err) empty := isEmptyDir(d) - assert.True(t, empty) + assert.Check(t, empty) d = filepath.Join(tmp, "dir-with-subdir") err = os.MkdirAll(filepath.Join(d, "subdir"), 0755) - require.NoError(t, err) + assert.NilError(t, err) empty = isEmptyDir(d) - assert.False(t, empty) + assert.Check(t, !empty) d = filepath.Join(tmp, "dir-with-empty-file") err = os.Mkdir(d, 0755) - require.NoError(t, err) + assert.NilError(t, err) _, err = ioutil.TempFile(d, "file") - require.NoError(t, err) + assert.NilError(t, err) empty = isEmptyDir(d) - assert.False(t, empty) + assert.Check(t, !empty) } diff --git a/daemon/graphdriver/graphtest/graphbench_unix.go b/daemon/graphdriver/graphtest/graphbench_unix.go index 2eb4184c0f..1b221dabef 100644 --- a/daemon/graphdriver/graphtest/graphbench_unix.go +++ b/daemon/graphdriver/graphtest/graphbench_unix.go @@ -9,7 +9,7 @@ import ( contdriver "github.com/containerd/continuity/driver" "github.com/docker/docker/pkg/stringid" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // DriverBenchExists benchmarks calls to exist @@ -251,7 +251,7 @@ func DriverBenchDeepLayerRead(b *testing.B, layerCount int, drivername string, d } b.StopTimer() - require.Equal(b, content, c) + assert.DeepEqual(b, content, c) b.StartTimer() } } diff --git a/daemon/graphdriver/graphtest/graphtest_unix.go b/daemon/graphdriver/graphtest/graphtest_unix.go index a7bdd8cdaa..5ac3979752 100644 --- a/daemon/graphdriver/graphtest/graphtest_unix.go +++ b/daemon/graphdriver/graphtest/graphtest_unix.go @@ -16,8 +16,8 @@ import ( "github.com/docker/docker/daemon/graphdriver/quota" "github.com/docker/docker/pkg/stringid" "github.com/docker/go-units" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/sys/unix" ) @@ -36,9 +36,9 @@ type Driver struct { func newDriver(t testing.TB, name string, options []string) *Driver { root, err := ioutil.TempDir("", "docker-graphtest-") - require.NoError(t, err) + assert.NilError(t, err) - require.NoError(t, os.MkdirAll(root, 0755)) + assert.NilError(t, os.MkdirAll(root, 0755)) d, err := graphdriver.GetDriver(name, nil, graphdriver.Options{DriverOptions: options, Root: root}) if err != nil { t.Logf("graphdriver: %v\n", err) @@ -85,10 +85,10 @@ func DriverTestCreateEmpty(t testing.TB, drivername string, driverOptions ...str defer PutDriver(t) err := driver.Create("empty", "", nil) - require.NoError(t, err) + assert.NilError(t, err) defer func() { - require.NoError(t, driver.Remove("empty")) + assert.NilError(t, driver.Remove("empty")) }() if !driver.Exists("empty") { @@ -96,14 +96,14 @@ func DriverTestCreateEmpty(t testing.TB, drivername string, driverOptions ...str } dir, err := driver.Get("empty", "") - require.NoError(t, err) + assert.NilError(t, err) verifyFile(t, dir.Path(), 0755|os.ModeDir, 0, 0) // Verify that the directory is empty fis, err := readDir(dir, dir.Path()) - require.NoError(t, err) - assert.Len(t, fis, 0) + assert.NilError(t, err) + assert.Check(t, is.Len(fis, 0)) driver.Put("empty") } @@ -115,7 +115,7 @@ func DriverTestCreateBase(t testing.TB, drivername string, driverOptions ...stri createBase(t, driver, "Base") defer func() { - require.NoError(t, driver.Remove("Base")) + assert.NilError(t, driver.Remove("Base")) }() verifyBase(t, driver, "Base") } @@ -127,13 +127,13 @@ func DriverTestCreateSnap(t testing.TB, drivername string, driverOptions ...stri createBase(t, driver, "Base") defer func() { - require.NoError(t, driver.Remove("Base")) + assert.NilError(t, driver.Remove("Base")) }() err := driver.Create("Snap", "Base", nil) - require.NoError(t, err) + assert.NilError(t, err) defer func() { - require.NoError(t, driver.Remove("Snap")) + assert.NilError(t, driver.Remove("Snap")) }() verifyBase(t, driver, "Snap") diff --git a/daemon/graphdriver/graphtest/testutil_unix.go b/daemon/graphdriver/graphtest/testutil_unix.go index 4659bf2a19..3103df150d 100644 --- a/daemon/graphdriver/graphtest/testutil_unix.go +++ b/daemon/graphdriver/graphtest/testutil_unix.go @@ -9,25 +9,25 @@ import ( contdriver "github.com/containerd/continuity/driver" "github.com/docker/docker/daemon/graphdriver" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/sys/unix" ) func verifyFile(t testing.TB, path string, mode os.FileMode, uid, gid uint32) { fi, err := os.Stat(path) - require.NoError(t, err) + assert.NilError(t, err) actual := fi.Mode() - assert.Equal(t, mode&os.ModeType, actual&os.ModeType, path) - assert.Equal(t, mode&os.ModePerm, actual&os.ModePerm, path) - assert.Equal(t, mode&os.ModeSticky, actual&os.ModeSticky, path) - assert.Equal(t, mode&os.ModeSetuid, actual&os.ModeSetuid, path) - assert.Equal(t, mode&os.ModeSetgid, actual&os.ModeSetgid, path) + assert.Check(t, is.Equal(mode&os.ModeType, actual&os.ModeType), path) + assert.Check(t, is.Equal(mode&os.ModePerm, actual&os.ModePerm), path) + assert.Check(t, is.Equal(mode&os.ModeSticky, actual&os.ModeSticky), path) + assert.Check(t, is.Equal(mode&os.ModeSetuid, actual&os.ModeSetuid), path) + assert.Check(t, is.Equal(mode&os.ModeSetgid, actual&os.ModeSetgid), path) if stat, ok := fi.Sys().(*syscall.Stat_t); ok { - assert.Equal(t, uid, stat.Uid, path) - assert.Equal(t, gid, stat.Gid, path) + assert.Check(t, is.Equal(uid, stat.Uid), path) + assert.Check(t, is.Equal(gid, stat.Gid), path) } } @@ -37,24 +37,24 @@ func createBase(t testing.TB, driver graphdriver.Driver, name string) { defer unix.Umask(oldmask) err := driver.CreateReadWrite(name, "", nil) - require.NoError(t, err) + assert.NilError(t, err) dirFS, err := driver.Get(name, "") - require.NoError(t, err) + assert.NilError(t, err) defer driver.Put(name) subdir := dirFS.Join(dirFS.Path(), "a subdir") - require.NoError(t, dirFS.Mkdir(subdir, 0705|os.ModeSticky)) - require.NoError(t, dirFS.Lchown(subdir, 1, 2)) + assert.NilError(t, dirFS.Mkdir(subdir, 0705|os.ModeSticky)) + assert.NilError(t, dirFS.Lchown(subdir, 1, 2)) file := dirFS.Join(dirFS.Path(), "a file") err = contdriver.WriteFile(dirFS, file, []byte("Some data"), 0222|os.ModeSetuid) - require.NoError(t, err) + assert.NilError(t, err) } func verifyBase(t testing.TB, driver graphdriver.Driver, name string) { dirFS, err := driver.Get(name, "") - require.NoError(t, err) + assert.NilError(t, err) defer driver.Put(name) subdir := dirFS.Join(dirFS.Path(), "a subdir") @@ -64,6 +64,6 @@ func verifyBase(t testing.TB, driver graphdriver.Driver, name string) { verifyFile(t, file, 0222|os.ModeSetuid, 0, 0) files, err := readDir(dirFS, dirFS.Path()) - require.NoError(t, err) - assert.Len(t, files, 2) + assert.NilError(t, err) + assert.Check(t, is.Len(files, 2)) } diff --git a/daemon/graphdriver/quota/projectquota_test.go b/daemon/graphdriver/quota/projectquota_test.go index 939044fdc3..b7debf79e2 100644 --- a/daemon/graphdriver/quota/projectquota_test.go +++ b/daemon/graphdriver/quota/projectquota_test.go @@ -10,9 +10,9 @@ import ( "path/filepath" "testing" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/sys/unix" ) @@ -80,14 +80,14 @@ func wrapMountTest(imageFileName string, enableQuota bool, testFunc func(t *test } } - require.NoError(t, err, "mount failed: %s", out) + assert.NilError(t, err, "mount failed: %s", out) defer func() { - require.NoError(t, unix.Unmount(mountPoint, 0)) + assert.NilError(t, unix.Unmount(mountPoint, 0)) }() backingFsDev, err := makeBackingFsDev(mountPoint) - require.NoError(t, err) + assert.NilError(t, err) testFunc(t, mountPoint, backingFsDev) } @@ -95,58 +95,58 @@ func wrapMountTest(imageFileName string, enableQuota bool, testFunc func(t *test func testBlockDevQuotaDisabled(t *testing.T, mountPoint, backingFsDev string) { hasSupport, err := hasQuotaSupport(backingFsDev) - require.NoError(t, err) - assert.False(t, hasSupport) + assert.NilError(t, err) + assert.Check(t, !hasSupport) } func testBlockDevQuotaEnabled(t *testing.T, mountPoint, backingFsDev string) { hasSupport, err := hasQuotaSupport(backingFsDev) - require.NoError(t, err) - assert.True(t, hasSupport) + assert.NilError(t, err) + assert.Check(t, hasSupport) } func wrapQuotaTest(testFunc func(t *testing.T, ctrl *Control, mountPoint, testDir, testSubDir string)) func(t *testing.T, mountPoint, backingFsDev string) { return func(t *testing.T, mountPoint, backingFsDev string) { testDir, err := ioutil.TempDir(mountPoint, "per-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(testDir) ctrl, err := NewControl(testDir) - require.NoError(t, err) + assert.NilError(t, err) testSubDir, err := ioutil.TempDir(testDir, "quota-test") - require.NoError(t, err) + assert.NilError(t, err) testFunc(t, ctrl, mountPoint, testDir, testSubDir) } } func testSmallerThanQuota(t *testing.T, ctrl *Control, homeDir, testDir, testSubDir string) { - require.NoError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) + assert.NilError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) smallerThanQuotaFile := filepath.Join(testSubDir, "smaller-than-quota") - require.NoError(t, ioutil.WriteFile(smallerThanQuotaFile, make([]byte, testQuotaSize/2), 0644)) - require.NoError(t, os.Remove(smallerThanQuotaFile)) + assert.NilError(t, ioutil.WriteFile(smallerThanQuotaFile, make([]byte, testQuotaSize/2), 0644)) + assert.NilError(t, os.Remove(smallerThanQuotaFile)) } func testBiggerThanQuota(t *testing.T, ctrl *Control, homeDir, testDir, testSubDir string) { // Make sure the quota is being enforced // TODO: When we implement this under EXT4, we need to shed CAP_SYS_RESOURCE, otherwise // we're able to violate quota without issue - require.NoError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) + assert.NilError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) biggerThanQuotaFile := filepath.Join(testSubDir, "bigger-than-quota") err := ioutil.WriteFile(biggerThanQuotaFile, make([]byte, testQuotaSize+1), 0644) - require.Error(t, err) + assert.Assert(t, is.ErrorContains(err, "")) if err == io.ErrShortWrite { - require.NoError(t, os.Remove(biggerThanQuotaFile)) + assert.NilError(t, os.Remove(biggerThanQuotaFile)) } } func testRetrieveQuota(t *testing.T, ctrl *Control, homeDir, testDir, testSubDir string) { // Validate that we can retrieve quota - require.NoError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) + assert.NilError(t, ctrl.SetQuota(testSubDir, Quota{testQuotaSize})) var q Quota - require.NoError(t, ctrl.GetQuota(testSubDir, &q)) - assert.EqualValues(t, testQuotaSize, q.Size) + assert.NilError(t, ctrl.GetQuota(testSubDir, &q)) + assert.Check(t, is.Equal(testQuotaSize, q.Size)) } diff --git a/daemon/info_unix_test.go b/daemon/info_unix_test.go index 92a336162a..7ff1009326 100644 --- a/daemon/info_unix_test.go +++ b/daemon/info_unix_test.go @@ -7,7 +7,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/dockerversion" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestParseInitVersion(t *testing.T) { @@ -43,10 +44,10 @@ func TestParseInitVersion(t *testing.T) { for _, test := range tests { ver, err := parseInitVersion(string(test.version)) if test.invalid { - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) } else { - assert.NoError(t, err) + assert.Check(t, err) } - assert.Equal(t, test.result, ver) + assert.Check(t, is.DeepEqual(test.result, ver)) } } diff --git a/daemon/inspect_test.go b/daemon/inspect_test.go index c10cc56796..d1ad5b0e0a 100644 --- a/daemon/inspect_test.go +++ b/daemon/inspect_test.go @@ -7,8 +7,8 @@ import ( "github.com/docker/docker/container" "github.com/docker/docker/daemon/config" "github.com/docker/docker/daemon/exec" - - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestGetInspectData(t *testing.T) { @@ -25,9 +25,9 @@ func TestGetInspectData(t *testing.T) { } _, err := d.getInspectData(c) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) c.Dead = true _, err = d.getInspectData(c) - assert.NoError(t, err) + assert.Check(t, err) } diff --git a/daemon/logger/adapter_test.go b/daemon/logger/adapter_test.go index 25abab5717..7c1db6f575 100644 --- a/daemon/logger/adapter_test.go +++ b/daemon/logger/adapter_test.go @@ -10,7 +10,8 @@ import ( "github.com/docker/docker/api/types/plugins/logdriver" protoio "github.com/gogo/protobuf/io" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) // mockLoggingPlugin implements the loggingPlugin interface for testing purposes @@ -88,7 +89,7 @@ func (l *mockLoggingPlugin) ReadLogs(info Info, config ReadConfig) (io.ReadClose func newMockPluginAdapter(t *testing.T) Logger { r, w := io.Pipe() f, err := ioutil.TempFile("", "mock-plugin-adapter") - assert.NoError(t, err) + assert.Check(t, err) enc := logdriver.NewLogEntryEncoder(w) a := &pluginAdapterWithRead{ @@ -116,11 +117,11 @@ func TestAdapterReadLogs(t *testing.T) { } for _, msg := range testMsg { m := msg.copy() - assert.NoError(t, l.Log(m)) + assert.Check(t, l.Log(m)) } lr, ok := l.(LogReader) - assert.NotNil(t, ok) + assert.Check(t, ok != nil) lw := lr.ReadLogs(ReadConfig{}) @@ -135,7 +136,7 @@ func TestAdapterReadLogs(t *testing.T) { select { case _, ok := <-lw.Msg: - assert.False(t, ok, "expected message channel to be closed") + assert.Check(t, !ok, "expected message channel to be closed") case <-time.After(10 * time.Second): t.Fatal("timeout waiting for message channel to close") @@ -153,11 +154,11 @@ func TestAdapterReadLogs(t *testing.T) { } x := Message{Line: []byte("Too infinity and beyond!"), Timestamp: time.Now()} - assert.NoError(t, l.Log(x.copy())) + assert.Check(t, l.Log(x.copy())) select { case msg, ok := <-lw.Msg: - assert.NotNil(t, ok, "message channel unexpectedly closed") + assert.Check(t, ok != nil, "message channel unexpectedly closed") testMessageEqual(t, &x, msg) case <-time.After(10 * time.Second): t.Fatal("timeout reading logs") @@ -166,15 +167,15 @@ func TestAdapterReadLogs(t *testing.T) { l.Close() select { case msg, ok := <-lw.Msg: - assert.False(t, ok, "expected message channel to be closed") - assert.Nil(t, msg) + assert.Check(t, !ok, "expected message channel to be closed") + assert.Check(t, is.Nil(msg)) case <-time.After(10 * time.Second): t.Fatal("timeout waiting for logger to close") } } func testMessageEqual(t *testing.T, a, b *Message) { - assert.Equal(t, a.Line, b.Line) - assert.Equal(t, a.Timestamp.UnixNano(), b.Timestamp.UnixNano()) - assert.Equal(t, a.Source, b.Source) + assert.Check(t, is.DeepEqual(a.Line, b.Line)) + assert.Check(t, is.DeepEqual(a.Timestamp.UnixNano(), b.Timestamp.UnixNano())) + assert.Check(t, is.Equal(a.Source, b.Source)) } diff --git a/daemon/logger/awslogs/cloudwatchlogs_test.go b/daemon/logger/awslogs/cloudwatchlogs_test.go index 99d0f907f8..4a37d98167 100644 --- a/daemon/logger/awslogs/cloudwatchlogs_test.go +++ b/daemon/logger/awslogs/cloudwatchlogs_test.go @@ -21,7 +21,8 @@ import ( "github.com/docker/docker/daemon/logger" "github.com/docker/docker/daemon/logger/loggerutils" "github.com/docker/docker/dockerversion" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) const ( @@ -544,17 +545,17 @@ func TestCollectBatchMultilinePattern(t *testing.T) { // Verify single multiline event argument := <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 1, len(argument.LogEvents), "Expected single multiline event") - assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(1, len(argument.LogEvents)), "Expected single multiline event") + assert.Check(t, is.Equal(logline+"\n"+logline+"\n", *argument.LogEvents[0].Message), "Received incorrect multiline message") stream.Close() // Verify single event argument = <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 1, len(argument.LogEvents), "Expected single multiline event") - assert.Equal(t, "xxxx "+logline+"\n", *argument.LogEvents[0].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(1, len(argument.LogEvents)), "Expected single multiline event") + assert.Check(t, is.Equal("xxxx "+logline+"\n", *argument.LogEvents[0].Message), "Received incorrect multiline message") } func BenchmarkCollectBatch(b *testing.B) { @@ -657,9 +658,9 @@ func TestCollectBatchMultilinePatternMaxEventAge(t *testing.T) { // Verify single multiline event is flushed after maximum event buffer age (batchPublishFrequency) argument := <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 1, len(argument.LogEvents), "Expected single multiline event") - assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(1, len(argument.LogEvents)), "Expected single multiline event") + assert.Check(t, is.Equal(logline+"\n"+logline+"\n", *argument.LogEvents[0].Message), "Received incorrect multiline message") // Log an event 1 second later stream.Log(&logger.Message{ @@ -672,9 +673,9 @@ func TestCollectBatchMultilinePatternMaxEventAge(t *testing.T) { // Verify the event buffer is truly flushed - we should only receive a single event argument = <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 1, len(argument.LogEvents), "Expected single multiline event") - assert.Equal(t, logline+"\n", *argument.LogEvents[0].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(1, len(argument.LogEvents)), "Expected single multiline event") + assert.Check(t, is.Equal(logline+"\n", *argument.LogEvents[0].Message), "Received incorrect multiline message") stream.Close() } @@ -719,9 +720,9 @@ func TestCollectBatchMultilinePatternNegativeEventAge(t *testing.T) { // Verify single multiline event is flushed with a negative event buffer age argument := <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 1, len(argument.LogEvents), "Expected single multiline event") - assert.Equal(t, logline+"\n"+logline+"\n", *argument.LogEvents[0].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(1, len(argument.LogEvents)), "Expected single multiline event") + assert.Check(t, is.Equal(logline+"\n"+logline+"\n", *argument.LogEvents[0].Message), "Received incorrect multiline message") stream.Close() } @@ -772,10 +773,10 @@ func TestCollectBatchMultilinePatternMaxEventSize(t *testing.T) { // We expect a maximum sized event with no new line characters and a // second short event with a new line character at the end argument := <-mockClient.putLogEventsArgument - assert.NotNil(t, argument, "Expected non-nil PutLogEventsInput") - assert.Equal(t, 2, len(argument.LogEvents), "Expected two events") - assert.Equal(t, longline, *argument.LogEvents[0].Message, "Received incorrect multiline message") - assert.Equal(t, shortline+"\n", *argument.LogEvents[1].Message, "Received incorrect multiline message") + assert.Check(t, argument != nil, "Expected non-nil PutLogEventsInput") + assert.Check(t, is.Equal(2, len(argument.LogEvents)), "Expected two events") + assert.Check(t, is.Equal(longline, *argument.LogEvents[0].Message), "Received incorrect multiline message") + assert.Check(t, is.Equal(shortline+"\n", *argument.LogEvents[1].Message), "Received incorrect multiline message") stream.Close() } @@ -1069,8 +1070,8 @@ func TestParseLogOptionsMultilinePattern(t *testing.T) { } multilinePattern, err := parseMultilineOptions(info) - assert.Nil(t, err, "Received unexpected error") - assert.True(t, multilinePattern.MatchString("xxxx"), "No multiline pattern match found") + assert.Check(t, err, "Received unexpected error") + assert.Check(t, multilinePattern.MatchString("xxxx"), "No multiline pattern match found") } func TestParseLogOptionsDatetimeFormat(t *testing.T) { @@ -1094,8 +1095,8 @@ func TestParseLogOptionsDatetimeFormat(t *testing.T) { }, } multilinePattern, err := parseMultilineOptions(info) - assert.Nil(t, err, "Received unexpected error") - assert.True(t, multilinePattern.MatchString(dt.match), "No multiline pattern match found") + assert.Check(t, err, "Received unexpected error") + assert.Check(t, multilinePattern.MatchString(dt.match), "No multiline pattern match found") }) } } @@ -1109,8 +1110,8 @@ func TestValidateLogOptionsDatetimeFormatAndMultilinePattern(t *testing.T) { conflictingLogOptionsError := "you cannot configure log opt 'awslogs-datetime-format' and 'awslogs-multiline-pattern' at the same time" err := ValidateLogOpt(cfg) - assert.NotNil(t, err, "Expected an error") - assert.Equal(t, err.Error(), conflictingLogOptionsError, "Received invalid error") + assert.Check(t, err != nil, "Expected an error") + assert.Check(t, is.Equal(err.Error(), conflictingLogOptionsError), "Received invalid error") } func TestCreateTagSuccess(t *testing.T) { @@ -1155,7 +1156,7 @@ func BenchmarkUnwrapEvents(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { res := unwrapEvents(events) - assert.Len(b, res, maximumLogEventsPerPut) + assert.Check(b, is.Len(res, maximumLogEventsPerPut)) } } @@ -1188,15 +1189,15 @@ func TestNewAWSLogsClientCredentialEndpointDetect(t *testing.T) { info.Config["awslogs-credentials-endpoint"] = "/creds" c, err := newAWSLogsClient(info) - assert.NoError(t, err) + assert.Check(t, err) client := c.(*cloudwatchlogs.CloudWatchLogs) creds, err := client.Config.Credentials.Get() - assert.NoError(t, err) + assert.Check(t, err) - assert.Equal(t, expectedAccessKeyID, creds.AccessKeyID) - assert.Equal(t, expectedSecretAccessKey, creds.SecretAccessKey) + assert.Check(t, is.Equal(expectedAccessKeyID, creds.AccessKeyID)) + assert.Check(t, is.Equal(expectedSecretAccessKey, creds.SecretAccessKey)) } func TestNewAWSLogsClientCredentialEnvironmentVariable(t *testing.T) { @@ -1218,15 +1219,15 @@ func TestNewAWSLogsClientCredentialEnvironmentVariable(t *testing.T) { } c, err := newAWSLogsClient(info) - assert.NoError(t, err) + assert.Check(t, err) client := c.(*cloudwatchlogs.CloudWatchLogs) creds, err := client.Config.Credentials.Get() - assert.NoError(t, err) + assert.Check(t, err) - assert.Equal(t, expectedAccessKeyID, creds.AccessKeyID) - assert.Equal(t, expectedSecretAccessKey, creds.SecretAccessKey) + assert.Check(t, is.Equal(expectedAccessKeyID, creds.AccessKeyID)) + assert.Check(t, is.Equal(expectedSecretAccessKey, creds.SecretAccessKey)) } @@ -1247,13 +1248,13 @@ func TestNewAWSLogsClientCredentialSharedFile(t *testing.T) { tmpfile, err := ioutil.TempFile("", "example") defer os.Remove(tmpfile.Name()) // clean up - assert.NoError(t, err) + assert.Check(t, err) _, err = tmpfile.Write(content) - assert.NoError(t, err) + assert.Check(t, err) err = tmpfile.Close() - assert.NoError(t, err) + assert.Check(t, err) os.Unsetenv("AWS_ACCESS_KEY_ID") os.Unsetenv("AWS_SECRET_ACCESS_KEY") @@ -1266,13 +1267,13 @@ func TestNewAWSLogsClientCredentialSharedFile(t *testing.T) { } c, err := newAWSLogsClient(info) - assert.NoError(t, err) + assert.Check(t, err) client := c.(*cloudwatchlogs.CloudWatchLogs) creds, err := client.Config.Credentials.Get() - assert.NoError(t, err) + assert.Check(t, err) - assert.Equal(t, expectedAccessKeyID, creds.AccessKeyID) - assert.Equal(t, expectedSecretAccessKey, creds.SecretAccessKey) + assert.Check(t, is.Equal(expectedAccessKeyID, creds.AccessKeyID)) + assert.Check(t, is.Equal(expectedSecretAccessKey, creds.SecretAccessKey)) } diff --git a/daemon/logger/jsonfilelog/jsonfilelog_test.go b/daemon/logger/jsonfilelog/jsonfilelog_test.go index 2f74e26091..0174d88c0d 100644 --- a/daemon/logger/jsonfilelog/jsonfilelog_test.go +++ b/daemon/logger/jsonfilelog/jsonfilelog_test.go @@ -13,9 +13,9 @@ import ( "github.com/docker/docker/daemon/logger" "github.com/docker/docker/daemon/logger/jsonfilelog/jsonlog" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestJSONFileLogger(t *testing.T) { @@ -63,7 +63,7 @@ func TestJSONFileLoggerWithTags(t *testing.T) { cname := "test-container" tmp, err := ioutil.TempDir("", "docker-logger-") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmp) filename := filepath.Join(tmp, "container.log") @@ -76,26 +76,26 @@ func TestJSONFileLoggerWithTags(t *testing.T) { LogPath: filename, }) - require.NoError(t, err) + assert.NilError(t, err) defer l.Close() err = l.Log(&logger.Message{Line: []byte("line1"), Source: "src1"}) - require.NoError(t, err) + assert.NilError(t, err) err = l.Log(&logger.Message{Line: []byte("line2"), Source: "src2"}) - require.NoError(t, err) + assert.NilError(t, err) err = l.Log(&logger.Message{Line: []byte("line3"), Source: "src3"}) - require.NoError(t, err) + assert.NilError(t, err) res, err := ioutil.ReadFile(filename) - require.NoError(t, err) + assert.NilError(t, err) expected := `{"log":"line1\n","stream":"src1","attrs":{"tag":"a7317399f3f8/test-container"},"time":"0001-01-01T00:00:00Z"} {"log":"line2\n","stream":"src2","attrs":{"tag":"a7317399f3f8/test-container"},"time":"0001-01-01T00:00:00Z"} {"log":"line3\n","stream":"src3","attrs":{"tag":"a7317399f3f8/test-container"},"time":"0001-01-01T00:00:00Z"} ` - assert.Equal(t, expected, string(res)) + assert.Check(t, is.Equal(expected, string(res))) } func BenchmarkJSONFileLoggerLog(b *testing.B) { @@ -113,7 +113,7 @@ func BenchmarkJSONFileLoggerLog(b *testing.B) { "second": "label_foo", }, }) - require.NoError(b, err) + assert.NilError(b, err) defer jsonlogger.Close() msg := &logger.Message{ @@ -123,7 +123,7 @@ func BenchmarkJSONFileLoggerLog(b *testing.B) { } buf := bytes.NewBuffer(nil) - require.NoError(b, marshalMessage(msg, nil, buf)) + assert.NilError(b, marshalMessage(msg, nil, buf)) b.SetBytes(int64(buf.Len())) b.ResetTimer() diff --git a/daemon/logger/jsonfilelog/jsonlog/jsonlogbytes_test.go b/daemon/logger/jsonfilelog/jsonlog/jsonlogbytes_test.go index 3701124354..d3e56df8cc 100644 --- a/daemon/logger/jsonfilelog/jsonlog/jsonlogbytes_test.go +++ b/daemon/logger/jsonfilelog/jsonlog/jsonlogbytes_test.go @@ -7,8 +7,7 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestJSONLogsMarshalJSONBuf(t *testing.T) { @@ -35,8 +34,8 @@ func TestJSONLogsMarshalJSONBuf(t *testing.T) { for jsonLog, expression := range logs { var buf bytes.Buffer err := jsonLog.MarshalJSONBuf(&buf) - require.NoError(t, err) + assert.NilError(t, err) assert.Regexp(t, regexp.MustCompile(expression), buf.String()) - assert.NoError(t, json.Unmarshal(buf.Bytes(), &map[string]interface{}{})) + assert.Check(t, json.Unmarshal(buf.Bytes(), &map[string]interface{}{})) } } diff --git a/daemon/logger/jsonfilelog/jsonlog/time_marshalling_test.go b/daemon/logger/jsonfilelog/jsonlog/time_marshalling_test.go index fee091eb6c..76f299a0f6 100644 --- a/daemon/logger/jsonfilelog/jsonlog/time_marshalling_test.go +++ b/daemon/logger/jsonfilelog/jsonlog/time_marshalling_test.go @@ -5,8 +5,8 @@ import ( "time" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestFastTimeMarshalJSONWithInvalidYear(t *testing.T) { @@ -22,14 +22,14 @@ func TestFastTimeMarshalJSONWithInvalidYear(t *testing.T) { func TestFastTimeMarshalJSON(t *testing.T) { aTime := time.Date(2015, 5, 29, 11, 1, 2, 3, time.UTC) json, err := fastTimeMarshalJSON(aTime) - require.NoError(t, err) - assert.Equal(t, "\"2015-05-29T11:01:02.000000003Z\"", json) + assert.NilError(t, err) + assert.Check(t, is.Equal("\"2015-05-29T11:01:02.000000003Z\"", json)) location, err := time.LoadLocation("Europe/Paris") - require.NoError(t, err) + assert.NilError(t, err) aTime = time.Date(2015, 5, 29, 11, 1, 2, 3, location) json, err = fastTimeMarshalJSON(aTime) - require.NoError(t, err) - assert.Equal(t, "\"2015-05-29T11:01:02.000000003+02:00\"", json) + assert.NilError(t, err) + assert.Check(t, is.Equal("\"2015-05-29T11:01:02.000000003+02:00\"", json)) } diff --git a/daemon/logger/jsonfilelog/read_test.go b/daemon/logger/jsonfilelog/read_test.go index 342b538c28..f89fabfe1c 100644 --- a/daemon/logger/jsonfilelog/read_test.go +++ b/daemon/logger/jsonfilelog/read_test.go @@ -6,8 +6,8 @@ import ( "time" "github.com/docker/docker/daemon/logger" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/require" ) func BenchmarkJSONFileLoggerReadLogs(b *testing.B) { @@ -25,7 +25,7 @@ func BenchmarkJSONFileLoggerReadLogs(b *testing.B) { "second": "label_foo", }, }) - require.NoError(b, err) + assert.NilError(b, err) defer jsonlogger.Close() msg := &logger.Message{ @@ -35,7 +35,7 @@ func BenchmarkJSONFileLoggerReadLogs(b *testing.B) { } buf := bytes.NewBuffer(nil) - require.NoError(b, marshalMessage(msg, nil, buf)) + assert.NilError(b, marshalMessage(msg, nil, buf)) b.SetBytes(int64(buf.Len())) b.ResetTimer() diff --git a/daemon/logger/splunk/splunk_test.go b/daemon/logger/splunk/splunk_test.go index 9744cb561a..62895a6dd6 100644 --- a/daemon/logger/splunk/splunk_test.go +++ b/daemon/logger/splunk/splunk_test.go @@ -11,8 +11,8 @@ import ( "time" "github.com/docker/docker/daemon/logger" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/env" - "github.com/stretchr/testify/require" ) // Validate options @@ -99,19 +99,19 @@ func TestNewWithProxy(t *testing.T) { }, ContainerID: "containeriid", }) - require.NoError(t, err) + assert.NilError(t, err) splunkLogger := logger.(*splunkLoggerInline) proxyFunc := splunkLogger.transport.Proxy - require.NotNil(t, proxyFunc) + assert.Assert(t, proxyFunc != nil) req, err := http.NewRequest("GET", splunkURL, nil) - require.NoError(t, err) + assert.NilError(t, err) proxyURL, err := proxyFunc(req) - require.NoError(t, err) - require.NotNil(t, proxyURL) - require.Equal(t, proxy, proxyURL.String()) + assert.NilError(t, err) + assert.Assert(t, proxyURL != nil) + assert.Equal(t, proxy, proxyURL.String()) } // Test default settings @@ -483,10 +483,10 @@ func TestRawFormat(t *testing.T) { } hostname, err := info.Hostname() - require.NoError(t, err) + assert.NilError(t, err) loggerDriver, err := New(info) - require.NoError(t, err) + assert.NilError(t, err) if !hec.connectionVerified { t.Fatal("By default connection should be verified") diff --git a/daemon/logger/templates/templates_test.go b/daemon/logger/templates/templates_test.go index 5e71d96f26..b767037477 100644 --- a/daemon/logger/templates/templates_test.go +++ b/daemon/logger/templates/templates_test.go @@ -4,15 +4,16 @@ import ( "bytes" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestNewParse(t *testing.T) { tm, err := NewParse("foo", "this is a {{ . }}") - assert.NoError(t, err) + assert.Check(t, err) var b bytes.Buffer - assert.NoError(t, tm.Execute(&b, "string")) + assert.Check(t, tm.Execute(&b, "string")) want := "this is a string" - assert.Equal(t, want, b.String()) + assert.Check(t, is.Equal(want, b.String())) } diff --git a/daemon/oci_linux_test.go b/daemon/oci_linux_test.go index f6bda79745..5f2731b8d6 100644 --- a/daemon/oci_linux_test.go +++ b/daemon/oci_linux_test.go @@ -8,8 +8,8 @@ import ( "github.com/docker/docker/daemon/config" "github.com/docker/docker/oci" "github.com/docker/docker/pkg/idtools" - - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) // TestTmpfsDevShmNoDupMount checks that a user-specified /dev/shm tmpfs @@ -36,17 +36,17 @@ func TestTmpfsDevShmNoDupMount(t *testing.T) { // Mimick the code flow of daemon.createSpec(), enough to reproduce the issue ms, err := d.setupMounts(c) - assert.NoError(t, err) + assert.Check(t, err) ms = append(ms, c.IpcMounts()...) tmpfsMounts, err := c.TmpfsMounts() - assert.NoError(t, err) + assert.Check(t, err) ms = append(ms, tmpfsMounts...) s := oci.DefaultSpec() err = setMounts(&d, &s, c, ms) - assert.NoError(t, err) + assert.Check(t, err) } // TestIpcPrivateVsReadonly checks that in case of IpcMode: private @@ -70,19 +70,19 @@ func TestIpcPrivateVsReadonly(t *testing.T) { // We can't call createSpec() so mimick the minimal part // of its code flow, just enough to reproduce the issue. ms, err := d.setupMounts(c) - assert.NoError(t, err) + assert.Check(t, err) s := oci.DefaultSpec() s.Root.Readonly = c.HostConfig.ReadonlyRootfs err = setMounts(&d, &s, c, ms) - assert.NoError(t, err) + assert.Check(t, err) // Find the /dev/shm mount in ms, check it does not have ro for _, m := range s.Mounts { if m.Destination != "/dev/shm" { continue } - assert.Equal(t, false, inSlice(m.Options, "ro")) + assert.Check(t, is.Equal(false, inSlice(m.Options, "ro"))) } } diff --git a/daemon/reload_test.go b/daemon/reload_test.go index a2500b2bb2..9174bfba54 100644 --- a/daemon/reload_test.go +++ b/daemon/reload_test.go @@ -12,7 +12,8 @@ import ( _ "github.com/docker/docker/pkg/discovery/memory" "github.com/docker/docker/registry" "github.com/docker/libnetwork" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestDaemonReloadLabels(t *testing.T) { @@ -97,7 +98,7 @@ func TestDaemonReloadAllowNondistributableArtifacts(t *testing.T) { sort.Strings(registries) sort.Strings(actual) - assert.Equal(t, registries, actual) + assert.Check(t, is.DeepEqual(registries, actual)) } func TestDaemonReloadMirrors(t *testing.T) { diff --git a/daemon/trustkey_test.go b/daemon/trustkey_test.go index c49341d2a9..ebc7e28ee3 100644 --- a/daemon/trustkey_test.go +++ b/daemon/trustkey_test.go @@ -7,19 +7,19 @@ import ( "testing" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) // LoadOrCreateTrustKey func TestLoadOrCreateTrustKeyInvalidKeyFile(t *testing.T) { tmpKeyFolderPath, err := ioutil.TempDir("", "api-trustkey-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpKeyFolderPath) tmpKeyFile, err := ioutil.TempFile(tmpKeyFolderPath, "keyfile") - require.NoError(t, err) + assert.NilError(t, err) _, err = loadOrCreateTrustKey(tmpKeyFile.Name()) testutil.ErrorContains(t, err, "Error loading key file") @@ -33,11 +33,11 @@ func TestLoadOrCreateTrustKeyCreateKeyWhenFileDoesNotExist(t *testing.T) { tmpKeyFile := tmpKeyFolderPath.Join("keyfile") key, err := loadOrCreateTrustKey(tmpKeyFile) - require.NoError(t, err) - assert.NotNil(t, key) + assert.NilError(t, err) + assert.Check(t, key != nil) _, err = os.Stat(tmpKeyFile) - require.NoError(t, err, "key file doesn't exist") + assert.NilError(t, err, "key file doesn't exist") } func TestLoadOrCreateTrustKeyCreateKeyWhenDirectoryDoesNotExist(t *testing.T) { @@ -46,27 +46,27 @@ func TestLoadOrCreateTrustKeyCreateKeyWhenDirectoryDoesNotExist(t *testing.T) { tmpKeyFile := tmpKeyFolderPath.Join("folder/hierarchy/keyfile") key, err := loadOrCreateTrustKey(tmpKeyFile) - require.NoError(t, err) - assert.NotNil(t, key) + assert.NilError(t, err) + assert.Check(t, key != nil) _, err = os.Stat(tmpKeyFile) - require.NoError(t, err, "key file doesn't exist") + assert.NilError(t, err, "key file doesn't exist") } func TestLoadOrCreateTrustKeyCreateKeyNoPath(t *testing.T) { defer os.Remove("keyfile") key, err := loadOrCreateTrustKey("keyfile") - require.NoError(t, err) - assert.NotNil(t, key) + assert.NilError(t, err) + assert.Check(t, key != nil) _, err = os.Stat("keyfile") - require.NoError(t, err, "key file doesn't exist") + assert.NilError(t, err, "key file doesn't exist") } func TestLoadOrCreateTrustKeyLoadValidKey(t *testing.T) { tmpKeyFile := filepath.Join("testdata", "keyfile") key, err := loadOrCreateTrustKey(tmpKeyFile) - require.NoError(t, err) + assert.NilError(t, err) expected := "AWX2:I27X:WQFX:IOMK:CNAK:O7PW:VYNB:ZLKC:CVAE:YJP2:SI4A:XXAY" - assert.Contains(t, key.String(), expected) + assert.Check(t, is.Contains(key.String(), expected)) } diff --git a/distribution/metadata/v1_id_service_test.go b/distribution/metadata/v1_id_service_test.go index 8a3647b3b3..7bac8e8212 100644 --- a/distribution/metadata/v1_id_service_test.go +++ b/distribution/metadata/v1_id_service_test.go @@ -6,7 +6,7 @@ import ( "testing" "github.com/docker/docker/layer" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestV1IDService(t *testing.T) { @@ -24,7 +24,7 @@ func TestV1IDService(t *testing.T) { ns := v1IDService.namespace() - require.Equal(t, "v1id", ns) + assert.Equal(t, "v1id", ns) testVectors := []struct { registry string diff --git a/image/fs_test.go b/image/fs_test.go index 6a634377e7..dcf4da75f8 100644 --- a/image/fs_test.go +++ b/image/fs_test.go @@ -11,16 +11,17 @@ import ( "testing" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" digest "github.com/opencontainers/go-digest" - "github.com/stretchr/testify/assert" ) func defaultFSStoreBackend(t *testing.T) (StoreBackend, func()) { tmpdir, err := ioutil.TempDir("", "images-fs-store") - assert.NoError(t, err) + assert.Check(t, err) fsBackend, err := NewFSStoreBackend(tmpdir) - assert.NoError(t, err) + assert.Check(t, err) return fsBackend, func() { os.RemoveAll(tmpdir) } } @@ -30,12 +31,12 @@ func TestFSGetInvalidData(t *testing.T) { defer cleanup() id, err := store.Set([]byte("foobar")) - assert.NoError(t, err) + assert.Check(t, err) dgst := digest.Digest(id) err = ioutil.WriteFile(filepath.Join(store.(*fs).root, contentDirName, string(dgst.Algorithm()), dgst.Hex()), []byte("foobar2"), 0600) - assert.NoError(t, err) + assert.Check(t, err) _, err = store.Get(id) testutil.ErrorContains(t, err, "failed to verify") @@ -47,7 +48,7 @@ func TestFSInvalidSet(t *testing.T) { id := digest.FromBytes([]byte("foobar")) err := os.Mkdir(filepath.Join(store.(*fs).root, contentDirName, string(id.Algorithm()), id.Hex()), 0700) - assert.NoError(t, err) + assert.Check(t, err) _, err = store.Set([]byte("foobar")) testutil.ErrorContains(t, err, "failed to write digest data") @@ -55,7 +56,7 @@ func TestFSInvalidSet(t *testing.T) { func TestFSInvalidRoot(t *testing.T) { tmpdir, err := ioutil.TempDir("", "images-fs-store") - assert.NoError(t, err) + assert.Check(t, err) defer os.RemoveAll(tmpdir) tcases := []struct { @@ -70,10 +71,10 @@ func TestFSInvalidRoot(t *testing.T) { root := filepath.Join(tmpdir, tc.root) filePath := filepath.Join(tmpdir, tc.invalidFile) err := os.MkdirAll(filepath.Dir(filePath), 0700) - assert.NoError(t, err) + assert.Check(t, err) f, err := os.Create(filePath) - assert.NoError(t, err) + assert.Check(t, err) f.Close() _, err = NewFSStoreBackend(root) @@ -89,10 +90,10 @@ func TestFSMetadataGetSet(t *testing.T) { defer cleanup() id, err := store.Set([]byte("foo")) - assert.NoError(t, err) + assert.Check(t, err) id2, err := store.Set([]byte("bar")) - assert.NoError(t, err) + assert.Check(t, err) tcases := []struct { id digest.Digest @@ -106,12 +107,12 @@ func TestFSMetadataGetSet(t *testing.T) { for _, tc := range tcases { err = store.SetMetadata(tc.id, tc.key, tc.value) - assert.NoError(t, err) + assert.Check(t, err) actual, err := store.GetMetadata(tc.id, tc.key) - assert.NoError(t, err) + assert.Check(t, err) - assert.Equal(t, tc.value, actual) + assert.Check(t, is.DeepEqual(tc.value, actual)) } _, err = store.GetMetadata(id2, "tkey2") @@ -130,19 +131,19 @@ func TestFSInvalidWalker(t *testing.T) { defer cleanup() fooID, err := store.Set([]byte("foo")) - assert.NoError(t, err) + assert.Check(t, err) err = ioutil.WriteFile(filepath.Join(store.(*fs).root, contentDirName, "sha256/foobar"), []byte("foobar"), 0600) - assert.NoError(t, err) + assert.Check(t, err) n := 0 err = store.Walk(func(id digest.Digest) error { - assert.Equal(t, fooID, id) + assert.Check(t, is.Equal(fooID, id)) n++ return nil }) - assert.NoError(t, err) - assert.Equal(t, 1, n) + assert.Check(t, err) + assert.Check(t, is.Equal(1, n)) } func TestFSGetSet(t *testing.T) { @@ -159,12 +160,12 @@ func TestFSGetSet(t *testing.T) { randomInput := make([]byte, 8*1024) _, err := rand.Read(randomInput) - assert.NoError(t, err) + assert.Check(t, err) // skipping use of digest pkg because it is used by the implementation h := sha256.New() _, err = h.Write(randomInput) - assert.NoError(t, err) + assert.Check(t, err) tcases = append(tcases, tcase{ input: randomInput, @@ -173,14 +174,14 @@ func TestFSGetSet(t *testing.T) { for _, tc := range tcases { id, err := store.Set([]byte(tc.input)) - assert.NoError(t, err) - assert.Equal(t, tc.expected, id) + assert.Check(t, err) + assert.Check(t, is.Equal(tc.expected, id)) } for _, tc := range tcases { data, err := store.Get(tc.expected) - assert.NoError(t, err) - assert.Equal(t, tc.input, data) + assert.Check(t, err) + assert.Check(t, is.DeepEqual(tc.input, data)) } } @@ -209,22 +210,22 @@ func TestFSDelete(t *testing.T) { defer cleanup() id, err := store.Set([]byte("foo")) - assert.NoError(t, err) + assert.Check(t, err) id2, err := store.Set([]byte("bar")) - assert.NoError(t, err) + assert.Check(t, err) err = store.Delete(id) - assert.NoError(t, err) + assert.Check(t, err) _, err = store.Get(id) testutil.ErrorContains(t, err, "failed to get digest") _, err = store.Get(id2) - assert.NoError(t, err) + assert.Check(t, err) err = store.Delete(id2) - assert.NoError(t, err) + assert.Check(t, err) _, err = store.Get(id2) testutil.ErrorContains(t, err, "failed to get digest") @@ -235,10 +236,10 @@ func TestFSWalker(t *testing.T) { defer cleanup() id, err := store.Set([]byte("foo")) - assert.NoError(t, err) + assert.Check(t, err) id2, err := store.Set([]byte("bar")) - assert.NoError(t, err) + assert.Check(t, err) tcases := make(map[digest.Digest]struct{}) tcases[id] = struct{}{} @@ -249,9 +250,9 @@ func TestFSWalker(t *testing.T) { n++ return nil }) - assert.NoError(t, err) - assert.Equal(t, 2, n) - assert.Len(t, tcases, 0) + assert.Check(t, err) + assert.Check(t, is.Equal(2, n)) + assert.Check(t, is.Len(tcases, 0)) } func TestFSWalkerStopOnError(t *testing.T) { @@ -259,7 +260,7 @@ func TestFSWalkerStopOnError(t *testing.T) { defer cleanup() id, err := store.Set([]byte("foo")) - assert.NoError(t, err) + assert.Check(t, err) tcases := make(map[digest.Digest]struct{}) tcases[id] = struct{}{} diff --git a/image/image_test.go b/image/image_test.go index 429f202978..265db0167c 100644 --- a/image/image_test.go +++ b/image/image_test.go @@ -9,8 +9,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/layer" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) const sampleImageJSON = `{ @@ -25,13 +25,13 @@ const sampleImageJSON = `{ func TestNewFromJSON(t *testing.T) { img, err := NewFromJSON([]byte(sampleImageJSON)) - require.NoError(t, err) - assert.Equal(t, sampleImageJSON, string(img.RawJSON())) + assert.NilError(t, err) + assert.Check(t, is.Equal(sampleImageJSON, string(img.RawJSON()))) } func TestNewFromJSONWithInvalidJSON(t *testing.T) { _, err := NewFromJSON([]byte("{}")) - assert.EqualError(t, err, "invalid image JSON, no RootFS key") + assert.Check(t, is.Error(err, "invalid image JSON, no RootFS key")) } func TestMarshalKeyOrder(t *testing.T) { @@ -42,7 +42,7 @@ func TestMarshalKeyOrder(t *testing.T) { Architecture: "c", }, }) - assert.NoError(t, err) + assert.Check(t, err) expectedOrder := []string{"architecture", "author", "comment"} var indexes []int @@ -71,10 +71,10 @@ func TestImage(t *testing.T) { computedID: ID(cid), } - assert.Equal(t, cid, img.ImageID()) - assert.Equal(t, cid, img.ID().String()) - assert.Equal(t, os, img.OperatingSystem()) - assert.Equal(t, config, img.RunConfig()) + assert.Check(t, is.Equal(cid, img.ImageID())) + assert.Check(t, is.Equal(cid, img.ID().String())) + assert.Check(t, is.Equal(os, img.OperatingSystem())) + assert.Check(t, is.DeepEqual(config, img.RunConfig())) } func TestImageOSNotEmpty(t *testing.T) { @@ -85,7 +85,7 @@ func TestImageOSNotEmpty(t *testing.T) { }, OSVersion: "osversion", } - assert.Equal(t, os, img.OperatingSystem()) + assert.Check(t, is.Equal(os, img.OperatingSystem())) } func TestNewChildImageFromImageWithRootFS(t *testing.T) { @@ -109,16 +109,16 @@ func TestNewChildImageFromImageWithRootFS(t *testing.T) { newImage := NewChildImage(parent, childConfig, "platform") expectedDiffIDs := []layer.DiffID{layer.DiffID("ba5e"), layer.DiffID("abcdef")} - assert.Equal(t, expectedDiffIDs, newImage.RootFS.DiffIDs) - assert.Equal(t, childConfig.Author, newImage.Author) - assert.Equal(t, childConfig.Config, newImage.Config) - assert.Equal(t, *childConfig.ContainerConfig, newImage.ContainerConfig) - assert.Equal(t, "platform", newImage.OS) - assert.Equal(t, childConfig.Config, newImage.Config) + assert.Check(t, is.DeepEqual(expectedDiffIDs, newImage.RootFS.DiffIDs)) + assert.Check(t, is.Equal(childConfig.Author, newImage.Author)) + assert.Check(t, is.DeepEqual(childConfig.Config, newImage.Config)) + assert.Check(t, is.DeepEqual(*childConfig.ContainerConfig, newImage.ContainerConfig)) + assert.Check(t, is.Equal("platform", newImage.OS)) + assert.Check(t, is.DeepEqual(childConfig.Config, newImage.Config)) - assert.Len(t, newImage.History, 2) - assert.Equal(t, childConfig.Comment, newImage.History[1].Comment) + assert.Check(t, is.Len(newImage.History, 2)) + assert.Check(t, is.Equal(childConfig.Comment, newImage.History[1].Comment)) // RootFS should be copied not mutated - assert.NotEqual(t, parent.RootFS.DiffIDs, newImage.RootFS.DiffIDs) + assert.Check(t, parent.RootFS.DiffIDs != newImage.RootFS.DiffIDs) } diff --git a/image/store_test.go b/image/store_test.go index b1300657a0..f43839923b 100644 --- a/image/store_test.go +++ b/image/store_test.go @@ -7,8 +7,9 @@ import ( "github.com/docker/docker/internal/testutil" "github.com/docker/docker/layer" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/opencontainers/go-digest" - "github.com/stretchr/testify/assert" ) func TestRestore(t *testing.T) { @@ -16,53 +17,53 @@ func TestRestore(t *testing.T) { defer cleanup() id1, err := fs.Set([]byte(`{"comment": "abc", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) _, err = fs.Set([]byte(`invalid`)) - assert.NoError(t, err) + assert.Check(t, err) id2, err := fs.Set([]byte(`{"comment": "def", "rootfs": {"type": "layers", "diff_ids": ["2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]}}`)) - assert.NoError(t, err) + assert.Check(t, err) err = fs.SetMetadata(id2, "parent", []byte(id1)) - assert.NoError(t, err) + assert.Check(t, err) mlgrMap := make(map[string]LayerGetReleaser) mlgrMap[runtime.GOOS] = &mockLayerGetReleaser{} is, err := NewImageStore(fs, mlgrMap) - assert.NoError(t, err) + assert.Check(t, err) - assert.Len(t, is.Map(), 2) + assert.Check(t, is.Len(is.Map(), 2)) img1, err := is.Get(ID(id1)) - assert.NoError(t, err) - assert.Equal(t, ID(id1), img1.computedID) - assert.Equal(t, string(id1), img1.computedID.String()) + assert.Check(t, err) + assert.Check(t, is.Equal(ID(id1), img1.computedID)) + assert.Check(t, is.Equal(string(id1), img1.computedID.String())) img2, err := is.Get(ID(id2)) - assert.NoError(t, err) - assert.Equal(t, "abc", img1.Comment) - assert.Equal(t, "def", img2.Comment) + assert.Check(t, err) + assert.Check(t, is.Equal("abc", img1.Comment)) + assert.Check(t, is.Equal("def", img2.Comment)) _, err = is.GetParent(ID(id1)) testutil.ErrorContains(t, err, "failed to read metadata") p, err := is.GetParent(ID(id2)) - assert.NoError(t, err) - assert.Equal(t, ID(id1), p) + assert.Check(t, err) + assert.Check(t, is.Equal(ID(id1), p)) children := is.Children(ID(id1)) - assert.Len(t, children, 1) - assert.Equal(t, ID(id2), children[0]) - assert.Len(t, is.Heads(), 1) + assert.Check(t, is.Len(children, 1)) + assert.Check(t, is.Equal(ID(id2), children[0])) + assert.Check(t, is.Len(is.Heads(), 1)) sid1, err := is.Search(string(id1)[:10]) - assert.NoError(t, err) - assert.Equal(t, ID(id1), sid1) + assert.Check(t, err) + assert.Check(t, is.Equal(ID(id1), sid1)) sid1, err = is.Search(digest.Digest(id1).Hex()[:6]) - assert.NoError(t, err) - assert.Equal(t, ID(id1), sid1) + assert.Check(t, err) + assert.Check(t, is.Equal(ID(id1), sid1)) invalidPattern := digest.Digest(id1).Hex()[1:6] _, err = is.Search(invalidPattern) @@ -74,31 +75,31 @@ func TestAddDelete(t *testing.T) { defer cleanup() id1, err := is.Create([]byte(`{"comment": "abc", "rootfs": {"type": "layers", "diff_ids": ["2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]}}`)) - assert.NoError(t, err) - assert.Equal(t, ID("sha256:8d25a9c45df515f9d0fe8e4a6b1c64dd3b965a84790ddbcc7954bb9bc89eb993"), id1) + assert.Check(t, err) + assert.Check(t, is.Equal(ID("sha256:8d25a9c45df515f9d0fe8e4a6b1c64dd3b965a84790ddbcc7954bb9bc89eb993"), id1)) img, err := is.Get(id1) - assert.NoError(t, err) - assert.Equal(t, "abc", img.Comment) + assert.Check(t, err) + assert.Check(t, is.Equal("abc", img.Comment)) id2, err := is.Create([]byte(`{"comment": "def", "rootfs": {"type": "layers", "diff_ids": ["2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]}}`)) - assert.NoError(t, err) + assert.Check(t, err) err = is.SetParent(id2, id1) - assert.NoError(t, err) + assert.Check(t, err) pid1, err := is.GetParent(id2) - assert.NoError(t, err) - assert.Equal(t, pid1, id1) + assert.Check(t, err) + assert.Check(t, is.Equal(pid1, id1)) _, err = is.Delete(id1) - assert.NoError(t, err) + assert.Check(t, err) _, err = is.Get(id1) testutil.ErrorContains(t, err, "failed to get digest") _, err = is.Get(id2) - assert.NoError(t, err) + assert.Check(t, err) _, err = is.GetParent(id2) testutil.ErrorContains(t, err, "failed to read metadata") @@ -109,14 +110,14 @@ func TestSearchAfterDelete(t *testing.T) { defer cleanup() id, err := is.Create([]byte(`{"comment": "abc", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) id1, err := is.Search(string(id)[:15]) - assert.NoError(t, err) - assert.Equal(t, id1, id) + assert.Check(t, err) + assert.Check(t, is.Equal(id1, id)) _, err = is.Delete(id) - assert.NoError(t, err) + assert.Check(t, err) _, err = is.Search(string(id)[:15]) testutil.ErrorContains(t, err, "No such image") @@ -127,20 +128,20 @@ func TestParentReset(t *testing.T) { defer cleanup() id, err := is.Create([]byte(`{"comment": "abc1", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) id2, err := is.Create([]byte(`{"comment": "abc2", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) id3, err := is.Create([]byte(`{"comment": "abc3", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) - assert.NoError(t, is.SetParent(id, id2)) - assert.Len(t, is.Children(id2), 1) + assert.Check(t, is.SetParent(id, id2)) + assert.Check(t, is.Len(is.Children(id2), 1)) - assert.NoError(t, is.SetParent(id, id3)) - assert.Len(t, is.Children(id2), 0) - assert.Len(t, is.Children(id3), 1) + assert.Check(t, is.SetParent(id, id3)) + assert.Check(t, is.Len(is.Children(id2), 0)) + assert.Check(t, is.Len(is.Children(id3), 1)) } func defaultImageStore(t *testing.T) (Store, func()) { @@ -149,7 +150,7 @@ func defaultImageStore(t *testing.T) (Store, func()) { mlgrMap := make(map[string]LayerGetReleaser) mlgrMap[runtime.GOOS] = &mockLayerGetReleaser{} store, err := NewImageStore(fsBackend, mlgrMap) - assert.NoError(t, err) + assert.Check(t, err) return store, cleanup } @@ -159,17 +160,17 @@ func TestGetAndSetLastUpdated(t *testing.T) { defer cleanup() id, err := store.Create([]byte(`{"comment": "abc1", "rootfs": {"type": "layers"}}`)) - assert.NoError(t, err) + assert.Check(t, err) updated, err := store.GetLastUpdated(id) - assert.NoError(t, err) - assert.Equal(t, updated.IsZero(), true) + assert.Check(t, err) + assert.Check(t, is.Equal(updated.IsZero(), true)) - assert.NoError(t, store.SetLastUpdated(id)) + assert.Check(t, store.SetLastUpdated(id)) updated, err = store.GetLastUpdated(id) - assert.NoError(t, err) - assert.Equal(t, updated.IsZero(), false) + assert.Check(t, err) + assert.Check(t, is.Equal(updated.IsZero(), false)) } func TestStoreLen(t *testing.T) { @@ -179,7 +180,7 @@ func TestStoreLen(t *testing.T) { expected := 10 for i := 0; i < expected; i++ { _, err := store.Create([]byte(fmt.Sprintf(`{"comment": "abc%d", "rootfs": {"type": "layers"}}`, i))) - assert.NoError(t, err) + assert.NilError(t, err) } numImages := store.Len() assert.Equal(t, expected, numImages) diff --git a/integration-cli/cli/build/fakegit/fakegit.go b/integration-cli/cli/build/fakegit/fakegit.go index eb175365a5..b05bfc322b 100644 --- a/integration-cli/cli/build/fakegit/fakegit.go +++ b/integration-cli/cli/build/fakegit/fakegit.go @@ -11,11 +11,11 @@ import ( "github.com/docker/docker/integration-cli/cli/build/fakecontext" "github.com/docker/docker/integration-cli/cli/build/fakestorage" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) type testingT interface { - require.TestingT + assert.TestingT logT Fatal(args ...interface{}) Fatalf(string, ...interface{}) diff --git a/integration-cli/cli/build/fakestorage/storage.go b/integration-cli/cli/build/fakestorage/storage.go index c8c837ed2a..bd49a33cfe 100644 --- a/integration-cli/cli/build/fakestorage/storage.go +++ b/integration-cli/cli/build/fakestorage/storage.go @@ -15,13 +15,13 @@ import ( "github.com/docker/docker/integration-cli/request" "github.com/docker/docker/internal/test/environment" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) var testEnv *environment.Execution type testingT interface { - require.TestingT + assert.TestingT logT Fatal(args ...interface{}) Fatalf(string, ...interface{}) diff --git a/integration-cli/daemon/daemon.go b/integration-cli/daemon/daemon.go index 9672d160f8..9ca54236f4 100644 --- a/integration-cli/daemon/daemon.go +++ b/integration-cli/daemon/daemon.go @@ -24,14 +24,14 @@ import ( "github.com/docker/go-connections/sockets" "github.com/docker/go-connections/tlsconfig" "github.com/go-check/check" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/icmd" "github.com/pkg/errors" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) type testingT interface { - require.TestingT + assert.TestingT logT Fatalf(string, ...interface{}) } @@ -487,20 +487,20 @@ func (d *Daemon) handleUserns() { // LoadBusybox image into the daemon func (d *Daemon) LoadBusybox(t testingT) { clientHost, err := client.NewEnvClient() - require.NoError(t, err, "failed to create client") + assert.NilError(t, err, "failed to create client") defer clientHost.Close() ctx := context.Background() reader, err := clientHost.ImageSave(ctx, []string{"busybox:latest"}) - require.NoError(t, err, "failed to download busybox") + assert.NilError(t, err, "failed to download busybox") defer reader.Close() client, err := d.NewClient() - require.NoError(t, err, "failed to create client") + assert.NilError(t, err, "failed to create client") defer client.Close() resp, err := client.ImageLoad(ctx, reader, true) - require.NoError(t, err, "failed to load busybox") + assert.NilError(t, err, "failed to load busybox") defer resp.Body.Close() } @@ -563,11 +563,11 @@ func (d *Daemon) WaitRun(contID string) error { } // Info returns the info struct for this daemon -func (d *Daemon) Info(t require.TestingT) types.Info { +func (d *Daemon) Info(t assert.TestingT) types.Info { apiclient, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) info, err := apiclient.Info(context.Background()) - require.NoError(t, err) + assert.NilError(t, err) return info } diff --git a/integration-cli/daemon/daemon_swarm.go b/integration-cli/daemon/daemon_swarm.go index cb44f63f23..be0ddef99e 100644 --- a/integration-cli/daemon/daemon_swarm.go +++ b/integration-cli/daemon/daemon_swarm.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/checker" "github.com/go-check/check" + "github.com/gotestyourself/gotestyourself/assert" "github.com/pkg/errors" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -235,12 +235,12 @@ func (d *Swarm) CheckServiceUpdateState(service string) func(*check.C) (interfac func (d *Swarm) CheckPluginRunning(plugin string) func(c *check.C) (interface{}, check.CommentInterface) { return func(c *check.C) (interface{}, check.CommentInterface) { apiclient, err := d.NewClient() - require.NoError(c, err) + assert.NilError(c, err) resp, _, err := apiclient.PluginInspectWithRaw(context.Background(), plugin) if client.IsErrNotFound(err) { return false, check.Commentf("%v", err) } - require.NoError(c, err) + assert.NilError(c, err) return resp.Enabled, check.Commentf("%+v", resp) } } @@ -249,12 +249,12 @@ func (d *Swarm) CheckPluginRunning(plugin string) func(c *check.C) (interface{}, func (d *Swarm) CheckPluginImage(plugin string) func(c *check.C) (interface{}, check.CommentInterface) { return func(c *check.C) (interface{}, check.CommentInterface) { apiclient, err := d.NewClient() - require.NoError(c, err) + assert.NilError(c, err) resp, _, err := apiclient.PluginInspectWithRaw(context.Background(), plugin) if client.IsErrNotFound(err) { return false, check.Commentf("%v", err) } - require.NoError(c, err) + assert.NilError(c, err) return resp.PluginReference, check.Commentf("%+v", resp) } } diff --git a/integration-cli/docker_api_build_test.go b/integration-cli/docker_api_build_test.go index e5423a4741..cae7c1afe7 100644 --- a/integration-cli/docker_api_build_test.go +++ b/integration-cli/docker_api_build_test.go @@ -18,10 +18,10 @@ import ( "github.com/docker/docker/integration-cli/cli/build/fakestorage" "github.com/docker/docker/integration-cli/request" "github.com/go-check/check" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/moby/buildkit/session" "github.com/moby/buildkit/session/filesync" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" "golang.org/x/sync/errgroup" ) @@ -296,12 +296,12 @@ func (s *DockerSuite) TestBuildOnBuildCache(c *check.C) { "/build", request.RawContent(ctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) return out } @@ -316,15 +316,15 @@ func (s *DockerSuite) TestBuildOnBuildCache(c *check.C) { out := build(dockerfile) imageIDs := getImageIDsFromBuild(c, out) - assert.Len(c, imageIDs, 2) + assert.Check(c, is.Len(imageIDs, 2)) parentID, childID := imageIDs[0], imageIDs[1] client := testEnv.APIClient() // check parentID is correct image, _, err := client.ImageInspectWithRaw(context.Background(), childID) - require.NoError(c, err) - assert.Equal(c, parentID, image.Parent) + assert.NilError(c, err) + assert.Check(c, is.Equal(parentID, image.Parent)) } func (s *DockerRegistrySuite) TestBuildCopyFromForcePull(c *check.C) { @@ -333,12 +333,12 @@ func (s *DockerRegistrySuite) TestBuildCopyFromForcePull(c *check.C) { repoName := fmt.Sprintf("%v/dockercli/busybox", privateRegistryURL) // tag the image to upload it to the private registry err := client.ImageTag(context.TODO(), "busybox", repoName) - assert.Nil(c, err) + assert.Check(c, err) // push the image to the registry rc, err := client.ImagePush(context.TODO(), repoName, types.ImagePushOptions{RegistryAuth: "{}"}) - assert.Nil(c, err) + assert.Check(c, err) _, err = io.Copy(ioutil.Discard, rc) - assert.Nil(c, err) + assert.Check(c, err) dockerfile := fmt.Sprintf(` FROM %s AS foo @@ -356,12 +356,12 @@ func (s *DockerRegistrySuite) TestBuildCopyFromForcePull(c *check.C) { "/build?pull=1", request.RawContent(ctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) } func (s *DockerSuite) TestBuildAddRemoteNoDecompress(c *check.C) { @@ -374,11 +374,11 @@ func (s *DockerSuite) TestBuildAddRemoteNoDecompress(c *check.C) { Mode: 0600, Typeflag: tar.TypeReg, }) - require.NoError(c, err) + assert.NilError(c, err) _, err = tw.Write(dt) - require.NoError(c, err) + assert.NilError(c, err) err = tw.Close() - require.NoError(c, err) + assert.NilError(c, err) server := fakestorage.New(c, "", fakecontext.WithBinaryFiles(map[string]*bytes.Buffer{ "test.tar": buffer, @@ -400,12 +400,12 @@ func (s *DockerSuite) TestBuildAddRemoteNoDecompress(c *check.C) { "/build", request.RawContent(ctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) } func (s *DockerSuite) TestBuildChownOnCopy(c *check.C) { @@ -433,8 +433,8 @@ func (s *DockerSuite) TestBuildChownOnCopy(c *check.C) { c.Assert(res.StatusCode, checker.Equals, http.StatusOK) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) } func (s *DockerSuite) TestBuildCopyCacheOnFileChange(c *check.C) { @@ -454,11 +454,11 @@ COPY file /file` request.RawContent(ctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) out, err := request.ReadBody(body) - require.NoError(c, err) + assert.NilError(c, err) ids := getImageIDsFromBuild(c, out) return ids[len(ids)-1] @@ -493,11 +493,11 @@ ADD file /file` request.RawContent(ctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) out, err := request.ReadBody(body) - require.NoError(c, err) + assert.NilError(c, err) ids := getImageIDsFromBuild(c, out) return ids[len(ids)-1] @@ -530,7 +530,7 @@ func (s *DockerSuite) TestBuildWithSession(c *check.C) { defer fctx.Close() out := testBuildWithSession(c, fctx.Dir, dockerfile) - assert.Contains(c, out, "some content") + assert.Check(c, is.Contains(out, "some content")) fctx.Add("second", "contentcontent") @@ -540,20 +540,20 @@ func (s *DockerSuite) TestBuildWithSession(c *check.C) { ` out = testBuildWithSession(c, fctx.Dir, dockerfile) - assert.Equal(c, strings.Count(out, "Using cache"), 2) - assert.Contains(c, out, "contentcontent") + assert.Check(c, is.Equal(strings.Count(out, "Using cache"), 2)) + assert.Check(c, is.Contains(out, "contentcontent")) client := testEnv.APIClient() du, err := client.DiskUsage(context.TODO()) - assert.Nil(c, err) - assert.True(c, du.BuilderSize > 10) + assert.Check(c, err) + assert.Check(c, du.BuilderSize > 10) out = testBuildWithSession(c, fctx.Dir, dockerfile) - assert.Equal(c, strings.Count(out, "Using cache"), 4) + assert.Check(c, is.Equal(strings.Count(out, "Using cache"), 4)) du2, err := client.DiskUsage(context.TODO()) - assert.Nil(c, err) - assert.Equal(c, du.BuilderSize, du2.BuilderSize) + assert.Check(c, err) + assert.Check(c, is.Equal(du.BuilderSize, du2.BuilderSize)) // rebuild with regular tar, confirm cache still applies fctx.Add("Dockerfile", dockerfile) @@ -561,26 +561,26 @@ func (s *DockerSuite) TestBuildWithSession(c *check.C) { "/build", request.RawContent(fctx.AsTarReader(c)), request.ContentType("application/x-tar")) - require.NoError(c, err) - assert.Equal(c, http.StatusOK, res.StatusCode) + assert.NilError(c, err) + assert.Check(c, is.DeepEqual(http.StatusOK, res.StatusCode)) outBytes, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(outBytes), "Successfully built") - assert.Equal(c, strings.Count(string(outBytes), "Using cache"), 4) + assert.NilError(c, err) + assert.Check(c, is.Contains(string(outBytes), "Successfully built")) + assert.Check(c, is.Equal(strings.Count(string(outBytes), "Using cache"), 4)) _, err = client.BuildCachePrune(context.TODO()) - assert.Nil(c, err) + assert.Check(c, err) du, err = client.DiskUsage(context.TODO()) - assert.Nil(c, err) - assert.Equal(c, du.BuilderSize, int64(0)) + assert.Check(c, err) + assert.Check(c, is.Equal(du.BuilderSize, int64(0))) } func testBuildWithSession(c *check.C, dir, dockerfile string) (outStr string) { client := testEnv.APIClient() sess, err := session.NewSession("foo1", "foo") - assert.Nil(c, err) + assert.Check(c, err) fsProvider := filesync.NewFSSyncProvider([]filesync.SyncedDir{ {Dir: dir}, @@ -601,17 +601,17 @@ func testBuildWithSession(c *check.C, dir, dockerfile string) (outStr string) { if err != nil { return err } - assert.Equal(c, res.StatusCode, http.StatusOK) + assert.Check(c, is.DeepEqual(res.StatusCode, http.StatusOK)) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) sess.Close() outStr = string(out) return nil }) err = g.Wait() - assert.Nil(c, err) + assert.Check(c, err) return } @@ -633,8 +633,8 @@ ENV foo bar` c.Assert(res.StatusCode, checker.Equals, http.StatusOK) out, err := request.ReadBody(body) - require.NoError(c, err) - assert.Contains(c, string(out), "Successfully built") + assert.NilError(c, err) + assert.Check(c, is.Contains(string(out), "Successfully built")) } type buildLine struct { @@ -651,7 +651,7 @@ func getImageIDsFromBuild(c *check.C, output []byte) []string { continue } entry := buildLine{} - require.NoError(c, json.Unmarshal(line, &entry)) + assert.NilError(c, json.Unmarshal(line, &entry)) if entry.Aux.ID != "" { ids = append(ids, entry.Aux.ID) } diff --git a/integration-cli/docker_api_containers_test.go b/integration-cli/docker_api_containers_test.go index ed1941022e..c0e5ff5b17 100644 --- a/integration-cli/docker_api_containers_test.go +++ b/integration-cli/docker_api_containers_test.go @@ -31,9 +31,9 @@ import ( "github.com/docker/docker/volume" "github.com/docker/go-connections/nat" "github.com/go-check/check" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -2027,47 +2027,47 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) { &containertypes.HostConfig{Mounts: []mounttypes.Mount{x.spec}}, &networktypes.NetworkingConfig{}, "") - require.NoError(c, err) + assert.NilError(c, err) containerInspect, err := apiclient.ContainerInspect(ctx, container.ID) - require.NoError(c, err) + assert.NilError(c, err) mps := containerInspect.Mounts - require.Len(c, mps, 1) + assert.Assert(c, is.Len(mps, 1)) mountPoint := mps[0] if x.expected.Source != "" { - assert.Equal(c, x.expected.Source, mountPoint.Source) + assert.Check(c, is.Equal(x.expected.Source, mountPoint.Source)) } if x.expected.Name != "" { - assert.Equal(c, x.expected.Name, mountPoint.Name) + assert.Check(c, is.Equal(x.expected.Name, mountPoint.Name)) } if x.expected.Driver != "" { - assert.Equal(c, x.expected.Driver, mountPoint.Driver) + assert.Check(c, is.Equal(x.expected.Driver, mountPoint.Driver)) } if x.expected.Propagation != "" { - assert.Equal(c, x.expected.Propagation, mountPoint.Propagation) + assert.Check(c, is.Equal(x.expected.Propagation, mountPoint.Propagation)) } - assert.Equal(c, x.expected.RW, mountPoint.RW) - assert.Equal(c, x.expected.Type, mountPoint.Type) - assert.Equal(c, x.expected.Mode, mountPoint.Mode) - assert.Equal(c, x.expected.Destination, mountPoint.Destination) + assert.Check(c, is.Equal(x.expected.RW, mountPoint.RW)) + assert.Check(c, is.Equal(x.expected.Type, mountPoint.Type)) + assert.Check(c, is.Equal(x.expected.Mode, mountPoint.Mode)) + assert.Check(c, is.Equal(x.expected.Destination, mountPoint.Destination)) err = apiclient.ContainerStart(ctx, container.ID, types.ContainerStartOptions{}) - require.NoError(c, err) + assert.NilError(c, err) poll.WaitOn(c, containerExit(apiclient, container.ID), poll.WithDelay(time.Second)) err = apiclient.ContainerRemove(ctx, container.ID, types.ContainerRemoveOptions{ RemoveVolumes: true, Force: true, }) - require.NoError(c, err) + assert.NilError(c, err) switch { // Named volumes still exist after the container is removed case x.spec.Type == "volume" && len(x.spec.Source) > 0: _, err := apiclient.VolumeInspect(ctx, mountPoint.Name) - require.NoError(c, err) + assert.NilError(c, err) // Bind mounts are never removed with the container case x.spec.Type == "bind": @@ -2075,7 +2075,7 @@ func (s *DockerSuite) TestContainersAPICreateMountsCreate(c *check.C) { // anonymous volumes are removed default: _, err := apiclient.VolumeInspect(ctx, mountPoint.Name) - assert.True(c, client.IsErrNotFound(err)) + assert.Check(c, client.IsErrNotFound(err)) } } } diff --git a/integration-cli/docker_api_containers_windows_test.go b/integration-cli/docker_api_containers_windows_test.go index eb2892575c..4c8ace4842 100644 --- a/integration-cli/docker_api_containers_windows_test.go +++ b/integration-cli/docker_api_containers_windows_test.go @@ -13,8 +13,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/mount" "github.com/go-check/check" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -65,12 +65,12 @@ func (s *DockerSuite) TestContainersAPICreateMountsBindNamedPipe(c *check.C) { }, }, nil, name) - require.NoError(c, err) + assert.NilError(c, err) err = client.ContainerStart(ctx, name, types.ContainerStartOptions{}) - require.NoError(c, err) + assert.NilError(c, err) err = <-ch - require.NoError(c, err) - assert.Equal(c, text, strings.TrimSpace(string(b))) + assert.NilError(c, err) + assert.Check(c, is.Equal(text, strings.TrimSpace(string(b)))) } diff --git a/integration-cli/docker_api_inspect_test.go b/integration-cli/docker_api_inspect_test.go index 52a889f08b..2f81d6e1eb 100644 --- a/integration-cli/docker_api_inspect_test.go +++ b/integration-cli/docker_api_inspect_test.go @@ -11,7 +11,8 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/checker" "github.com/go-check/check" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func (s *DockerSuite) TestInspectAPIContainerResponse(c *check.C) { @@ -115,8 +116,8 @@ func (s *DockerSuite) TestInspectAPIImageResponse(c *check.C) { c.Assert(err, checker.IsNil) c.Assert(imageJSON.RepoTags, checker.HasLen, 2) - assert.Contains(c, imageJSON.RepoTags, "busybox:latest") - assert.Contains(c, imageJSON.RepoTags, "busybox:mytag") + assert.Check(c, is.Contains(imageJSON.RepoTags, "busybox:latest")) + assert.Check(c, is.Contains(imageJSON.RepoTags, "busybox:mytag")) } // #17131, #17139, #17173 diff --git a/integration-cli/docker_api_swarm_test.go b/integration-cli/docker_api_swarm_test.go index b5edfd2c04..2ba69acdb8 100644 --- a/integration-cli/docker_api_swarm_test.go +++ b/integration-cli/docker_api_swarm_test.go @@ -25,8 +25,8 @@ import ( "github.com/docker/docker/integration-cli/request" "github.com/docker/swarmkit/ca" "github.com/go-check/check" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -1012,16 +1012,16 @@ func (s *DockerSwarmSuite) TestAPINetworkInspectWithScope(c *check.C) { name := "test-scoped-network" ctx := context.Background() apiclient, err := d.NewClient() - require.NoError(c, err) + assert.NilError(c, err) resp, err := apiclient.NetworkCreate(ctx, name, types.NetworkCreate{Driver: "overlay"}) - require.NoError(c, err) + assert.NilError(c, err) network, err := apiclient.NetworkInspect(ctx, name, types.NetworkInspectOptions{}) - require.NoError(c, err) - assert.Equal(c, "swarm", network.Scope) - assert.Equal(c, resp.ID, network.ID) + assert.NilError(c, err) + assert.Check(c, is.Equal("swarm", network.Scope)) + assert.Check(c, is.Equal(resp.ID, network.ID)) _, err = apiclient.NetworkInspect(ctx, name, types.NetworkInspectOptions{Scope: "local"}) - assert.True(c, client.IsErrNotFound(err)) + assert.Check(c, client.IsErrNotFound(err)) } diff --git a/integration-cli/docker_cli_by_digest_test.go b/integration-cli/docker_cli_by_digest_test.go index 2d5dd486e7..ac97e0aecc 100644 --- a/integration-cli/docker_cli_by_digest_test.go +++ b/integration-cli/docker_cli_by_digest_test.go @@ -15,8 +15,9 @@ import ( "github.com/docker/docker/integration-cli/cli" "github.com/docker/docker/integration-cli/cli/build" "github.com/go-check/check" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/opencontainers/go-digest" - "github.com/stretchr/testify/assert" ) var ( @@ -403,7 +404,7 @@ func (s *DockerRegistrySuite) TestInspectImageWithDigests(c *check.C) { c.Assert(err, checker.IsNil) c.Assert(imageJSON, checker.HasLen, 1) c.Assert(imageJSON[0].RepoDigests, checker.HasLen, 1) - assert.Contains(c, imageJSON[0].RepoDigests, imageReference) + assert.Check(c, is.Contains(imageJSON[0].RepoDigests, imageReference)) } func (s *DockerRegistrySuite) TestPsListContainersFilterAncestorImageByDigest(c *check.C) { diff --git a/integration/build/build_test.go b/integration/build/build_test.go index 124f1107fb..daede7bc33 100644 --- a/integration/build/build_test.go +++ b/integration/build/build_test.go @@ -15,8 +15,8 @@ import ( "github.com/docker/docker/integration-cli/cli/build/fakecontext" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/jsonmessage" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestBuildWithRemoveAndForceRemove(t *testing.T) { @@ -94,21 +94,21 @@ func TestBuildWithRemoveAndForceRemove(t *testing.T) { buff := bytes.NewBuffer(nil) tw := tar.NewWriter(buff) - require.NoError(t, tw.WriteHeader(&tar.Header{ + assert.NilError(t, tw.WriteHeader(&tar.Header{ Name: "Dockerfile", Size: int64(len(dockerfile)), })) _, err := tw.Write(dockerfile) - require.NoError(t, err) - require.NoError(t, tw.Close()) + assert.NilError(t, err) + assert.NilError(t, tw.Close()) resp, err := client.ImageBuild(ctx, buff, types.ImageBuildOptions{Remove: c.rm, ForceRemove: c.forceRm, NoCache: true}) - require.NoError(t, err) + assert.NilError(t, err) defer resp.Body.Close() filter, err := buildContainerIdsFilter(resp.Body) - require.NoError(t, err) + assert.NilError(t, err) remainingContainers, err := client.ContainerList(ctx, types.ContainerListOptions{Filters: filter, All: true}) - require.NoError(t, err) - require.Equal(t, c.numberOfIntermediateContainers, len(remainingContainers), "Expected %v remaining intermediate containers, got %v", c.numberOfIntermediateContainers, len(remainingContainers)) + assert.NilError(t, err) + assert.Equal(t, c.numberOfIntermediateContainers, len(remainingContainers), "Expected %v remaining intermediate containers, got %v", c.numberOfIntermediateContainers, len(remainingContainers)) }) } } @@ -158,16 +158,16 @@ func TestBuildMultiStageParentConfig(t *testing.T) { ForceRemove: true, Tags: []string{"build1"}, }) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(ioutil.Discard, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) image, _, err := apiclient.ImageInspectWithRaw(ctx, "build1") - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, "/foo/sub2", image.Config.WorkingDir) - assert.Contains(t, image.Config.Env, "WHO=parent") + assert.Check(t, is.Equal("/foo/sub2", image.Config.WorkingDir)) + assert.Check(t, is.Contains(image.Config.Env, "WHO=parent")) } func TestBuildWithEmptyLayers(t *testing.T) { @@ -192,10 +192,10 @@ func TestBuildWithEmptyLayers(t *testing.T) { Remove: true, ForceRemove: true, }) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(ioutil.Discard, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) } // TestBuildMultiStageOnBuild checks that ONBUILD commands are applied to @@ -228,20 +228,20 @@ RUN cat somefile` }) out := bytes.NewBuffer(nil) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(out, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) - assert.Contains(t, out.String(), "Successfully built") + assert.Check(t, is.Contains(out.String(), "Successfully built")) imageIDs, err := getImageIDsFromBuild(out.Bytes()) - require.NoError(t, err) - assert.Equal(t, 3, len(imageIDs)) + assert.NilError(t, err) + assert.Check(t, is.Equal(3, len(imageIDs))) image, _, err := apiclient.ImageInspectWithRaw(context.Background(), imageIDs[2]) - require.NoError(t, err) - assert.Contains(t, image.Config.Env, "bar=baz") + assert.NilError(t, err) + assert.Check(t, is.Contains(image.Config.Env, "bar=baz")) } // #35403 #36122 @@ -260,7 +260,7 @@ COPY bar /` writeTarRecord(t, w, "../foo", "foocontents0") writeTarRecord(t, w, "/bar", "barcontents0") err := w.Close() - require.NoError(t, err) + assert.NilError(t, err) apiclient := testEnv.APIClient() resp, err := apiclient.ImageBuild(ctx, @@ -271,10 +271,10 @@ COPY bar /` }) out := bytes.NewBuffer(nil) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(out, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) // repeat with changed data should not cause cache hits @@ -284,7 +284,7 @@ COPY bar /` writeTarRecord(t, w, "../foo", "foocontents1") writeTarRecord(t, w, "/bar", "barcontents1") err = w.Close() - require.NoError(t, err) + assert.NilError(t, err) resp, err = apiclient.ImageBuild(ctx, buf, @@ -294,10 +294,10 @@ COPY bar /` }) out = bytes.NewBuffer(nil) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(out, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) require.NotContains(t, out.String(), "Using cache") } @@ -333,12 +333,12 @@ RUN [ ! -f foo ] }) out := bytes.NewBuffer(nil) - require.NoError(t, err) + assert.NilError(t, err) _, err = io.Copy(out, resp.Body) resp.Body.Close() - require.NoError(t, err) + assert.NilError(t, err) - assert.Contains(t, out.String(), "Successfully built") + assert.Check(t, is.Contains(out.String(), "Successfully built")) } func writeTarRecord(t *testing.T, w *tar.Writer, fn, contents string) { @@ -348,9 +348,9 @@ func writeTarRecord(t *testing.T, w *tar.Writer, fn, contents string) { Size: int64(len(contents)), Typeflag: '0', }) - require.NoError(t, err) + assert.NilError(t, err) _, err = w.Write([]byte(contents)) - require.NoError(t, err) + assert.NilError(t, err) } type buildLine struct { diff --git a/integration/config/config_test.go b/integration/config/config_test.go index 912f55a12a..65323e2e59 100644 --- a/integration/config/config_test.go +++ b/integration/config/config_test.go @@ -14,9 +14,9 @@ import ( "github.com/docker/docker/integration/internal/swarm" "github.com/docker/docker/internal/testutil" "github.com/docker/docker/pkg/stdcopy" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -27,14 +27,14 @@ func TestConfigList(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() // This test case is ported from the original TestConfigsEmptyList configs, err := client.ConfigList(ctx, types.ConfigListOptions{}) - require.NoError(t, err) - assert.Equal(t, len(configs), 0) + assert.NilError(t, err) + assert.Check(t, is.Equal(len(configs), 0)) testName0 := "test0" testName1 := "test1" @@ -57,8 +57,8 @@ func TestConfigList(t *testing.T) { // test by `config ls` entries, err := client.ConfigList(ctx, types.ConfigListOptions{}) - require.NoError(t, err) - assert.Equal(t, names(entries), testNames) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(names(entries), testNames)) testCases := []struct { filters filters.Args @@ -92,8 +92,8 @@ func TestConfigList(t *testing.T) { entries, err = client.ConfigList(ctx, types.ConfigListOptions{ Filters: tc.filters, }) - require.NoError(t, err) - assert.Equal(t, names(entries), tc.expected) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(names(entries), tc.expected)) } } @@ -106,8 +106,8 @@ func createConfig(ctx context.Context, t *testing.T, client client.APIClient, na }, Data: data, }) - require.NoError(t, err) - assert.NotEqual(t, config.ID, "") + assert.NilError(t, err) + assert.Check(t, config.ID != "") return config.ID } @@ -118,7 +118,7 @@ func TestConfigsCreateAndDelete(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -128,12 +128,12 @@ func TestConfigsCreateAndDelete(t *testing.T) { configID := createConfig(ctx, t, client, testName, []byte("TESTINGDATA"), nil) insp, _, err := client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Name, testName) + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Name, testName)) // This test case is ported from the original TestConfigsDelete err = client.ConfigRemove(ctx, configID) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.ConfigInspectWithRaw(ctx, configID) testutil.ErrorContains(t, err, "No such config") @@ -146,7 +146,7 @@ func TestConfigsUpdate(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -156,35 +156,35 @@ func TestConfigsUpdate(t *testing.T) { configID := createConfig(ctx, t, client, testName, []byte("TESTINGDATA"), nil) insp, _, err := client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.ID, configID) + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.ID, configID)) // test UpdateConfig with full ID insp.Spec.Labels = map[string]string{"test": "test1"} err = client.ConfigUpdate(ctx, configID, insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test1") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test1")) // test UpdateConfig with full name insp.Spec.Labels = map[string]string{"test": "test2"} err = client.ConfigUpdate(ctx, testName, insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test2") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test2")) // test UpdateConfig with prefix ID insp.Spec.Labels = map[string]string{"test": "test3"} err = client.ConfigUpdate(ctx, configID[:1], insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test3") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test3")) // test UpdateConfig in updating Data which is not supported in daemon // this test will produce an error in func UpdateConfig @@ -207,7 +207,7 @@ func TestTemplatedConfig(t *testing.T) { Data: []byte("this is a secret"), } referencedSecret, err := client.SecretCreate(ctx, referencedSecretSpec) - assert.NoError(t, err) + assert.Check(t, err) referencedConfigSpec := swarmtypes.ConfigSpec{ Annotations: swarmtypes.Annotations{ @@ -216,7 +216,7 @@ func TestTemplatedConfig(t *testing.T) { Data: []byte("this is a config"), } referencedConfig, err := client.ConfigCreate(ctx, referencedConfigSpec) - assert.NoError(t, err) + assert.Check(t, err) configSpec := swarmtypes.ConfigSpec{ Annotations: swarmtypes.Annotations{ @@ -231,7 +231,7 @@ func TestTemplatedConfig(t *testing.T) { } templatedConfig, err := client.ConfigCreate(ctx, configSpec) - assert.NoError(t, err) + assert.Check(t, err) serviceID := swarm.CreateService(t, d, swarm.ServiceWithConfig( @@ -309,8 +309,8 @@ func TestTemplatedConfig(t *testing.T) { func assertAttachedStream(t *testing.T, attach types.HijackedResponse, expect string) { buf := bytes.NewBuffer(nil) _, err := stdcopy.StdCopy(buf, buf, attach.Reader) - require.NoError(t, err) - assert.Contains(t, buf.String(), expect) + assert.NilError(t, err) + assert.Check(t, is.Contains(buf.String(), expect)) } func waitAndAssert(t *testing.T, timeout time.Duration, f func(*testing.T) bool) { @@ -336,7 +336,7 @@ func TestConfigInspect(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -344,11 +344,11 @@ func TestConfigInspect(t *testing.T) { configID := createConfig(ctx, t, client, testName, []byte("TESTINGDATA"), nil) insp, body, err := client.ConfigInspectWithRaw(ctx, configID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Name, testName) + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Name, testName)) var config swarmtypes.Config err = json.Unmarshal(body, &config) - require.NoError(t, err) - assert.Equal(t, config, insp) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(config, insp)) } diff --git a/integration/container/copy_test.go b/integration/container/copy_test.go index 43dc31f2f2..766c0a1762 100644 --- a/integration/container/copy_test.go +++ b/integration/container/copy_test.go @@ -9,8 +9,9 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/require" ) func TestCopyFromContainerPathDoesNotExist(t *testing.T) { @@ -21,7 +22,7 @@ func TestCopyFromContainerPathDoesNotExist(t *testing.T) { cid := container.Create(t, ctx, apiclient) _, _, err := apiclient.CopyFromContainer(ctx, cid, "/dne") - require.True(t, client.IsErrNotFound(err)) + assert.Assert(t, client.IsErrNotFound(err)) expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") testutil.ErrorContains(t, err, expected) } @@ -35,7 +36,7 @@ func TestCopyFromContainerPathIsNotDir(t *testing.T) { cid := container.Create(t, ctx, apiclient) _, _, err := apiclient.CopyFromContainer(ctx, cid, "/etc/passwd/") - require.Contains(t, err.Error(), "not a directory") + assert.Assert(t, is.Contains(err.Error(), "not a directory")) } func TestCopyToContainerPathDoesNotExist(t *testing.T) { @@ -47,7 +48,7 @@ func TestCopyToContainerPathDoesNotExist(t *testing.T) { cid := container.Create(t, ctx, apiclient) err := apiclient.CopyToContainer(ctx, cid, "/dne", nil, types.CopyToContainerOptions{}) - require.True(t, client.IsErrNotFound(err)) + assert.Assert(t, client.IsErrNotFound(err)) expected := fmt.Sprintf("No such container:path: %s:%s", cid, "/dne") testutil.ErrorContains(t, err, expected) } @@ -61,5 +62,5 @@ func TestCopyToContainerPathIsNotDir(t *testing.T) { cid := container.Create(t, ctx, apiclient) err := apiclient.CopyToContainer(ctx, cid, "/etc/passwd/", nil, types.CopyToContainerOptions{}) - require.Contains(t, err.Error(), "not a directory") + assert.Assert(t, is.Contains(err.Error(), "not a directory")) } diff --git a/integration/container/daemon_linux_test.go b/integration/container/daemon_linux_test.go index 5077770f53..c2920502e3 100644 --- a/integration/container/daemon_linux_test.go +++ b/integration/container/daemon_linux_test.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration-cli/daemon" "github.com/docker/docker/integration/internal/container" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" "golang.org/x/sys/unix" ) @@ -35,7 +35,7 @@ func TestContainerStartOnDaemonRestart(t *testing.T) { defer d.Stop(t) client, err := d.NewClient() - assert.NoError(t, err, "error creating client") + assert.Check(t, err, "error creating client") ctx := context.Background() @@ -43,36 +43,36 @@ func TestContainerStartOnDaemonRestart(t *testing.T) { defer client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{Force: true}) err = client.ContainerStart(ctx, cID, types.ContainerStartOptions{}) - assert.NoError(t, err, "error starting test container") + assert.Check(t, err, "error starting test container") inspect, err := client.ContainerInspect(ctx, cID) - assert.NoError(t, err, "error getting inspect data") + assert.Check(t, err, "error getting inspect data") ppid := getContainerdShimPid(t, inspect) err = d.Kill() - assert.NoError(t, err, "failed to kill test daemon") + assert.Check(t, err, "failed to kill test daemon") err = unix.Kill(inspect.State.Pid, unix.SIGKILL) - assert.NoError(t, err, "failed to kill container process") + assert.Check(t, err, "failed to kill container process") err = unix.Kill(ppid, unix.SIGKILL) - assert.NoError(t, err, "failed to kill containerd-shim") + assert.Check(t, err, "failed to kill containerd-shim") d.Start(t, "--iptables=false") err = client.ContainerStart(ctx, cID, types.ContainerStartOptions{}) - assert.NoError(t, err, "failed to start test container") + assert.Check(t, err, "failed to start test container") } func getContainerdShimPid(t *testing.T, c types.ContainerJSON) int { statB, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/stat", c.State.Pid)) - assert.NoError(t, err, "error looking up containerd-shim pid") + assert.Check(t, err, "error looking up containerd-shim pid") // ppid is the 4th entry in `/proc/pid/stat` ppid, err := strconv.Atoi(strings.Fields(string(statB))[3]) - assert.NoError(t, err, "error converting ppid field to int") + assert.Check(t, err, "error converting ppid field to int") - assert.NotEqual(t, ppid, 1, "got unexpected ppid") + assert.Check(t, ppid != 1, "got unexpected ppid") return ppid } diff --git a/integration/container/diff_test.go b/integration/container/diff_test.go index de5ff4e21a..1cc63ebdde 100644 --- a/integration/container/diff_test.go +++ b/integration/container/diff_test.go @@ -9,9 +9,9 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/archive" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestDiff(t *testing.T) { @@ -38,6 +38,6 @@ func TestDiff(t *testing.T) { } items, err := client.ContainerDiff(ctx, cID) - require.NoError(t, err) - assert.Equal(t, expected, items) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(expected, items)) } diff --git a/integration/container/exec_test.go b/integration/container/exec_test.go index 06835678f0..1b710432d1 100644 --- a/integration/container/exec_test.go +++ b/integration/container/exec_test.go @@ -9,7 +9,8 @@ import ( "github.com/docker/docker/api/types/strslice" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestExec(t *testing.T) { @@ -27,7 +28,7 @@ func TestExec(t *testing.T) { Cmd: strslice.StrSlice([]string{"sh", "-c", "env"}), }, ) - require.NoError(t, err) + assert.NilError(t, err) resp, err := client.ContainerExecAttach(ctx, id.ID, types.ExecStartCheck{ @@ -35,12 +36,12 @@ func TestExec(t *testing.T) { Tty: false, }, ) - require.NoError(t, err) + assert.NilError(t, err) defer resp.Close() r, err := ioutil.ReadAll(resp.Reader) - require.NoError(t, err) + assert.NilError(t, err) out := string(r) - require.NoError(t, err) - require.Contains(t, out, "PWD=/tmp", "exec command not running in expected /tmp working directory") - require.Contains(t, out, "FOO=BAR", "exec command not running with expected environment variable FOO") + assert.NilError(t, err) + assert.Assert(t, is.Contains(out, "PWD=/tmp"), "exec command not running in expected /tmp working directory") + assert.Assert(t, is.Contains(out, "FOO=BAR"), "exec command not running with expected environment variable FOO") } diff --git a/integration/container/export_test.go b/integration/container/export_test.go index 8f846b5a29..f7f0295ce5 100644 --- a/integration/container/export_test.go +++ b/integration/container/export_test.go @@ -13,10 +13,10 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/jsonmessage" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) // export an image and try to import it into a new one @@ -32,12 +32,12 @@ func TestExportContainerAndImportImage(t *testing.T) { reference := "repo/testexp:v1" exportResp, err := client.ContainerExport(ctx, cID) - require.NoError(t, err) + assert.NilError(t, err) importResp, err := client.ImageImport(ctx, types.ImageImportSource{ Source: exportResp, SourceName: "-", }, reference, types.ImageImportOptions{}) - require.NoError(t, err) + assert.NilError(t, err) // If the import is successfully, then the message output should contain // the image ID and match with the output from `docker images`. @@ -45,13 +45,13 @@ func TestExportContainerAndImportImage(t *testing.T) { dec := json.NewDecoder(importResp) var jm jsonmessage.JSONMessage err = dec.Decode(&jm) - require.NoError(t, err) + assert.NilError(t, err) images, err := client.ImageList(ctx, types.ImageListOptions{ Filters: filters.NewArgs(filters.Arg("reference", reference)), }) - require.NoError(t, err) - assert.Equal(t, jm.Status, images[0].ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(jm.Status, images[0].ID)) } // TestExportContainerAfterDaemonRestart checks that a container @@ -64,7 +64,7 @@ func TestExportContainerAfterDaemonRestart(t *testing.T) { d := daemon.New(t, "", "dockerd", daemon.Config{}) client, err := d.NewClient() - require.NoError(t, err) + assert.NilError(t, err) d.StartWithBusybox(t) defer d.Stop(t) @@ -75,10 +75,10 @@ func TestExportContainerAfterDaemonRestart(t *testing.T) { Cmd: []string{"top"}, } ctr, err := client.ContainerCreate(ctx, &cfg, nil, nil, "") - require.NoError(t, err) + assert.NilError(t, err) d.Restart(t) _, err = client.ContainerExport(ctx, ctr.ID) - assert.NoError(t, err) + assert.NilError(t, err) } diff --git a/integration/container/inspect_test.go b/integration/container/inspect_test.go index c7ea23b517..03b9e45319 100644 --- a/integration/container/inspect_test.go +++ b/integration/container/inspect_test.go @@ -9,10 +9,10 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestInspectCpusetInConfigPre120(t *testing.T) { @@ -33,16 +33,16 @@ func TestInspectCpusetInConfigPre120(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, name, "exited"), poll.WithDelay(100*time.Millisecond)) _, body, err := client.ContainerInspectWithRaw(ctx, name, false) - require.NoError(t, err) + assert.NilError(t, err) var inspectJSON map[string]interface{} err = json.Unmarshal(body, &inspectJSON) - require.NoError(t, err, "unable to unmarshal body for version 1.19: %s", err) + assert.NilError(t, err, "unable to unmarshal body for version 1.19: %s", err) config, ok := inspectJSON["Config"] - assert.Equal(t, true, ok, "Unable to find 'Config'") + assert.Check(t, is.Equal(true, ok), "Unable to find 'Config'") cfg := config.(map[string]interface{}) _, ok = cfg["Cpuset"] - assert.Equal(t, true, ok, "API version 1.19 expected to include Cpuset in 'Config'") + assert.Check(t, is.Equal(true, ok), "API version 1.19 expected to include Cpuset in 'Config'") } diff --git a/integration/container/kill_test.go b/integration/container/kill_test.go index 5fae912671..4df28966f0 100644 --- a/integration/container/kill_test.go +++ b/integration/container/kill_test.go @@ -9,10 +9,10 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestKillContainerInvalidSignal(t *testing.T) { @@ -22,11 +22,11 @@ func TestKillContainerInvalidSignal(t *testing.T) { id := container.Run(t, ctx, client) err := client.ContainerKill(ctx, id, "0") - require.EqualError(t, err, "Error response from daemon: Invalid signal: 0") + assert.Error(t, err, "Error response from daemon: Invalid signal: 0") poll.WaitOn(t, container.IsInState(ctx, client, id, "running"), poll.WithDelay(100*time.Millisecond)) err = client.ContainerKill(ctx, id, "SIG42") - require.EqualError(t, err, "Error response from daemon: Invalid signal: SIG42") + assert.Error(t, err, "Error response from daemon: Invalid signal: SIG42") poll.WaitOn(t, container.IsInState(ctx, client, id, "running"), poll.WithDelay(100*time.Millisecond)) } @@ -62,7 +62,7 @@ func TestKillContainer(t *testing.T) { ctx := context.Background() id := container.Run(t, ctx, client) err := client.ContainerKill(ctx, id, tc.signal) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, container.IsInState(ctx, client, id, tc.status), poll.WithDelay(100*time.Millisecond)) }) @@ -102,7 +102,7 @@ func TestKillWithStopSignalAndRestartPolicies(t *testing.T) { } }) err := client.ContainerKill(ctx, id, "TERM") - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, container.IsInState(ctx, client, id, tc.status), poll.WithDelay(100*time.Millisecond)) }) @@ -116,8 +116,8 @@ func TestKillStoppedContainer(t *testing.T) { client := request.NewAPIClient(t) id := container.Create(t, ctx, client) err := client.ContainerKill(ctx, id, "SIGKILL") - require.Error(t, err) - require.Contains(t, err.Error(), "is not running") + assert.Assert(t, is.ErrorContains(err, "")) + assert.Assert(t, is.Contains(err.Error(), "is not running")) } func TestKillStoppedContainerAPIPre120(t *testing.T) { @@ -127,7 +127,7 @@ func TestKillStoppedContainerAPIPre120(t *testing.T) { client := request.NewAPIClient(t, client.WithVersion("1.19")) id := container.Create(t, ctx, client) err := client.ContainerKill(ctx, id, "SIGKILL") - require.NoError(t, err) + assert.NilError(t, err) } func TestKillDifferentUserContainer(t *testing.T) { @@ -144,7 +144,7 @@ func TestKillDifferentUserContainer(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, id, "running"), poll.WithDelay(100*time.Millisecond)) err := client.ContainerKill(ctx, id, "SIGKILL") - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, container.IsInState(ctx, client, id, "exited"), poll.WithDelay(100*time.Millisecond)) } @@ -162,8 +162,8 @@ func TestInspectOomKilledTrue(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, true, inspect.State.OOMKilled) + assert.NilError(t, err) + assert.Check(t, is.Equal(true, inspect.State.OOMKilled)) } func TestInspectOomKilledFalse(t *testing.T) { @@ -178,6 +178,6 @@ func TestInspectOomKilledFalse(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, false, inspect.State.OOMKilled) + assert.NilError(t, err) + assert.Check(t, is.Equal(false, inspect.State.OOMKilled)) } diff --git a/integration/container/links_linux_test.go b/integration/container/links_linux_test.go index c844c4916f..ed5966bc7b 100644 --- a/integration/container/links_linux_test.go +++ b/integration/container/links_linux_test.go @@ -10,9 +10,9 @@ import ( "github.com/docker/docker/api/types/filters" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestLinksEtcHostsContentMatch(t *testing.T) { @@ -27,11 +27,11 @@ func TestLinksEtcHostsContentMatch(t *testing.T) { cID := container.Run(t, ctx, client, container.WithNetworkMode("host")) res, err := container.Exec(ctx, client, cID, []string{"cat", "/etc/hosts"}) - require.NoError(t, err) - require.Empty(t, res.Stderr()) - require.Equal(t, 0, res.ExitCode) + assert.NilError(t, err) + assert.Assert(t, is.Len(res.Stderr(), 0)) + assert.Equal(t, 0, res.ExitCode) - assert.Equal(t, string(hosts), res.Stdout()) + assert.Check(t, is.Equal(string(hosts), res.Stdout())) } func TestLinksContainerNames(t *testing.T) { @@ -49,7 +49,7 @@ func TestLinksContainerNames(t *testing.T) { containers, err := client.ContainerList(ctx, types.ContainerListOptions{ Filters: f, }) - require.NoError(t, err) - assert.Equal(t, 1, len(containers)) - assert.Equal(t, []string{"/first", "/second/first"}, containers[0].Names) + assert.NilError(t, err) + assert.Check(t, is.Equal(1, len(containers))) + assert.Check(t, is.DeepEqual([]string{"/first", "/second/first"}, containers[0].Names)) } diff --git a/integration/container/logs_test.go b/integration/container/logs_test.go index bae4315272..9f536742b9 100644 --- a/integration/container/logs_test.go +++ b/integration/container/logs_test.go @@ -9,7 +9,7 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/stdcopy" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" ) // Regression test for #35370 @@ -25,8 +25,8 @@ func TestLogsFollowTailEmpty(t *testing.T) { if logs != nil { defer logs.Close() } - assert.NoError(t, err) + assert.Check(t, err) _, err = stdcopy.StdCopy(ioutil.Discard, ioutil.Discard, logs) - assert.NoError(t, err) + assert.Check(t, err) } diff --git a/integration/container/mounts_linux_test.go b/integration/container/mounts_linux_test.go index c36dd2761c..e15786f8a6 100644 --- a/integration/container/mounts_linux_test.go +++ b/integration/container/mounts_linux_test.go @@ -16,10 +16,10 @@ import ( "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/stdcopy" "github.com/docker/docker/pkg/system" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestContainerShmNoLeak(t *testing.T) { @@ -130,14 +130,14 @@ func TestContainerNetworkMountsNoChown(t *testing.T) { } cli, err := client.NewEnvClient() - require.NoError(t, err) + assert.NilError(t, err) defer cli.Close() ctrCreate, err := cli.ContainerCreate(ctx, &config, &hostConfig, &network.NetworkingConfig{}, "") - require.NoError(t, err) + assert.NilError(t, err) // container will exit immediately because of no tty, but we only need the start sequence to test the condition err = cli.ContainerStart(ctx, ctrCreate.ID, types.ContainerStartOptions{}) - require.NoError(t, err) + assert.NilError(t, err) // Check that host-located bind mount network file did not change ownership when the container was started // Note: If the user specifies a mountpath from the host, we should not be @@ -150,8 +150,8 @@ func TestContainerNetworkMountsNoChown(t *testing.T) { // same line--we don't chown host file content. // See GitHub PR 34224 for details. statT, err := system.Stat(tmpNWFileMount) - require.NoError(t, err) - assert.Equal(t, uint32(0), statT.UID(), "bind mounted network file should not change ownership from root") + assert.NilError(t, err) + assert.Check(t, is.Equal(uint32(0), statT.UID()), "bind mounted network file should not change ownership from root") } func TestMountDaemonRoot(t *testing.T) { diff --git a/integration/container/nat_test.go b/integration/container/nat_test.go index 293ba9bba6..5574db779e 100644 --- a/integration/container/nat_test.go +++ b/integration/container/nat_test.go @@ -15,10 +15,10 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/go-connections/nat" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestNetworkNat(t *testing.T) { @@ -31,12 +31,12 @@ func TestNetworkNat(t *testing.T) { endpoint := getExternalAddress(t) conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", endpoint.String(), 8080)) - require.NoError(t, err) + assert.NilError(t, err) defer conn.Close() data, err := ioutil.ReadAll(conn) - require.NoError(t, err) - assert.Equal(t, msg, strings.TrimSpace(string(data))) + assert.NilError(t, err) + assert.Check(t, is.Equal(msg, strings.TrimSpace(string(data)))) } func TestNetworkLocalhostTCPNat(t *testing.T) { @@ -48,12 +48,12 @@ func TestNetworkLocalhostTCPNat(t *testing.T) { startServerContainer(t, msg, 8081) conn, err := net.Dial("tcp", "localhost:8081") - require.NoError(t, err) + assert.NilError(t, err) defer conn.Close() data, err := ioutil.ReadAll(conn) - require.NoError(t, err) - assert.Equal(t, msg, strings.TrimSpace(string(data))) + assert.NilError(t, err) + assert.Check(t, is.Equal(msg, strings.TrimSpace(string(data)))) } func TestNetworkLoopbackNat(t *testing.T) { @@ -74,14 +74,14 @@ func TestNetworkLoopbackNat(t *testing.T) { body, err := client.ContainerLogs(ctx, cID, types.ContainerLogsOptions{ ShowStdout: true, }) - require.NoError(t, err) + assert.NilError(t, err) defer body.Close() var b bytes.Buffer _, err = io.Copy(&b, body) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, msg, strings.TrimSpace(b.String())) + assert.Check(t, is.Equal(msg, strings.TrimSpace(b.String()))) } func startServerContainer(t *testing.T, msg string, port int) string { @@ -108,11 +108,11 @@ func getExternalAddress(t *testing.T) net.IP { skip.If(t, err != nil, "Test not running with `make test-integration`. Interface eth0 not found: %s", err) ifaceAddrs, err := iface.Addrs() - require.NoError(t, err) - assert.NotEqual(t, 0, len(ifaceAddrs)) + assert.NilError(t, err) + assert.Check(t, 0 != len(ifaceAddrs)) ifaceIP, _, err := net.ParseCIDR(ifaceAddrs[0].String()) - require.NoError(t, err) + assert.NilError(t, err) return ifaceIP } diff --git a/integration/container/pause_test.go b/integration/container/pause_test.go index bf9f9c3d8f..dd8356f853 100644 --- a/integration/container/pause_test.go +++ b/integration/container/pause_test.go @@ -12,10 +12,10 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestPause(t *testing.T) { @@ -31,14 +31,14 @@ func TestPause(t *testing.T) { since := request.DaemonUnixTime(ctx, t, client, testEnv) err := client.ContainerPause(ctx, cID) - require.NoError(t, err) + assert.NilError(t, err) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, true, inspect.State.Paused) + assert.NilError(t, err) + assert.Check(t, is.Equal(true, inspect.State.Paused)) err = client.ContainerUnpause(ctx, cID) - require.NoError(t, err) + assert.NilError(t, err) until := request.DaemonUnixTime(ctx, t, client, testEnv) @@ -47,7 +47,7 @@ func TestPause(t *testing.T) { Until: until, Filters: filters.NewArgs(filters.Arg("container", cID)), }) - assert.Equal(t, []string{"pause", "unpause"}, getEventActions(t, messages, errs)) + assert.Check(t, is.DeepEqual([]string{"pause", "unpause"}, getEventActions(t, messages, errs))) } func TestPauseFailsOnWindowsServerContainers(t *testing.T) { @@ -75,10 +75,10 @@ func TestPauseStopPausedContainer(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) err := client.ContainerPause(ctx, cID) - require.NoError(t, err) + assert.NilError(t, err) err = client.ContainerStop(ctx, cID, nil) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, container.IsStopped(ctx, client, cID), poll.WithDelay(100*time.Millisecond)) } @@ -88,7 +88,7 @@ func getEventActions(t *testing.T, messages <-chan events.Message, errs <-chan e for { select { case err := <-errs: - assert.True(t, err == nil || err == io.EOF) + assert.Check(t, err == nil || err == io.EOF) return actions case e := <-messages: actions = append(actions, e.Status) diff --git a/integration/container/ps_test.go b/integration/container/ps_test.go index 358276b36a..45bcaca239 100644 --- a/integration/container/ps_test.go +++ b/integration/container/ps_test.go @@ -8,8 +8,8 @@ import ( "github.com/docker/docker/api/types/filters" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestPsFilter(t *testing.T) { @@ -35,8 +35,8 @@ func TestPsFilter(t *testing.T) { All: true, Filters: f1, }) - require.NoError(t, err) - assert.Contains(t, containerIDs(q1), next) + assert.NilError(t, err) + assert.Check(t, is.Contains(containerIDs(q1), next)) f2 := filters.NewArgs() f2.Add("before", "top") @@ -44,6 +44,6 @@ func TestPsFilter(t *testing.T) { All: true, Filters: f2, }) - require.NoError(t, err) - assert.Contains(t, containerIDs(q2), prev) + assert.NilError(t, err) + assert.Check(t, is.Contains(containerIDs(q2), prev)) } diff --git a/integration/container/remove_test.go b/integration/container/remove_test.go index 98aacdd205..bbc521b059 100644 --- a/integration/container/remove_test.go +++ b/integration/container/remove_test.go @@ -11,11 +11,11 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/fs" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func getPrefixAndSlashFromDaemonPlatform() (prefix, slash string) { @@ -42,12 +42,12 @@ func TestRemoveContainerWithRemovedVolume(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) err := os.RemoveAll(tempDir.Path()) - require.NoError(t, err) + assert.NilError(t, err) err = client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{ RemoveVolumes: true, }) - require.NoError(t, err) + assert.NilError(t, err) _, _, err = client.ContainerInspectWithRaw(ctx, cID, true) testutil.ErrorContains(t, err, "No such container") @@ -65,18 +65,18 @@ func TestRemoveContainerWithVolume(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) insp, _, err := client.ContainerInspectWithRaw(ctx, cID, true) - require.NoError(t, err) - assert.Equal(t, 1, len(insp.Mounts)) + assert.NilError(t, err) + assert.Check(t, is.Equal(1, len(insp.Mounts))) volName := insp.Mounts[0].Name err = client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{ RemoveVolumes: true, }) - require.NoError(t, err) + assert.NilError(t, err) volumes, err := client.VolumeList(ctx, filters.NewArgs(filters.Arg("name", volName))) - require.NoError(t, err) - assert.Equal(t, 0, len(volumes.Volumes)) + assert.NilError(t, err) + assert.Check(t, is.Equal(0, len(volumes.Volumes))) } func TestRemoveContainerRunning(t *testing.T) { @@ -100,7 +100,7 @@ func TestRemoveContainerForceRemoveRunning(t *testing.T) { err := client.ContainerRemove(ctx, cID, types.ContainerRemoveOptions{ Force: true, }) - require.NoError(t, err) + assert.NilError(t, err) } func TestRemoveInvalidContainer(t *testing.T) { diff --git a/integration/container/rename_test.go b/integration/container/rename_test.go index 3567aee1f5..a27fd78acc 100644 --- a/integration/container/rename_test.go +++ b/integration/container/rename_test.go @@ -11,10 +11,10 @@ import ( "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" "github.com/docker/docker/pkg/stringid" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) // This test simulates the scenario mentioned in #31392: @@ -30,18 +30,18 @@ func TestRenameLinkedContainer(t *testing.T) { bID := container.Run(t, ctx, client, container.WithName("b0"), container.WithLinks("a0")) err := client.ContainerRename(ctx, aID, "a1") - require.NoError(t, err) + assert.NilError(t, err) container.Run(t, ctx, client, container.WithName("a0")) err = client.ContainerRemove(ctx, bID, types.ContainerRemoveOptions{Force: true}) - require.NoError(t, err) + assert.NilError(t, err) bID = container.Run(t, ctx, client, container.WithName("b0"), container.WithLinks("a0")) inspect, err := client.ContainerInspect(ctx, bID) - require.NoError(t, err) - assert.Equal(t, []string{"/a0:/b0/a0"}, inspect.HostConfig.Links) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual([]string{"/a0:/b0/a0"}, inspect.HostConfig.Links)) } func TestRenameStoppedContainer(t *testing.T) { @@ -54,16 +54,16 @@ func TestRenameStoppedContainer(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, "/"+oldName, inspect.Name) + assert.NilError(t, err) + assert.Check(t, is.Equal("/"+oldName, inspect.Name)) newName := "new_name" + stringid.GenerateNonCryptoID() err = client.ContainerRename(ctx, oldName, newName) - require.NoError(t, err) + assert.NilError(t, err) inspect, err = client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, "/"+newName, inspect.Name) + assert.NilError(t, err) + assert.Check(t, is.Equal("/"+newName, inspect.Name)) } func TestRenameRunningContainerAndReuse(t *testing.T) { @@ -77,11 +77,11 @@ func TestRenameRunningContainerAndReuse(t *testing.T) { newName := "new_name" + stringid.GenerateNonCryptoID() err := client.ContainerRename(ctx, oldName, newName) - require.NoError(t, err) + assert.NilError(t, err) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, "/"+newName, inspect.Name) + assert.NilError(t, err) + assert.Check(t, is.Equal("/"+newName, inspect.Name)) _, err = client.ContainerInspect(ctx, oldName) testutil.ErrorContains(t, err, "No such container: "+oldName) @@ -90,8 +90,8 @@ func TestRenameRunningContainerAndReuse(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) inspect, err = client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, "/"+oldName, inspect.Name) + assert.NilError(t, err) + assert.Check(t, is.Equal("/"+oldName, inspect.Name)) } func TestRenameInvalidName(t *testing.T) { @@ -107,8 +107,8 @@ func TestRenameInvalidName(t *testing.T) { testutil.ErrorContains(t, err, "Invalid container name") inspect, err := client.ContainerInspect(ctx, oldName) - require.NoError(t, err) - assert.Equal(t, cID, inspect.ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(cID, inspect.ID)) } // Test case for GitHub issue 22466 @@ -124,7 +124,7 @@ func TestRenameAnonymousContainer(t *testing.T) { client := request.NewAPIClient(t) _, err := client.NetworkCreate(ctx, "network1", types.NetworkCreate{}) - require.NoError(t, err) + assert.NilError(t, err) cID := container.Run(t, ctx, client, func(c *container.TestContainerConfig) { c.NetworkingConfig.EndpointsConfig = map[string]*network.EndpointSettings{ "network1": {}, @@ -132,13 +132,13 @@ func TestRenameAnonymousContainer(t *testing.T) { c.HostConfig.NetworkMode = "network1" }) err = client.ContainerRename(ctx, cID, "container1") - require.NoError(t, err) + assert.NilError(t, err) // Stop/Start the container to get registered // FIXME(vdemeester) this is a really weird behavior as it fails otherwise err = client.ContainerStop(ctx, "container1", nil) - require.NoError(t, err) + assert.NilError(t, err) err = client.ContainerStart(ctx, "container1", types.ContainerStartOptions{}) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) @@ -155,8 +155,8 @@ func TestRenameAnonymousContainer(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond)) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, 0, inspect.State.ExitCode, "container %s exited with the wrong exitcode: %+v", cID, inspect) + assert.NilError(t, err) + assert.Check(t, is.Equal(0, inspect.State.ExitCode), "container %s exited with the wrong exitcode: %+v", cID, inspect) } // TODO: should be a unit test @@ -192,9 +192,9 @@ func TestRenameContainerWithLinkedContainer(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, app1ID, "running"), poll.WithDelay(100*time.Millisecond)) err := client.ContainerRename(ctx, "app1", "app2") - require.NoError(t, err) + assert.NilError(t, err) inspect, err := client.ContainerInspect(ctx, "app2/mysql") - require.NoError(t, err) - assert.Equal(t, db1ID, inspect.ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(db1ID, inspect.ID)) } diff --git a/integration/container/resize_test.go b/integration/container/resize_test.go index 18438ea825..149ac3afd1 100644 --- a/integration/container/resize_test.go +++ b/integration/container/resize_test.go @@ -11,9 +11,9 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestResize(t *testing.T) { @@ -29,7 +29,7 @@ func TestResize(t *testing.T) { Height: 40, Width: 40, }) - require.NoError(t, err) + assert.NilError(t, err) } func TestResizeWithInvalidSize(t *testing.T) { @@ -43,8 +43,8 @@ func TestResizeWithInvalidSize(t *testing.T) { endpoint := "/containers/" + cID + "/resize?h=foo&w=bar" res, _, err := req.Post(endpoint) - require.NoError(t, err) - assert.Equal(t, http.StatusBadRequest, res.StatusCode) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(http.StatusBadRequest, res.StatusCode)) } func TestResizeWhenContainerNotStarted(t *testing.T) { diff --git a/integration/container/stats_test.go b/integration/container/stats_test.go index 9c0b948498..d10808f8f7 100644 --- a/integration/container/stats_test.go +++ b/integration/container/stats_test.go @@ -10,10 +10,10 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestStats(t *testing.T) { @@ -24,20 +24,20 @@ func TestStats(t *testing.T) { ctx := context.Background() info, err := client.Info(ctx) - require.NoError(t, err) + assert.NilError(t, err) cID := container.Run(t, ctx, client) poll.WaitOn(t, container.IsInState(ctx, client, cID, "running"), poll.WithDelay(100*time.Millisecond)) resp, err := client.ContainerStats(ctx, cID, false) - require.NoError(t, err) + assert.NilError(t, err) defer resp.Body.Close() var v *types.Stats err = json.NewDecoder(resp.Body).Decode(&v) - require.NoError(t, err) - assert.Equal(t, int64(v.MemoryStats.Limit), info.MemTotal) + assert.NilError(t, err) + assert.Check(t, is.Equal(int64(v.MemoryStats.Limit), info.MemTotal)) err = json.NewDecoder(resp.Body).Decode(&v) - require.Error(t, err, io.EOF) + assert.Assert(t, is.ErrorContains(err, ""), io.EOF) } diff --git a/integration/container/stop_test.go b/integration/container/stop_test.go index 4ecd06dd2c..2cc9b82512 100644 --- a/integration/container/stop_test.go +++ b/integration/container/stop_test.go @@ -10,10 +10,10 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/icmd" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/require" ) func TestStopContainerWithRestartPolicyAlways(t *testing.T) { @@ -34,7 +34,7 @@ func TestStopContainerWithRestartPolicyAlways(t *testing.T) { for _, name := range names { err := client.ContainerStop(ctx, name, nil) - require.NoError(t, err) + assert.NilError(t, err) } for _, name := range names { @@ -54,7 +54,7 @@ func TestDeleteDevicemapper(t *testing.T) { poll.WaitOn(t, container.IsStopped(ctx, client, id), poll.WithDelay(100*time.Millisecond)) inspect, err := client.ContainerInspect(ctx, id) - require.NoError(t, err) + assert.NilError(t, err) deviceID := inspect.GraphDriver.Data["DeviceId"] @@ -67,5 +67,5 @@ func TestDeleteDevicemapper(t *testing.T) { result.Assert(t, icmd.Success) err = client.ContainerRemove(ctx, id, types.ContainerRemoveOptions{}) - require.NoError(t, err) + assert.NilError(t, err) } diff --git a/integration/container/update_linux_test.go b/integration/container/update_linux_test.go index c898dc1d3b..a08417ea24 100644 --- a/integration/container/update_linux_test.go +++ b/integration/container/update_linux_test.go @@ -10,10 +10,10 @@ import ( containertypes "github.com/docker/docker/api/types/container" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestUpdateMemory(t *testing.T) { @@ -44,26 +44,26 @@ func TestUpdateMemory(t *testing.T) { MemorySwap: setMemorySwap, }, }) - require.NoError(t, err) + assert.NilError(t, err) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, setMemory, inspect.HostConfig.Memory) - assert.Equal(t, setMemorySwap, inspect.HostConfig.MemorySwap) + assert.NilError(t, err) + assert.Check(t, is.Equal(setMemory, inspect.HostConfig.Memory)) + assert.Check(t, is.Equal(setMemorySwap, inspect.HostConfig.MemorySwap)) res, err := container.Exec(ctx, client, cID, []string{"cat", "/sys/fs/cgroup/memory/memory.limit_in_bytes"}) - require.NoError(t, err) - require.Empty(t, res.Stderr()) - require.Equal(t, 0, res.ExitCode) - assert.Equal(t, strconv.FormatInt(setMemory, 10), strings.TrimSpace(res.Stdout())) + assert.NilError(t, err) + assert.Assert(t, is.Len(res.Stderr(), 0)) + assert.Equal(t, 0, res.ExitCode) + assert.Check(t, is.Equal(strconv.FormatInt(setMemory, 10), strings.TrimSpace(res.Stdout()))) res, err = container.Exec(ctx, client, cID, []string{"cat", "/sys/fs/cgroup/memory/memory.memsw.limit_in_bytes"}) - require.NoError(t, err) - require.Empty(t, res.Stderr()) - require.Equal(t, 0, res.ExitCode) - assert.Equal(t, strconv.FormatInt(setMemorySwap, 10), strings.TrimSpace(res.Stdout())) + assert.NilError(t, err) + assert.Assert(t, is.Len(res.Stderr(), 0)) + assert.Equal(t, 0, res.ExitCode) + assert.Check(t, is.Equal(strconv.FormatInt(setMemorySwap, 10), strings.TrimSpace(res.Stdout()))) } func TestUpdateCPUQuota(t *testing.T) { @@ -93,15 +93,15 @@ func TestUpdateCPUQuota(t *testing.T) { } inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, test.update, inspect.HostConfig.CPUQuota) + assert.NilError(t, err) + assert.Check(t, is.Equal(test.update, inspect.HostConfig.CPUQuota)) res, err := container.Exec(ctx, client, cID, []string{"/bin/cat", "/sys/fs/cgroup/cpu/cpu.cfs_quota_us"}) - require.NoError(t, err) - require.Empty(t, res.Stderr()) - require.Equal(t, 0, res.ExitCode) + assert.NilError(t, err) + assert.Assert(t, is.Len(res.Stderr(), 0)) + assert.Equal(t, 0, res.ExitCode) - assert.Equal(t, strconv.FormatInt(test.update, 10), strings.TrimSpace(res.Stdout())) + assert.Check(t, is.Equal(strconv.FormatInt(test.update, 10), strings.TrimSpace(res.Stdout()))) } } diff --git a/integration/container/update_test.go b/integration/container/update_test.go index 651e84cb22..03dcc635c6 100644 --- a/integration/container/update_test.go +++ b/integration/container/update_test.go @@ -9,9 +9,9 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestUpdateRestartPolicy(t *testing.T) { @@ -32,7 +32,7 @@ func TestUpdateRestartPolicy(t *testing.T) { MaximumRetryCount: 5, }, }) - require.NoError(t, err) + assert.NilError(t, err) timeout := 60 * time.Second if testEnv.OSType == "windows" { @@ -42,9 +42,9 @@ func TestUpdateRestartPolicy(t *testing.T) { poll.WaitOn(t, container.IsInState(ctx, client, cID, "exited"), poll.WithDelay(100*time.Millisecond), poll.WithTimeout(timeout)) inspect, err := client.ContainerInspect(ctx, cID) - require.NoError(t, err) - assert.Equal(t, inspect.RestartCount, 5) - assert.Equal(t, inspect.HostConfig.RestartPolicy.MaximumRetryCount, 5) + assert.NilError(t, err) + assert.Check(t, is.Equal(inspect.RestartCount, 5)) + assert.Check(t, is.Equal(inspect.HostConfig.RestartPolicy.MaximumRetryCount, 5)) } func TestUpdateRestartWithAutoRemove(t *testing.T) { diff --git a/integration/image/commit_test.go b/integration/image/commit_test.go index 39fc956db1..e13719b532 100644 --- a/integration/image/commit_test.go +++ b/integration/image/commit_test.go @@ -7,8 +7,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestCommitInheritsEnv(t *testing.T) { @@ -22,13 +22,13 @@ func TestCommitInheritsEnv(t *testing.T) { Changes: []string{"ENV PATH=/bin"}, Reference: "test-commit-image", }) - require.NoError(t, err) + assert.NilError(t, err) image1, _, err := client.ImageInspectWithRaw(ctx, commitResp1.ID) - require.NoError(t, err) + assert.NilError(t, err) expectedEnv1 := []string{"PATH=/bin"} - assert.Equal(t, expectedEnv1, image1.Config.Env) + assert.Check(t, is.DeepEqual(expectedEnv1, image1.Config.Env)) cID2 := container.Create(t, ctx, client, container.WithImage(image1.ID)) @@ -36,10 +36,10 @@ func TestCommitInheritsEnv(t *testing.T) { Changes: []string{"ENV PATH=/usr/bin:$PATH"}, Reference: "test-commit-image", }) - require.NoError(t, err) + assert.NilError(t, err) image2, _, err := client.ImageInspectWithRaw(ctx, commitResp2.ID) - require.NoError(t, err) + assert.NilError(t, err) expectedEnv2 := []string{"PATH=/usr/bin:/bin"} - assert.Equal(t, expectedEnv2, image2.Config.Env) + assert.Check(t, is.DeepEqual(expectedEnv2, image2.Config.Env)) } diff --git a/integration/image/remove_test.go b/integration/image/remove_test.go index 825724bd03..c89f6f7a03 100644 --- a/integration/image/remove_test.go +++ b/integration/image/remove_test.go @@ -8,8 +8,8 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestRemoveImageOrphaning(t *testing.T) { @@ -25,12 +25,12 @@ func TestRemoveImageOrphaning(t *testing.T) { Changes: []string{`ENTRYPOINT ["true"]`}, Reference: img, }) - require.NoError(t, err) + assert.NilError(t, err) // verifies that reference now points to first image resp, _, err := client.ImageInspectWithRaw(ctx, img) - require.NoError(t, err) - assert.Equal(t, resp.ID, commitResp1.ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(resp.ID, commitResp1.ID)) // Create a container from created image, and commit a small change with same reference name cID2 := container.Create(t, ctx, client, container.WithImage(img), container.WithCmd("")) @@ -38,21 +38,21 @@ func TestRemoveImageOrphaning(t *testing.T) { Changes: []string{`LABEL Maintainer="Integration Tests"`}, Reference: img, }) - require.NoError(t, err) + assert.NilError(t, err) // verifies that reference now points to second image resp, _, err = client.ImageInspectWithRaw(ctx, img) - require.NoError(t, err) - assert.Equal(t, resp.ID, commitResp2.ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(resp.ID, commitResp2.ID)) // try to remove the image, should not error out. _, err = client.ImageRemove(ctx, img, types.ImageRemoveOptions{}) - require.NoError(t, err) + assert.NilError(t, err) // check if the first image is still there resp, _, err = client.ImageInspectWithRaw(ctx, commitResp1.ID) - require.NoError(t, err) - assert.Equal(t, resp.ID, commitResp1.ID) + assert.NilError(t, err) + assert.Check(t, is.Equal(resp.ID, commitResp1.ID)) // check if the second image has been deleted _, _, err = client.ImageInspectWithRaw(ctx, commitResp2.ID) diff --git a/integration/internal/container/container.go b/integration/internal/container/container.go index 8d8fe28791..0c76571769 100644 --- a/integration/internal/container/container.go +++ b/integration/internal/container/container.go @@ -8,7 +8,7 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/network" "github.com/docker/docker/client" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // TestContainerConfig holds container configuration struct that @@ -37,7 +37,7 @@ func Create(t *testing.T, ctx context.Context, client client.APIClient, ops ...f } c, err := client.ContainerCreate(ctx, config.Config, config.HostConfig, config.NetworkingConfig, config.Name) - require.NoError(t, err) + assert.NilError(t, err) return c.ID } @@ -48,7 +48,7 @@ func Run(t *testing.T, ctx context.Context, client client.APIClient, ops ...func id := Create(t, ctx, client, ops...) err := client.ContainerStart(ctx, id, types.ContainerStartOptions{}) - require.NoError(t, err) + assert.NilError(t, err) return id } diff --git a/integration/internal/request/client.go b/integration/internal/request/client.go index 34e589ec86..07dc2e33c3 100644 --- a/integration/internal/request/client.go +++ b/integration/internal/request/client.go @@ -9,14 +9,14 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/internal/test/environment" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // NewAPIClient returns a docker API client configured from environment variables func NewAPIClient(t *testing.T, ops ...func(*client.Client) error) client.APIClient { ops = append([]func(*client.Client) error{client.FromEnv}, ops...) clt, err := client.NewClientWithOpts(ops...) - require.NoError(t, err) + assert.NilError(t, err) return clt } @@ -27,10 +27,10 @@ func DaemonTime(ctx context.Context, t *testing.T, client client.APIClient, test } info, err := client.Info(ctx) - require.NoError(t, err) + assert.NilError(t, err) dt, err := time.Parse(time.RFC3339Nano, info.SystemTime) - require.NoError(t, err, "invalid time format in GET /info response") + assert.NilError(t, err, "invalid time format in GET /info response") return dt } diff --git a/integration/internal/swarm/service.go b/integration/internal/swarm/service.go index a46b02e146..0ec4d5175e 100644 --- a/integration/internal/swarm/service.go +++ b/integration/internal/swarm/service.go @@ -11,7 +11,7 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/daemon" "github.com/docker/docker/internal/test/environment" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) const ( @@ -35,7 +35,7 @@ func NewSwarm(t *testing.T, testEnv *environment.Execution) *daemon.Swarm { args := []string{"--iptables=false", "--swarm-default-advertise-addr=lo"} d.StartWithBusybox(t, args...) - require.NoError(t, d.Init(swarmtypes.InitRequest{})) + assert.NilError(t, d.Init(swarmtypes.InitRequest{})) return d } @@ -52,7 +52,7 @@ func CreateService(t *testing.T, d *daemon.Swarm, opts ...ServiceSpecOpt) string client := GetClient(t, d) resp, err := client.ServiceCreate(context.Background(), spec, types.ServiceCreateOptions{}) - require.NoError(t, err, "error creating service") + assert.NilError(t, err, "error creating service") return resp.ID } @@ -126,7 +126,7 @@ func GetRunningTasks(t *testing.T, d *daemon.Swarm, serviceID string) []swarmtyp Filters: filterArgs, } tasks, err := client.TaskList(context.Background(), options) - require.NoError(t, err) + assert.NilError(t, err) return tasks } @@ -136,11 +136,11 @@ func ExecTask(t *testing.T, d *daemon.Swarm, task swarmtypes.Task, config types. ctx := context.Background() resp, err := client.ContainerExecCreate(ctx, task.Status.ContainerStatus.ContainerID, config) - require.NoError(t, err, "error creating exec") + assert.NilError(t, err, "error creating exec") startCheck := types.ExecStartCheck{} attach, err := client.ContainerExecAttach(ctx, resp.ID, startCheck) - require.NoError(t, err, "error attaching to exec") + assert.NilError(t, err, "error attaching to exec") return attach } @@ -153,6 +153,6 @@ func ensureContainerSpec(spec *swarmtypes.ServiceSpec) { // GetClient creates a new client for the passed in swarm daemon. func GetClient(t *testing.T, d *daemon.Swarm) client.APIClient { client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) return client } diff --git a/integration/network/delete_test.go b/integration/network/delete_test.go index 0877d8bc8c..e2af49de7e 100644 --- a/integration/network/delete_test.go +++ b/integration/network/delete_test.go @@ -6,8 +6,8 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func containsNetwork(nws []types.NetworkResource, nw types.NetworkCreateResponse) bool { @@ -29,18 +29,18 @@ func createAmbiguousNetworks(t *testing.T) (types.NetworkCreateResponse, types.N ctx := context.Background() testNet, err := client.NetworkCreate(ctx, "testNet", types.NetworkCreate{}) - require.NoError(t, err) + assert.NilError(t, err) idPrefixNet, err := client.NetworkCreate(ctx, testNet.ID[:12], types.NetworkCreate{}) - require.NoError(t, err) + assert.NilError(t, err) fullIDNet, err := client.NetworkCreate(ctx, testNet.ID, types.NetworkCreate{}) - require.NoError(t, err) + assert.NilError(t, err) nws, err := client.NetworkList(ctx, types.NetworkListOptions{}) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, true, containsNetwork(nws, testNet), "failed to create network testNet") - assert.Equal(t, true, containsNetwork(nws, idPrefixNet), "failed to create network idPrefixNet") - assert.Equal(t, true, containsNetwork(nws, fullIDNet), "failed to create network fullIDNet") + assert.Check(t, is.Equal(true, containsNetwork(nws, testNet)), "failed to create network testNet") + assert.Check(t, is.Equal(true, containsNetwork(nws, idPrefixNet)), "failed to create network idPrefixNet") + assert.Check(t, is.Equal(true, containsNetwork(nws, fullIDNet)), "failed to create network fullIDNet") return testNet, idPrefixNet, fullIDNet } @@ -56,17 +56,17 @@ func TestDockerNetworkDeletePreferID(t *testing.T) { // Delete the network using a prefix of the first network's ID as name. // This should the network name with the id-prefix, not the original network. err := client.NetworkRemove(ctx, testNet.ID[:12]) - require.NoError(t, err) + assert.NilError(t, err) // Delete the network using networkID. This should remove the original // network, not the network with the name equal to the networkID err = client.NetworkRemove(ctx, testNet.ID) - require.NoError(t, err) + assert.NilError(t, err) // networks "testNet" and "idPrefixNet" should be removed, but "fullIDNet" should still exist nws, err := client.NetworkList(ctx, types.NetworkListOptions{}) - require.NoError(t, err) - assert.Equal(t, false, containsNetwork(nws, testNet), "Network testNet not removed") - assert.Equal(t, false, containsNetwork(nws, idPrefixNet), "Network idPrefixNet not removed") - assert.Equal(t, true, containsNetwork(nws, fullIDNet), "Network fullIDNet not found") + assert.NilError(t, err) + assert.Check(t, is.Equal(false, containsNetwork(nws, testNet)), "Network testNet not removed") + assert.Check(t, is.Equal(false, containsNetwork(nws, idPrefixNet)), "Network idPrefixNet not removed") + assert.Check(t, is.Equal(true, containsNetwork(nws, fullIDNet)), "Network fullIDNet not found") } diff --git a/integration/network/inspect_test.go b/integration/network/inspect_test.go index df586224a1..3afdcf1ac4 100644 --- a/integration/network/inspect_test.go +++ b/integration/network/inspect_test.go @@ -11,8 +11,8 @@ import ( "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/daemon" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -24,7 +24,7 @@ func TestInspectNetwork(t *testing.T) { d := newSwarm(t) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) overlayName := "overlay1" networkCreate := types.NetworkCreate{ @@ -33,7 +33,7 @@ func TestInspectNetwork(t *testing.T) { } netResp, err := client.NetworkCreate(context.Background(), overlayName, networkCreate) - require.NoError(t, err) + assert.NilError(t, err) overlayID := netResp.ID var instances uint64 = 4 @@ -44,7 +44,7 @@ func TestInspectNetwork(t *testing.T) { serviceResp, err := client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) pollSettings := func(config *poll.Settings) { if runtime.GOARCH == "arm64" || runtime.GOARCH == "arm" { @@ -57,32 +57,32 @@ func TestInspectNetwork(t *testing.T) { poll.WaitOn(t, serviceRunningTasksCount(client, serviceID, instances), pollSettings) _, _, err = client.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{}) - require.NoError(t, err) + assert.NilError(t, err) // Test inspect verbose with full NetworkID networkVerbose, err := client.NetworkInspect(context.Background(), overlayID, types.NetworkInspectOptions{ Verbose: true, }) - require.NoError(t, err) - require.True(t, validNetworkVerbose(networkVerbose, serviceName, instances)) + assert.NilError(t, err) + assert.Assert(t, validNetworkVerbose(networkVerbose, serviceName, instances)) // Test inspect verbose with partial NetworkID networkVerbose, err = client.NetworkInspect(context.Background(), overlayID[0:11], types.NetworkInspectOptions{ Verbose: true, }) - require.NoError(t, err) - require.True(t, validNetworkVerbose(networkVerbose, serviceName, instances)) + assert.NilError(t, err) + assert.Assert(t, validNetworkVerbose(networkVerbose, serviceName, instances)) // Test inspect verbose with Network name and swarm scope networkVerbose, err = client.NetworkInspect(context.Background(), overlayName, types.NetworkInspectOptions{ Verbose: true, Scope: "swarm", }) - require.NoError(t, err) - require.True(t, validNetworkVerbose(networkVerbose, serviceName, instances)) + assert.NilError(t, err) + assert.Assert(t, validNetworkVerbose(networkVerbose, serviceName, instances)) err = client.ServiceRemove(context.Background(), serviceID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceID), pollSettings) poll.WaitOn(t, noTasks(client), pollSettings) @@ -90,19 +90,19 @@ func TestInspectNetwork(t *testing.T) { serviceResp, err = client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) serviceID2 := serviceResp.ID poll.WaitOn(t, serviceRunningTasksCount(client, serviceID2, instances), pollSettings) err = client.ServiceRemove(context.Background(), serviceID2) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceID2), pollSettings) poll.WaitOn(t, noTasks(client), pollSettings) err = client.NetworkRemove(context.Background(), overlayID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, networkIsRemoved(client, overlayID), poll.WithTimeout(1*time.Minute), poll.WithDelay(10*time.Second)) } @@ -122,7 +122,7 @@ func newSwarm(t *testing.T) *daemon.Swarm { args := []string{"--iptables=false", "--swarm-default-advertise-addr=lo"} d.StartWithBusybox(t, args...) - require.NoError(t, d.Init(swarm.InitRequest{})) + assert.NilError(t, d.Init(swarm.InitRequest{})) return d } diff --git a/integration/network/service_test.go b/integration/network/service_test.go index f1c0950988..87e1fe00fd 100644 --- a/integration/network/service_test.go +++ b/integration/network/service_test.go @@ -9,8 +9,8 @@ import ( "github.com/docker/docker/api/types/filters" "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -19,7 +19,7 @@ func TestServiceWithPredefinedNetwork(t *testing.T) { d := newSwarm(t) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) hostName := "host" var instances uint64 = 1 @@ -30,7 +30,7 @@ func TestServiceWithPredefinedNetwork(t *testing.T) { serviceResp, err := client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) pollSettings := func(config *poll.Settings) { if runtime.GOARCH == "arm64" || runtime.GOARCH == "arm" { @@ -101,10 +101,10 @@ func TestServiceWithIngressNetwork(t *testing.T) { poll.WaitOn(t, serviceRunningCount(client, serviceID, instances), pollSettings) _, _, err = client.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{}) - require.NoError(t, err) + assert.NilError(t, err) err = client.ServiceRemove(context.Background(), serviceID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceID), pollSettings) poll.WaitOn(t, noTasks(client), pollSettings) diff --git a/integration/plugin/authz/authz_plugin_test.go b/integration/plugin/authz/authz_plugin_test.go index 667fc3d3cc..5bca6c138d 100644 --- a/integration/plugin/authz/authz_plugin_test.go +++ b/integration/plugin/authz/authz_plugin_test.go @@ -24,8 +24,8 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/internal/test/environment" "github.com/docker/docker/pkg/authorization" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/require" ) const ( @@ -55,15 +55,15 @@ func setupTestV1(t *testing.T) func() { teardown := setupTest(t) err := os.MkdirAll("/etc/docker/plugins", 0755) - require.Nil(t, err) + assert.NilError(t, err) fileName := fmt.Sprintf("/etc/docker/plugins/%s.spec", testAuthZPlugin) err = ioutil.WriteFile(fileName, []byte(server.URL), 0644) - require.Nil(t, err) + assert.NilError(t, err) return func() { err := os.RemoveAll("/etc/docker/plugins") - require.Nil(t, err) + assert.NilError(t, err) teardown() ctrl = nil @@ -87,7 +87,7 @@ func TestAuthZPluginAllowRequest(t *testing.T) { d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin) client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -98,9 +98,9 @@ func TestAuthZPluginAllowRequest(t *testing.T) { assertURIRecorded(t, ctrl.requestsURIs, fmt.Sprintf("/containers/%s/start", cID)) _, err = client.ServerVersion(ctx) - require.Nil(t, err) - require.Equal(t, 1, ctrl.versionReqCount) - require.Equal(t, 1, ctrl.versionResCount) + assert.NilError(t, err) + assert.Equal(t, 1, ctrl.versionReqCount) + assert.Equal(t, 1, ctrl.versionResCount) } func TestAuthZPluginTLS(t *testing.T) { @@ -126,13 +126,13 @@ func TestAuthZPluginTLS(t *testing.T) { ctrl.resRes.Allow = true client, err := newTLSAPIClient(testDaemonHTTPSAddr, cacertPath, clientCertPath, clientKeyPath) - require.Nil(t, err) + assert.NilError(t, err) _, err = client.ServerVersion(context.Background()) - require.Nil(t, err) + assert.NilError(t, err) - require.Equal(t, "client", ctrl.reqUser) - require.Equal(t, "client", ctrl.resUser) + assert.Equal(t, "client", ctrl.reqUser) + assert.Equal(t, "client", ctrl.resUser) } func newTLSAPIClient(host, cacertPath, certPath, keyPath string) (client.APIClient, error) { @@ -153,16 +153,16 @@ func TestAuthZPluginDenyRequest(t *testing.T) { ctrl.reqRes.Msg = unauthorizedMessage client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Ensure command is blocked _, err = client.ServerVersion(context.Background()) - require.NotNil(t, err) - require.Equal(t, 1, ctrl.versionReqCount) - require.Equal(t, 0, ctrl.versionResCount) + assert.Assert(t, err != nil) + assert.Equal(t, 1, ctrl.versionReqCount) + assert.Equal(t, 0, ctrl.versionResCount) // Ensure unauthorized message appears in response - require.Equal(t, fmt.Sprintf("Error response from daemon: authorization denied by plugin %s: %s", testAuthZPlugin, unauthorizedMessage), err.Error()) + assert.Equal(t, fmt.Sprintf("Error response from daemon: authorization denied by plugin %s: %s", testAuthZPlugin, unauthorizedMessage), err.Error()) } // TestAuthZPluginAPIDenyResponse validates that when authorization @@ -174,17 +174,17 @@ func TestAuthZPluginAPIDenyResponse(t *testing.T) { ctrl.resRes.Msg = unauthorizedMessage daemonURL, err := url.Parse(d.Sock()) - require.Nil(t, err) + assert.NilError(t, err) conn, err := net.DialTimeout(daemonURL.Scheme, daemonURL.Path, time.Second*10) - require.Nil(t, err) + assert.NilError(t, err) client := httputil.NewClientConn(conn, nil) req, err := http.NewRequest("GET", "/version", nil) - require.Nil(t, err) + assert.NilError(t, err) resp, err := client.Do(req) - require.Nil(t, err) - require.Equal(t, http.StatusForbidden, resp.StatusCode) + assert.NilError(t, err) + assert.DeepEqual(t, http.StatusForbidden, resp.StatusCode) } func TestAuthZPluginDenyResponse(t *testing.T) { @@ -195,16 +195,16 @@ func TestAuthZPluginDenyResponse(t *testing.T) { ctrl.resRes.Msg = unauthorizedMessage client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Ensure command is blocked _, err = client.ServerVersion(context.Background()) - require.NotNil(t, err) - require.Equal(t, 1, ctrl.versionReqCount) - require.Equal(t, 1, ctrl.versionResCount) + assert.Assert(t, err != nil) + assert.Equal(t, 1, ctrl.versionReqCount) + assert.Equal(t, 1, ctrl.versionResCount) // Ensure unauthorized message appears in response - require.Equal(t, fmt.Sprintf("Error response from daemon: authorization denied by plugin %s: %s", testAuthZPlugin, unauthorizedMessage), err.Error()) + assert.Equal(t, fmt.Sprintf("Error response from daemon: authorization denied by plugin %s: %s", testAuthZPlugin, unauthorizedMessage), err.Error()) } // TestAuthZPluginAllowEventStream verifies event stream propagates @@ -218,7 +218,7 @@ func TestAuthZPluginAllowEventStream(t *testing.T) { d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin) client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -231,7 +231,7 @@ func TestAuthZPluginAllowEventStream(t *testing.T) { for i := 0; i < 100; i++ { c, err := client.ContainerInspect(ctx, cID) - require.Nil(t, err) + assert.NilError(t, err) if c.State.Running { break } @@ -258,7 +258,7 @@ func TestAuthZPluginAllowEventStream(t *testing.T) { if err == io.EOF { t.Fatal("premature end of event stream") } - require.Nil(t, err) + assert.NilError(t, err) case <-time.After(30 * time.Second): // Fail the test t.Fatal("event stream timeout") @@ -279,10 +279,10 @@ func systemTime(t *testing.T, client client.APIClient, testEnv *environment.Exec ctx := context.Background() info, err := client.Info(ctx) - require.Nil(t, err) + assert.NilError(t, err) dt, err := time.Parse(time.RFC3339Nano, info.SystemTime) - require.Nil(t, err, "invalid time format in GET /info response") + assert.NilError(t, err, "invalid time format in GET /info response") return dt } @@ -303,12 +303,12 @@ func TestAuthZPluginErrorResponse(t *testing.T) { ctrl.resRes.Err = errorMessage client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Ensure command is blocked _, err = client.ServerVersion(context.Background()) - require.NotNil(t, err) - require.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiResponse, errorMessage), err.Error()) + assert.Assert(t, err != nil) + assert.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiResponse, errorMessage), err.Error()) } func TestAuthZPluginErrorRequest(t *testing.T) { @@ -317,12 +317,12 @@ func TestAuthZPluginErrorRequest(t *testing.T) { ctrl.reqRes.Err = errorMessage client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Ensure command is blocked _, err = client.ServerVersion(context.Background()) - require.NotNil(t, err) - require.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiRequest, errorMessage), err.Error()) + assert.Assert(t, err != nil) + assert.Equal(t, fmt.Sprintf("Error response from daemon: plugin %s failed with error: %s: %s", testAuthZPlugin, authorization.AuthZApiRequest, errorMessage), err.Error()) } func TestAuthZPluginEnsureNoDuplicatePluginRegistration(t *testing.T) { @@ -333,14 +333,14 @@ func TestAuthZPluginEnsureNoDuplicatePluginRegistration(t *testing.T) { ctrl.resRes.Allow = true client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) _, err = client.ServerVersion(context.Background()) - require.Nil(t, err) + assert.NilError(t, err) // assert plugin is only called once.. - require.Equal(t, 1, ctrl.versionReqCount) - require.Equal(t, 1, ctrl.versionResCount) + assert.Equal(t, 1, ctrl.versionReqCount) + assert.Equal(t, 1, ctrl.versionResCount) } func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) { @@ -350,36 +350,36 @@ func TestAuthZPluginEnsureLoadImportWorking(t *testing.T) { d.StartWithBusybox(t, "--authorization-plugin="+testAuthZPlugin, "--authorization-plugin="+testAuthZPlugin) client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) ctx := context.Background() tmp, err := ioutil.TempDir("", "test-authz-load-import") - require.Nil(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmp) savedImagePath := filepath.Join(tmp, "save.tar") err = imageSave(client, savedImagePath, "busybox") - require.Nil(t, err) + assert.NilError(t, err) err = imageLoad(client, savedImagePath) - require.Nil(t, err) + assert.NilError(t, err) exportedImagePath := filepath.Join(tmp, "export.tar") cID := container.Run(t, ctx, client) responseReader, err := client.ContainerExport(context.Background(), cID) - require.Nil(t, err) + assert.NilError(t, err) defer responseReader.Close() file, err := os.Create(exportedImagePath) - require.Nil(t, err) + assert.NilError(t, err) defer file.Close() _, err = io.Copy(file, responseReader) - require.Nil(t, err) + assert.NilError(t, err) err = imageImport(client, exportedImagePath) - require.Nil(t, err) + assert.NilError(t, err) } func imageSave(client client.APIClient, path, image string) error { @@ -442,16 +442,16 @@ func TestAuthZPluginHeader(t *testing.T) { d.StartWithBusybox(t, "--debug", "--authorization-plugin="+testAuthZPlugin) daemonURL, err := url.Parse(d.Sock()) - require.Nil(t, err) + assert.NilError(t, err) conn, err := net.DialTimeout(daemonURL.Scheme, daemonURL.Path, time.Second*10) - require.Nil(t, err) + assert.NilError(t, err) client := httputil.NewClientConn(conn, nil) req, err := http.NewRequest("GET", "/version", nil) - require.Nil(t, err) + assert.NilError(t, err) resp, err := client.Do(req) - require.Nil(t, err) - require.Equal(t, "application/json", resp.Header["Content-Type"][0]) + assert.NilError(t, err) + assert.Equal(t, "application/json", resp.Header["Content-Type"][0]) } // assertURIRecorded verifies that the given URI was sent and recorded diff --git a/integration/plugin/authz/authz_plugin_v2_test.go b/integration/plugin/authz/authz_plugin_v2_test.go index 5efa421e88..fa3d37dc8c 100644 --- a/integration/plugin/authz/authz_plugin_v2_test.go +++ b/integration/plugin/authz/authz_plugin_v2_test.go @@ -16,8 +16,8 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/requirement" + "github.com/gotestyourself/gotestyourself/assert" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/require" ) var ( @@ -44,13 +44,13 @@ func TestAuthZPluginV2AllowNonVolumeRequest(t *testing.T) { defer setupTestV2(t)() client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) ctx := context.Background() // Install authz plugin err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag) - require.Nil(t, err) + assert.NilError(t, err) // start the daemon with the plugin and load busybox, --net=none build fails otherwise // because it needs to pull busybox d.Restart(t, "--authorization-plugin="+authzPluginNameWithTag) @@ -60,7 +60,7 @@ func TestAuthZPluginV2AllowNonVolumeRequest(t *testing.T) { cID := container.Run(t, ctx, client) _, err = client.ContainerInspect(ctx, cID) - require.Nil(t, err) + assert.NilError(t, err) } func TestAuthZPluginV2Disable(t *testing.T) { @@ -68,26 +68,26 @@ func TestAuthZPluginV2Disable(t *testing.T) { defer setupTestV2(t)() client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Install authz plugin err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag) - require.Nil(t, err) + assert.NilError(t, err) d.Restart(t, "--authorization-plugin="+authzPluginNameWithTag) d.LoadBusybox(t) _, err = client.VolumeCreate(context.Background(), volumetypes.VolumesCreateBody{Driver: "local"}) - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) // disable the plugin err = client.PluginDisable(context.Background(), authzPluginNameWithTag, types.PluginDisableOptions{}) - require.Nil(t, err) + assert.NilError(t, err) // now test to see if the docker api works. _, err = client.VolumeCreate(context.Background(), volumetypes.VolumesCreateBody{Driver: "local"}) - require.Nil(t, err) + assert.NilError(t, err) } func TestAuthZPluginV2RejectVolumeRequests(t *testing.T) { @@ -95,35 +95,35 @@ func TestAuthZPluginV2RejectVolumeRequests(t *testing.T) { defer setupTestV2(t)() client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Install authz plugin err = pluginInstallGrantAllPermissions(client, authzPluginNameWithTag) - require.Nil(t, err) + assert.NilError(t, err) // restart the daemon with the plugin d.Restart(t, "--authorization-plugin="+authzPluginNameWithTag) _, err = client.VolumeCreate(context.Background(), volumetypes.VolumesCreateBody{Driver: "local"}) - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) _, err = client.VolumeList(context.Background(), filters.Args{}) - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) // The plugin will block the command before it can determine the volume does not exist err = client.VolumeRemove(context.Background(), "test", false) - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) _, err = client.VolumeInspect(context.Background(), "test") - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) _, err = client.VolumesPrune(context.Background(), filters.Args{}) - require.NotNil(t, err) - require.True(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) + assert.Assert(t, err != nil) + assert.Assert(t, strings.Contains(err.Error(), fmt.Sprintf("Error response from daemon: plugin %s failed with error:", authzPluginNameWithTag))) } func TestAuthZPluginV2BadManifestFailsDaemonStart(t *testing.T) { @@ -131,15 +131,15 @@ func TestAuthZPluginV2BadManifestFailsDaemonStart(t *testing.T) { defer setupTestV2(t)() client, err := d.NewClient() - require.Nil(t, err) + assert.NilError(t, err) // Install authz plugin with bad manifest err = pluginInstallGrantAllPermissions(client, authzPluginBadManifestName) - require.Nil(t, err) + assert.NilError(t, err) // start the daemon with the plugin, it will error err = d.RestartWithError("--authorization-plugin=" + authzPluginBadManifestName) - require.NotNil(t, err) + assert.Assert(t, err != nil) // restarting the daemon without requiring the plugin will succeed d.Start(t) @@ -150,7 +150,7 @@ func TestAuthZPluginV2NonexistentFailsDaemonStart(t *testing.T) { // start the daemon with a non-existent authz plugin, it will error err := d.RestartWithError("--authorization-plugin=" + nonexistentAuthzPluginName) - require.NotNil(t, err) + assert.Assert(t, err != nil) // restarting the daemon without requiring the plugin will succeed d.Start(t) diff --git a/integration/plugin/logging/validation_test.go b/integration/plugin/logging/validation_test.go index 6607321613..eb3fe7a029 100644 --- a/integration/plugin/logging/validation_test.go +++ b/integration/plugin/logging/validation_test.go @@ -6,7 +6,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration-cli/daemon" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" ) // Regression test for #35553 @@ -20,12 +20,12 @@ func TestDaemonStartWithLogOpt(t *testing.T) { defer d.Stop(t) client, err := d.NewClient() - assert.NoError(t, err) + assert.Check(t, err) ctx := context.Background() createPlugin(t, client, "test", "dummy", asLogDriver) err = client.PluginEnable(ctx, "test", types.PluginEnableOptions{Timeout: 30}) - assert.NoError(t, err) + assert.Check(t, err) defer client.PluginRemove(ctx, "test", types.PluginRemoveOptions{Force: true}) d.Stop(t) diff --git a/integration/secret/secret_test.go b/integration/secret/secret_test.go index 27c8fd3d0e..4a1e1b3dc7 100644 --- a/integration/secret/secret_test.go +++ b/integration/secret/secret_test.go @@ -13,9 +13,9 @@ import ( "github.com/docker/docker/integration/internal/swarm" "github.com/docker/docker/internal/testutil" "github.com/docker/docker/pkg/stdcopy" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -26,7 +26,7 @@ func TestSecretInspect(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -34,12 +34,12 @@ func TestSecretInspect(t *testing.T) { secretID := createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil) secret, _, err := client.SecretInspectWithRaw(context.Background(), secretID) - require.NoError(t, err) - assert.Equal(t, secret.Spec.Name, testName) + assert.NilError(t, err) + assert.Check(t, is.Equal(secret.Spec.Name, testName)) secret, _, err = client.SecretInspectWithRaw(context.Background(), testName) - require.NoError(t, err) - assert.Equal(t, secretID, secretID) + assert.NilError(t, err) + assert.Check(t, is.Equal(secretID, secretID)) } func TestSecretList(t *testing.T) { @@ -49,7 +49,7 @@ func TestSecretList(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -75,8 +75,8 @@ func TestSecretList(t *testing.T) { // test by `secret ls` entries, err := client.SecretList(ctx, types.SecretListOptions{}) - require.NoError(t, err) - assert.Equal(t, names(entries), testNames) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(names(entries), testNames)) testCases := []struct { filters filters.Args @@ -110,8 +110,8 @@ func TestSecretList(t *testing.T) { entries, err = client.SecretList(ctx, types.SecretListOptions{ Filters: tc.filters, }) - require.NoError(t, err) - assert.Equal(t, names(entries), tc.expected) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(names(entries), tc.expected)) } } @@ -124,8 +124,8 @@ func createSecret(ctx context.Context, t *testing.T, client client.APIClient, na }, Data: data, }) - require.NoError(t, err) - assert.NotEqual(t, secret.ID, "") + assert.NilError(t, err) + assert.Check(t, secret.ID != "") return secret.ID } @@ -136,7 +136,7 @@ func TestSecretsCreateAndDelete(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() @@ -154,7 +154,7 @@ func TestSecretsCreateAndDelete(t *testing.T) { // Ported from original TestSecretsDelete err = client.SecretRemove(ctx, secretID) - require.NoError(t, err) + assert.NilError(t, err) _, _, err = client.SecretInspectWithRaw(ctx, secretID) testutil.ErrorContains(t, err, "No such secret") @@ -170,11 +170,11 @@ func TestSecretsCreateAndDelete(t *testing.T) { }) insp, _, err := client.SecretInspectWithRaw(ctx, secretID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Name, testName) - assert.Equal(t, len(insp.Spec.Labels), 2) - assert.Equal(t, insp.Spec.Labels["key1"], "value1") - assert.Equal(t, insp.Spec.Labels["key2"], "value2") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Name, testName)) + assert.Check(t, is.Equal(len(insp.Spec.Labels), 2)) + assert.Check(t, is.Equal(insp.Spec.Labels["key1"], "value1")) + assert.Check(t, is.Equal(insp.Spec.Labels["key2"], "value2")) } func TestSecretsUpdate(t *testing.T) { @@ -184,44 +184,44 @@ func TestSecretsUpdate(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() testName := "test_secret" secretID := createSecret(ctx, t, client, testName, []byte("TESTINGDATA"), nil) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err := client.SecretInspectWithRaw(ctx, secretID) - require.NoError(t, err) - assert.Equal(t, insp.ID, secretID) + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.ID, secretID)) // test UpdateSecret with full ID insp.Spec.Labels = map[string]string{"test": "test1"} err = client.SecretUpdate(ctx, secretID, insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.SecretInspectWithRaw(ctx, secretID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test1") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test1")) // test UpdateSecret with full name insp.Spec.Labels = map[string]string{"test": "test2"} err = client.SecretUpdate(ctx, testName, insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.SecretInspectWithRaw(ctx, secretID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test2") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test2")) // test UpdateSecret with prefix ID insp.Spec.Labels = map[string]string{"test": "test3"} err = client.SecretUpdate(ctx, secretID[:1], insp.Version, insp.Spec) - require.NoError(t, err) + assert.NilError(t, err) insp, _, err = client.SecretInspectWithRaw(ctx, secretID) - require.NoError(t, err) - assert.Equal(t, insp.Spec.Labels["test"], "test3") + assert.NilError(t, err) + assert.Check(t, is.Equal(insp.Spec.Labels["test"], "test3")) // test UpdateSecret in updating Data which is not supported in daemon // this test will produce an error in func UpdateSecret @@ -244,7 +244,7 @@ func TestTemplatedSecret(t *testing.T) { Data: []byte("this is a secret"), } referencedSecret, err := client.SecretCreate(ctx, referencedSecretSpec) - assert.NoError(t, err) + assert.Check(t, err) referencedConfigSpec := swarmtypes.ConfigSpec{ Annotations: swarmtypes.Annotations{ @@ -253,7 +253,7 @@ func TestTemplatedSecret(t *testing.T) { Data: []byte("this is a config"), } referencedConfig, err := client.ConfigCreate(ctx, referencedConfigSpec) - assert.NoError(t, err) + assert.Check(t, err) secretSpec := swarmtypes.SecretSpec{ Annotations: swarmtypes.Annotations{ @@ -268,7 +268,7 @@ func TestTemplatedSecret(t *testing.T) { } templatedSecret, err := client.SecretCreate(ctx, secretSpec) - assert.NoError(t, err) + assert.Check(t, err) serviceID := swarm.CreateService(t, d, swarm.ServiceWithSecret( @@ -346,8 +346,8 @@ func TestTemplatedSecret(t *testing.T) { func assertAttachedStream(t *testing.T, attach types.HijackedResponse, expect string) { buf := bytes.NewBuffer(nil) _, err := stdcopy.StdCopy(buf, buf, attach.Reader) - require.NoError(t, err) - assert.Contains(t, buf.String(), expect) + assert.NilError(t, err) + assert.Check(t, is.Contains(buf.String(), expect)) } func waitAndAssert(t *testing.T, timeout time.Duration, f func(*testing.T) bool) { diff --git a/integration/service/create_test.go b/integration/service/create_test.go index eb66cfc2f1..7170bda492 100644 --- a/integration/service/create_test.go +++ b/integration/service/create_test.go @@ -11,9 +11,9 @@ import ( swarmtypes "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/swarm" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -22,7 +22,7 @@ func TestCreateServiceMultipleTimes(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) overlayName := "overlay1" networkCreate := types.NetworkCreate{ @@ -31,7 +31,7 @@ func TestCreateServiceMultipleTimes(t *testing.T) { } netResp, err := client.NetworkCreate(context.Background(), overlayName, networkCreate) - require.NoError(t, err) + assert.NilError(t, err) overlayID := netResp.ID var instances uint64 = 4 @@ -41,7 +41,7 @@ func TestCreateServiceMultipleTimes(t *testing.T) { serviceResp, err := client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) pollSettings := func(config *poll.Settings) { // It takes about ~25s to finish the multi services creation in this case per the pratical observation on arm64/arm platform @@ -55,10 +55,10 @@ func TestCreateServiceMultipleTimes(t *testing.T) { poll.WaitOn(t, serviceRunningTasksCount(client, serviceID, instances), pollSettings) _, _, err = client.ServiceInspectWithRaw(context.Background(), serviceID, types.ServiceInspectOptions{}) - require.NoError(t, err) + assert.NilError(t, err) err = client.ServiceRemove(context.Background(), serviceID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceID), pollSettings) poll.WaitOn(t, noTasks(client), pollSettings) @@ -66,19 +66,19 @@ func TestCreateServiceMultipleTimes(t *testing.T) { serviceResp, err = client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) serviceID2 := serviceResp.ID poll.WaitOn(t, serviceRunningTasksCount(client, serviceID2, instances), pollSettings) err = client.ServiceRemove(context.Background(), serviceID2) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceID2), pollSettings) poll.WaitOn(t, noTasks(client), pollSettings) err = client.NetworkRemove(context.Background(), overlayID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, networkIsRemoved(client, overlayID), poll.WithTimeout(1*time.Minute), poll.WithDelay(10*time.Second)) } @@ -88,7 +88,7 @@ func TestCreateWithDuplicateNetworkNames(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) name := "foo" networkCreate := types.NetworkCreate{ @@ -97,15 +97,15 @@ func TestCreateWithDuplicateNetworkNames(t *testing.T) { } n1, err := client.NetworkCreate(context.Background(), name, networkCreate) - require.NoError(t, err) + assert.NilError(t, err) n2, err := client.NetworkCreate(context.Background(), name, networkCreate) - require.NoError(t, err) + assert.NilError(t, err) // Dupliates with name but with different driver networkCreate.Driver = "overlay" n3, err := client.NetworkCreate(context.Background(), name, networkCreate) - require.NoError(t, err) + assert.NilError(t, err) // Create Service with the same name var instances uint64 = 1 @@ -114,30 +114,30 @@ func TestCreateWithDuplicateNetworkNames(t *testing.T) { serviceSpec.TaskTemplate.Networks = append(serviceSpec.TaskTemplate.Networks, swarmtypes.NetworkAttachmentConfig{Target: name}) service, err := client.ServiceCreate(context.Background(), serviceSpec, types.ServiceCreateOptions{}) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceRunningTasksCount(client, service.ID, instances)) resp, _, err := client.ServiceInspectWithRaw(context.Background(), service.ID, types.ServiceInspectOptions{}) - require.NoError(t, err) - assert.Equal(t, n3.ID, resp.Spec.TaskTemplate.Networks[0].Target) + assert.NilError(t, err) + assert.Check(t, is.Equal(n3.ID, resp.Spec.TaskTemplate.Networks[0].Target)) // Remove Service err = client.ServiceRemove(context.Background(), service.ID) - require.NoError(t, err) + assert.NilError(t, err) // Make sure task has been destroyed. poll.WaitOn(t, serviceIsRemoved(client, service.ID)) // Remove networks err = client.NetworkRemove(context.Background(), n3.ID) - require.NoError(t, err) + assert.NilError(t, err) err = client.NetworkRemove(context.Background(), n2.ID) - require.NoError(t, err) + assert.NilError(t, err) err = client.NetworkRemove(context.Background(), n1.ID) - require.NoError(t, err) + assert.NilError(t, err) // Make sure networks have been destroyed. poll.WaitOn(t, networkIsRemoved(client, n3.ID), poll.WithTimeout(1*time.Minute), poll.WithDelay(10*time.Second)) @@ -150,7 +150,7 @@ func TestCreateServiceSecretFileMode(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() secretResp, err := client.SecretCreate(ctx, swarmtypes.SecretSpec{ @@ -159,7 +159,7 @@ func TestCreateServiceSecretFileMode(t *testing.T) { }, Data: []byte("TESTSECRET"), }) - require.NoError(t, err) + assert.NilError(t, err) var instances uint64 = 1 serviceSpec := swarmtypes.ServiceSpec{ @@ -194,7 +194,7 @@ func TestCreateServiceSecretFileMode(t *testing.T) { serviceResp, err := client.ServiceCreate(ctx, serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceRunningTasksCount(client, serviceResp.ID, instances)) @@ -203,27 +203,27 @@ func TestCreateServiceSecretFileMode(t *testing.T) { tasks, err := client.TaskList(ctx, types.TaskListOptions{ Filters: filter, }) - require.NoError(t, err) - assert.Equal(t, len(tasks), 1) + assert.NilError(t, err) + assert.Check(t, is.Equal(len(tasks), 1)) body, err := client.ContainerLogs(ctx, tasks[0].Status.ContainerStatus.ContainerID, types.ContainerLogsOptions{ ShowStdout: true, }) - require.NoError(t, err) + assert.NilError(t, err) defer body.Close() content, err := ioutil.ReadAll(body) - require.NoError(t, err) - assert.Contains(t, string(content), "-rwxrwxrwx") + assert.NilError(t, err) + assert.Check(t, is.Contains(string(content), "-rwxrwxrwx")) err = client.ServiceRemove(ctx, serviceResp.ID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceResp.ID)) poll.WaitOn(t, noTasks(client)) err = client.SecretRemove(ctx, "TestSecret") - require.NoError(t, err) + assert.NilError(t, err) } func TestCreateServiceConfigFileMode(t *testing.T) { @@ -231,7 +231,7 @@ func TestCreateServiceConfigFileMode(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() configResp, err := client.ConfigCreate(ctx, swarmtypes.ConfigSpec{ @@ -240,7 +240,7 @@ func TestCreateServiceConfigFileMode(t *testing.T) { }, Data: []byte("TESTCONFIG"), }) - require.NoError(t, err) + assert.NilError(t, err) var instances uint64 = 1 serviceSpec := swarmtypes.ServiceSpec{ @@ -275,7 +275,7 @@ func TestCreateServiceConfigFileMode(t *testing.T) { serviceResp, err := client.ServiceCreate(ctx, serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceRunningTasksCount(client, serviceResp.ID, instances)) @@ -284,27 +284,27 @@ func TestCreateServiceConfigFileMode(t *testing.T) { tasks, err := client.TaskList(ctx, types.TaskListOptions{ Filters: filter, }) - require.NoError(t, err) - assert.Equal(t, len(tasks), 1) + assert.NilError(t, err) + assert.Check(t, is.Equal(len(tasks), 1)) body, err := client.ContainerLogs(ctx, tasks[0].Status.ContainerStatus.ContainerID, types.ContainerLogsOptions{ ShowStdout: true, }) - require.NoError(t, err) + assert.NilError(t, err) defer body.Close() content, err := ioutil.ReadAll(body) - require.NoError(t, err) - assert.Contains(t, string(content), "-rwxrwxrwx") + assert.NilError(t, err) + assert.Check(t, is.Contains(string(content), "-rwxrwxrwx")) err = client.ServiceRemove(ctx, serviceResp.ID) - require.NoError(t, err) + assert.NilError(t, err) poll.WaitOn(t, serviceIsRemoved(client, serviceResp.ID)) poll.WaitOn(t, noTasks(client)) err = client.ConfigRemove(ctx, "TestConfig") - require.NoError(t, err) + assert.NilError(t, err) } func swarmServiceSpec(name string, replicas uint64) swarmtypes.ServiceSpec { diff --git a/integration/service/inspect_test.go b/integration/service/inspect_test.go index 8cd24bc31b..3a5b99d3ac 100644 --- a/integration/service/inspect_test.go +++ b/integration/service/inspect_test.go @@ -10,10 +10,10 @@ import ( swarmtypes "github.com/docker/docker/api/types/swarm" "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/swarm" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/poll" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/net/context" ) @@ -23,7 +23,7 @@ func TestInspect(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) var before = time.Now() var instances uint64 = 2 @@ -33,16 +33,16 @@ func TestInspect(t *testing.T) { resp, err := client.ServiceCreate(ctx, serviceSpec, types.ServiceCreateOptions{ QueryRegistry: false, }) - require.NoError(t, err) + assert.NilError(t, err) id := resp.ID poll.WaitOn(t, serviceContainerCount(client, id, instances)) service, _, err := client.ServiceInspectWithRaw(ctx, id, types.ServiceInspectOptions{}) - require.NoError(t, err) - assert.Equal(t, serviceSpec, service.Spec) - assert.Equal(t, uint64(11), service.Meta.Version.Index) - assert.Equal(t, id, service.ID) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(serviceSpec, service.Spec)) + assert.Check(t, is.Equal(uint64(11), service.Meta.Version.Index)) + assert.Check(t, is.Equal(id, service.ID)) assert.WithinDuration(t, before, service.CreatedAt, 30*time.Second) assert.WithinDuration(t, before, service.UpdatedAt, 30*time.Second) } diff --git a/integration/service/network_test.go b/integration/service/network_test.go index 09b0a1f12b..6b8c891cd8 100644 --- a/integration/service/network_test.go +++ b/integration/service/network_test.go @@ -9,8 +9,8 @@ import ( "github.com/docker/docker/client" "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/swarm" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestDockerNetworkConnectAlias(t *testing.T) { @@ -18,7 +18,7 @@ func TestDockerNetworkConnectAlias(t *testing.T) { d := swarm.NewSwarm(t, testEnv) defer d.Stop(t) client, err := client.NewClientWithOpts(client.WithHost((d.Sock()))) - require.NoError(t, err) + assert.NilError(t, err) ctx := context.Background() name := "test-alias" @@ -26,7 +26,7 @@ func TestDockerNetworkConnectAlias(t *testing.T) { Driver: "overlay", Attachable: true, }) - require.NoError(t, err) + assert.NilError(t, err) container.Create(t, ctx, client, container.WithName("ng1"), func(c *container.TestContainerConfig) { c.NetworkingConfig = &network.NetworkingConfig{ @@ -41,15 +41,15 @@ func TestDockerNetworkConnectAlias(t *testing.T) { "aaa", }, }) - require.NoError(t, err) + assert.NilError(t, err) err = client.ContainerStart(ctx, "ng1", types.ContainerStartOptions{}) - require.NoError(t, err) + assert.NilError(t, err) ng1, err := client.ContainerInspect(ctx, "ng1") - require.NoError(t, err) - assert.Equal(t, len(ng1.NetworkSettings.Networks[name].Aliases), 2) - assert.Equal(t, ng1.NetworkSettings.Networks[name].Aliases[0], "aaa") + assert.NilError(t, err) + assert.Check(t, is.Equal(len(ng1.NetworkSettings.Networks[name].Aliases), 2)) + assert.Check(t, is.Equal(ng1.NetworkSettings.Networks[name].Aliases[0], "aaa")) container.Create(t, ctx, client, container.WithName("ng2"), func(c *container.TestContainerConfig) { c.NetworkingConfig = &network.NetworkingConfig{ @@ -64,13 +64,13 @@ func TestDockerNetworkConnectAlias(t *testing.T) { "bbb", }, }) - require.NoError(t, err) + assert.NilError(t, err) err = client.ContainerStart(ctx, "ng2", types.ContainerStartOptions{}) - require.NoError(t, err) + assert.NilError(t, err) ng2, err := client.ContainerInspect(ctx, "ng2") - require.NoError(t, err) - assert.Equal(t, len(ng2.NetworkSettings.Networks[name].Aliases), 2) - assert.Equal(t, ng2.NetworkSettings.Networks[name].Aliases[0], "bbb") + assert.NilError(t, err) + assert.Check(t, is.Equal(len(ng2.NetworkSettings.Networks[name].Aliases), 2)) + assert.Check(t, is.Equal(ng2.NetworkSettings.Networks[name].Aliases[0], "bbb")) } diff --git a/integration/session/session_test.go b/integration/session/session_test.go index 310f544554..de9319436e 100644 --- a/integration/session/session_test.go +++ b/integration/session/session_test.go @@ -5,9 +5,9 @@ import ( "testing" req "github.com/docker/docker/integration-cli/request" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func TestSessionCreate(t *testing.T) { @@ -20,29 +20,29 @@ func TestSessionCreate(t *testing.T) { r.Header.Set("Upgrade", "h2c") return nil }) - require.NoError(t, err) - require.NoError(t, body.Close()) - assert.Equal(t, res.StatusCode, http.StatusSwitchingProtocols) - assert.Equal(t, res.Header.Get("Upgrade"), "h2c") + assert.NilError(t, err) + assert.NilError(t, body.Close()) + assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusSwitchingProtocols)) + assert.Check(t, is.Equal(res.Header.Get("Upgrade"), "h2c")) } func TestSessionCreateWithBadUpgrade(t *testing.T) { skip.If(t, !testEnv.DaemonInfo.ExperimentalBuild) res, body, err := req.Post("/session") - require.NoError(t, err) - assert.Equal(t, res.StatusCode, http.StatusBadRequest) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusBadRequest)) buf, err := req.ReadBody(body) - require.NoError(t, err) - assert.Contains(t, string(buf), "no upgrade") + assert.NilError(t, err) + assert.Check(t, is.Contains(string(buf), "no upgrade")) res, body, err = req.Post("/session", func(r *http.Request) error { r.Header.Set("Upgrade", "foo") return nil }) - require.NoError(t, err) - assert.Equal(t, res.StatusCode, http.StatusBadRequest) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusBadRequest)) buf, err = req.ReadBody(body) - require.NoError(t, err) - assert.Contains(t, string(buf), "not supported") + assert.NilError(t, err) + assert.Check(t, is.Contains(string(buf), "not supported")) } diff --git a/integration/system/event_test.go b/integration/system/event_test.go index 688d7c27de..b270ffcb91 100644 --- a/integration/system/event_test.go +++ b/integration/system/event_test.go @@ -17,8 +17,8 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/pkg/jsonmessage" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestEvents(t *testing.T) { @@ -33,7 +33,7 @@ func TestEvents(t *testing.T) { Cmd: strslice.StrSlice([]string{"echo", "hello"}), }, ) - require.NoError(t, err) + assert.NilError(t, err) filters := filters.NewArgs( filters.Arg("container", cID), @@ -49,15 +49,15 @@ func TestEvents(t *testing.T) { Tty: false, }, ) - require.NoError(t, err) + assert.NilError(t, err) select { case m := <-msg: - require.Equal(t, m.Type, "container") - require.Equal(t, m.Actor.ID, cID) - require.Equal(t, m.Action, "exec_die") - require.Equal(t, m.Actor.Attributes["execID"], id.ID) - require.Equal(t, m.Actor.Attributes["exitCode"], "0") + assert.Equal(t, m.Type, "container") + assert.Equal(t, m.Actor.ID, cID) + assert.Equal(t, m.Action, "exec_die") + assert.Equal(t, m.Actor.Attributes["execID"], id.ID) + assert.Equal(t, m.Actor.Attributes["exitCode"], "0") case err = <-errors: t.Fatal(err) case <-time.After(time.Second * 3): @@ -84,16 +84,16 @@ func TestEventsBackwardsCompatible(t *testing.T) { // The test here makes sure the response time is less than 3 sec. expectedTime := time.Now().Add(3 * time.Second) emptyResp, emptyBody, err := req.Get("/events") - require.NoError(t, err) + assert.NilError(t, err) defer emptyBody.Close() - assert.Equal(t, http.StatusOK, emptyResp.StatusCode) - assert.True(t, time.Now().Before(expectedTime), "timeout waiting for events api to respond, should have responded immediately") + assert.Check(t, is.DeepEqual(http.StatusOK, emptyResp.StatusCode)) + assert.Check(t, time.Now().Before(expectedTime), "timeout waiting for events api to respond, should have responded immediately") // We also test to make sure the `events.Message` is compatible with `JSONMessage` q := url.Values{} q.Set("since", ts) _, body, err := req.Get("/events?" + q.Encode()) - require.NoError(t, err) + assert.NilError(t, err) defer body.Close() dec := json.NewDecoder(body) @@ -112,8 +112,8 @@ func TestEventsBackwardsCompatible(t *testing.T) { } } - assert.NotNil(t, containerCreateEvent) - assert.Equal(t, "create", containerCreateEvent.Status) - assert.Equal(t, cID, containerCreateEvent.ID) - assert.Equal(t, "busybox", containerCreateEvent.From) + assert.Check(t, containerCreateEvent != nil) + assert.Check(t, is.Equal("create", containerCreateEvent.Status)) + assert.Check(t, is.Equal(cID, containerCreateEvent.ID)) + assert.Check(t, is.Equal("busybox", containerCreateEvent.From)) } diff --git a/integration/system/info_linux_test.go b/integration/system/info_linux_test.go index 8f0271e7a6..ad8dc2f9e2 100644 --- a/integration/system/info_linux_test.go +++ b/integration/system/info_linux_test.go @@ -8,8 +8,8 @@ import ( req "github.com/docker/docker/integration-cli/request" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -17,35 +17,35 @@ func TestInfoBinaryCommits(t *testing.T) { client := request.NewAPIClient(t) info, err := client.Info(context.Background()) - require.NoError(t, err) + assert.NilError(t, err) - assert.NotNil(t, info.ContainerdCommit) - assert.NotEqual(t, "N/A", info.ContainerdCommit.ID) - assert.Equal(t, testEnv.DaemonInfo.ContainerdCommit.Expected, info.ContainerdCommit.Expected) - assert.Equal(t, info.ContainerdCommit.Expected, info.ContainerdCommit.ID) + assert.Check(t, info.ContainerdCommit != nil) + assert.Check(t, "N/A" != info.ContainerdCommit.ID) + assert.Check(t, is.Equal(testEnv.DaemonInfo.ContainerdCommit.Expected, info.ContainerdCommit.Expected)) + assert.Check(t, is.Equal(info.ContainerdCommit.Expected, info.ContainerdCommit.ID)) - assert.NotNil(t, info.InitCommit) - assert.NotEqual(t, "N/A", info.InitCommit.ID) - assert.Equal(t, testEnv.DaemonInfo.InitCommit.Expected, info.InitCommit.Expected) - assert.Equal(t, info.InitCommit.Expected, info.InitCommit.ID) + assert.Check(t, info.InitCommit != nil) + assert.Check(t, "N/A" != info.InitCommit.ID) + assert.Check(t, is.Equal(testEnv.DaemonInfo.InitCommit.Expected, info.InitCommit.Expected)) + assert.Check(t, is.Equal(info.InitCommit.Expected, info.InitCommit.ID)) - assert.NotNil(t, info.RuncCommit) - assert.NotEqual(t, "N/A", info.RuncCommit.ID) - assert.Equal(t, testEnv.DaemonInfo.RuncCommit.Expected, info.RuncCommit.Expected) - assert.Equal(t, info.RuncCommit.Expected, info.RuncCommit.ID) + assert.Check(t, info.RuncCommit != nil) + assert.Check(t, "N/A" != info.RuncCommit.ID) + assert.Check(t, is.Equal(testEnv.DaemonInfo.RuncCommit.Expected, info.RuncCommit.Expected)) + assert.Check(t, is.Equal(info.RuncCommit.Expected, info.RuncCommit.ID)) } func TestInfoAPIVersioned(t *testing.T) { // Windows only supports 1.25 or later res, body, err := req.Get("/v1.20/info") - require.NoError(t, err) - assert.Equal(t, res.StatusCode, http.StatusOK) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual(res.StatusCode, http.StatusOK)) b, err := req.ReadBody(body) - require.NoError(t, err) + assert.NilError(t, err) out := string(b) - assert.Contains(t, out, "ExecutionDriver") - assert.Contains(t, out, "not supported") + assert.Check(t, is.Contains(out, "ExecutionDriver")) + assert.Check(t, is.Contains(out, "not supported")) } diff --git a/integration/system/info_test.go b/integration/system/info_test.go index d04fdcdc84..e19ba9ba3d 100644 --- a/integration/system/info_test.go +++ b/integration/system/info_test.go @@ -5,8 +5,8 @@ import ( "testing" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -14,7 +14,7 @@ func TestInfoAPI(t *testing.T) { client := request.NewAPIClient(t) info, err := client.Info(context.Background()) - require.NoError(t, err) + assert.NilError(t, err) // always shown fields stringsToCheck := []string{ @@ -37,6 +37,6 @@ func TestInfoAPI(t *testing.T) { out := fmt.Sprintf("%+v", info) for _, linePrefix := range stringsToCheck { - assert.Contains(t, out, linePrefix) + assert.Check(t, is.Contains(out, linePrefix)) } } diff --git a/integration/system/login_test.go b/integration/system/login_test.go index c075109d2b..e8ef10c30c 100644 --- a/integration/system/login_test.go +++ b/integration/system/login_test.go @@ -6,8 +6,9 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/integration/internal/requirement" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" "golang.org/x/net/context" ) @@ -23,5 +24,5 @@ func TestLoginFailsWithBadCredentials(t *testing.T) { } _, err := client.RegistryLogin(context.Background(), config) expected := "Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password" - assert.EqualError(t, err, expected) + assert.Check(t, is.Error(err, expected)) } diff --git a/integration/system/version_test.go b/integration/system/version_test.go index 04888a604a..a676c31802 100644 --- a/integration/system/version_test.go +++ b/integration/system/version_test.go @@ -4,8 +4,8 @@ import ( "testing" "github.com/docker/docker/integration/internal/request" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -13,11 +13,11 @@ func TestVersion(t *testing.T) { client := request.NewAPIClient(t) version, err := client.ServerVersion(context.Background()) - require.NoError(t, err) + assert.NilError(t, err) - assert.NotNil(t, version.APIVersion) - assert.NotNil(t, version.Version) - assert.NotNil(t, version.MinAPIVersion) - assert.Equal(t, testEnv.DaemonInfo.ExperimentalBuild, version.Experimental) - assert.Equal(t, testEnv.OSType, version.Os) + assert.Check(t, version.APIVersion != nil) + assert.Check(t, version.Version != nil) + assert.Check(t, version.MinAPIVersion != nil) + assert.Check(t, is.Equal(testEnv.DaemonInfo.ExperimentalBuild, version.Experimental)) + assert.Check(t, is.Equal(testEnv.OSType, version.Os)) } diff --git a/integration/volume/volume_test.go b/integration/volume/volume_test.go index 20dcfef9a6..2fe35cf5ed 100644 --- a/integration/volume/volume_test.go +++ b/integration/volume/volume_test.go @@ -13,8 +13,8 @@ import ( "github.com/docker/docker/integration/internal/container" "github.com/docker/docker/integration/internal/request" "github.com/docker/docker/internal/testutil" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestVolumesCreateAndList(t *testing.T) { @@ -26,7 +26,7 @@ func TestVolumesCreateAndList(t *testing.T) { vol, err := client.VolumeCreate(ctx, volumetypes.VolumesCreateBody{ Name: name, }) - require.NoError(t, err) + assert.NilError(t, err) expected := types.Volume{ // Ignore timestamp of CreatedAt @@ -36,14 +36,14 @@ func TestVolumesCreateAndList(t *testing.T) { Name: name, Mountpoint: fmt.Sprintf("%s/volumes/%s/_data", testEnv.DaemonInfo.DockerRootDir, name), } - assert.Equal(t, vol, expected) + assert.Check(t, is.DeepEqual(vol, expected)) volumes, err := client.VolumeList(ctx, filters.Args{}) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, len(volumes.Volumes), 1) - assert.NotNil(t, volumes.Volumes[0]) - assert.Equal(t, *volumes.Volumes[0], expected) + assert.Check(t, is.Equal(len(volumes.Volumes), 1)) + assert.Check(t, volumes.Volumes[0] != nil) + assert.Check(t, is.DeepEqual(*volumes.Volumes[0], expected)) } func TestVolumesRemove(t *testing.T) { @@ -56,7 +56,7 @@ func TestVolumesRemove(t *testing.T) { id := container.Create(t, ctx, client, container.WithVolume(prefix+"foo")) c, err := client.ContainerInspect(ctx, id) - require.NoError(t, err) + assert.NilError(t, err) vname := c.Mounts[0].Name err = client.VolumeRemove(ctx, vname, false) @@ -65,10 +65,10 @@ func TestVolumesRemove(t *testing.T) { err = client.ContainerRemove(ctx, id, types.ContainerRemoveOptions{ Force: true, }) - require.NoError(t, err) + assert.NilError(t, err) err = client.VolumeRemove(ctx, vname, false) - require.NoError(t, err) + assert.NilError(t, err) } func TestVolumesInspect(t *testing.T) { @@ -83,10 +83,10 @@ func TestVolumesInspect(t *testing.T) { _, err := client.VolumeCreate(ctx, volumetypes.VolumesCreateBody{ Name: name, }) - require.NoError(t, err) + assert.NilError(t, err) vol, err := client.VolumeInspect(ctx, name) - require.NoError(t, err) + assert.NilError(t, err) expected := types.Volume{ // Ignore timestamp of CreatedAt @@ -96,13 +96,13 @@ func TestVolumesInspect(t *testing.T) { Name: name, Mountpoint: fmt.Sprintf("%s/volumes/%s/_data", testEnv.DaemonInfo.DockerRootDir, name), } - assert.Equal(t, vol, expected) + assert.Check(t, is.DeepEqual(vol, expected)) // comparing CreatedAt field time for the new volume to now. Removing a minute from both to avoid false positive testCreatedAt, err := time.Parse(time.RFC3339, strings.TrimSpace(vol.CreatedAt)) - require.NoError(t, err) + assert.NilError(t, err) testCreatedAt = testCreatedAt.Truncate(time.Minute) - assert.Equal(t, testCreatedAt.Equal(now), true, "Time Volume is CreatedAt not equal to current time") + assert.Check(t, is.Equal(testCreatedAt.Equal(now), true), "Time Volume is CreatedAt not equal to current time") } func getPrefixAndSlashFromDaemonPlatform() (prefix, slash string) { diff --git a/internal/test/environment/clean.go b/internal/test/environment/clean.go index 065b46bee8..d83175c845 100644 --- a/internal/test/environment/clean.go +++ b/internal/test/environment/clean.go @@ -7,13 +7,12 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" "github.com/docker/docker/client" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" "golang.org/x/net/context" ) type testingT interface { - require.TestingT + assert.TestingT logT Fatalf(string, ...interface{}) } @@ -47,7 +46,7 @@ func unpauseAllContainers(t assert.TestingT, client client.ContainerAPIClient) { if len(containers) > 0 { for _, container := range containers { err := client.ContainerUnpause(ctx, container.ID) - assert.NoError(t, err, "failed to unpause container %s", container.ID) + assert.Check(t, err, "failed to unpause container %s", container.ID) } } } @@ -60,7 +59,7 @@ func getPausedContainers(ctx context.Context, t assert.TestingT, client client.C Quiet: true, All: true, }) - assert.NoError(t, err, "failed to list containers") + assert.Check(t, err, "failed to list containers") return containers } @@ -84,7 +83,7 @@ func deleteAllContainers(t assert.TestingT, apiclient client.ContainerAPIClient, if err == nil || client.IsErrNotFound(err) || alreadyExists.MatchString(err.Error()) || isErrNotFoundSwarmClassic(err) { continue } - assert.NoError(t, err, "failed to remove %s", container.ID) + assert.Check(t, err, "failed to remove %s", container.ID) } } @@ -93,13 +92,13 @@ func getAllContainers(ctx context.Context, t assert.TestingT, client client.Cont Quiet: true, All: true, }) - assert.NoError(t, err, "failed to list containers") + assert.Check(t, err, "failed to list containers") return containers } func deleteAllImages(t testingT, apiclient client.ImageAPIClient, protectedImages map[string]struct{}) { images, err := apiclient.ImageList(context.Background(), types.ImageListOptions{}) - assert.NoError(t, err, "failed to list images") + assert.Check(t, err, "failed to list images") ctx := context.Background() for _, image := range images { @@ -126,12 +125,12 @@ func removeImage(ctx context.Context, t assert.TestingT, apiclient client.ImageA if client.IsErrNotFound(err) { return } - assert.NoError(t, err, "failed to remove image %s", ref) + assert.Check(t, err, "failed to remove image %s", ref) } func deleteAllVolumes(t assert.TestingT, c client.VolumeAPIClient, protectedVolumes map[string]struct{}) { volumes, err := c.VolumeList(context.Background(), filters.Args{}) - assert.NoError(t, err, "failed to list volumes") + assert.Check(t, err, "failed to list volumes") for _, v := range volumes.Volumes { if _, ok := protectedVolumes[v.Name]; ok { @@ -142,13 +141,13 @@ func deleteAllVolumes(t assert.TestingT, c client.VolumeAPIClient, protectedVolu if isErrNotFoundSwarmClassic(err) { continue } - assert.NoError(t, err, "failed to remove volume %s", v.Name) + assert.Check(t, err, "failed to remove volume %s", v.Name) } } func deleteAllNetworks(t assert.TestingT, c client.NetworkAPIClient, daemonPlatform string, protectedNetworks map[string]struct{}) { networks, err := c.NetworkList(context.Background(), types.NetworkListOptions{}) - assert.NoError(t, err, "failed to list networks") + assert.Check(t, err, "failed to list networks") for _, n := range networks { if n.Name == "bridge" || n.Name == "none" || n.Name == "host" { @@ -162,7 +161,7 @@ func deleteAllNetworks(t assert.TestingT, c client.NetworkAPIClient, daemonPlatf continue } err := c.NetworkRemove(context.Background(), n.ID) - assert.NoError(t, err, "failed to remove network %s", n.ID) + assert.Check(t, err, "failed to remove network %s", n.ID) } } @@ -172,14 +171,14 @@ func deleteAllPlugins(t assert.TestingT, c client.PluginAPIClient, protectedPlug if client.IsErrNotImplemented(err) { return } - assert.NoError(t, err, "failed to list plugins") + assert.Check(t, err, "failed to list plugins") for _, p := range plugins { if _, ok := protectedPlugins[p.Name]; ok { continue } err := c.PluginRemove(context.Background(), p.Name, types.PluginRemoveOptions{Force: true}) - assert.NoError(t, err, "failed to remove plugin %s", p.ID) + assert.Check(t, err, "failed to remove plugin %s", p.ID) } } diff --git a/internal/test/environment/protect.go b/internal/test/environment/protect.go index ffbf985b73..3dfe606cea 100644 --- a/internal/test/environment/protect.go +++ b/internal/test/environment/protect.go @@ -6,7 +6,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/filters" dclient "github.com/docker/docker/client" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) var frozenImages = []string{"busybox:latest", "busybox:glibc", "hello-world:frozen", "debian:jessie"} @@ -57,12 +57,12 @@ func ProtectContainers(t testingT, testEnv *Execution) { testEnv.ProtectContainer(t, containers...) } -func getExistingContainers(t require.TestingT, testEnv *Execution) []string { +func getExistingContainers(t assert.TestingT, testEnv *Execution) []string { client := testEnv.APIClient() containerList, err := client.ContainerList(context.Background(), types.ContainerListOptions{ All: true, }) - require.NoError(t, err, "failed to list containers") + assert.NilError(t, err, "failed to list containers") containers := []string{} for _, container := range containerList { @@ -89,7 +89,7 @@ func ProtectImages(t testingT, testEnv *Execution) { testEnv.ProtectImage(t, images...) } -func getExistingImages(t require.TestingT, testEnv *Execution) []string { +func getExistingImages(t assert.TestingT, testEnv *Execution) []string { client := testEnv.APIClient() filter := filters.NewArgs() filter.Add("dangling", "false") @@ -97,7 +97,7 @@ func getExistingImages(t require.TestingT, testEnv *Execution) []string { All: true, Filters: filter, }) - require.NoError(t, err, "failed to list images") + assert.NilError(t, err, "failed to list images") images := []string{} for _, image := range imageList { @@ -136,10 +136,10 @@ func ProtectNetworks(t testingT, testEnv *Execution) { testEnv.ProtectNetwork(t, networks...) } -func getExistingNetworks(t require.TestingT, testEnv *Execution) []string { +func getExistingNetworks(t assert.TestingT, testEnv *Execution) []string { client := testEnv.APIClient() networkList, err := client.NetworkList(context.Background(), types.NetworkListOptions{}) - require.NoError(t, err, "failed to list networks") + assert.NilError(t, err, "failed to list networks") networks := []string{} for _, network := range networkList { @@ -162,14 +162,14 @@ func ProtectPlugins(t testingT, testEnv *Execution) { testEnv.ProtectPlugin(t, plugins...) } -func getExistingPlugins(t require.TestingT, testEnv *Execution) []string { +func getExistingPlugins(t assert.TestingT, testEnv *Execution) []string { client := testEnv.APIClient() pluginList, err := client.PluginList(context.Background(), filters.Args{}) // Docker EE does not allow cluster-wide plugin management. if dclient.IsErrNotImplemented(err) { return []string{} } - require.NoError(t, err, "failed to list plugins") + assert.NilError(t, err, "failed to list plugins") plugins := []string{} for _, plugin := range pluginList { @@ -192,10 +192,10 @@ func ProtectVolumes(t testingT, testEnv *Execution) { testEnv.ProtectVolume(t, volumes...) } -func getExistingVolumes(t require.TestingT, testEnv *Execution) []string { +func getExistingVolumes(t assert.TestingT, testEnv *Execution) []string { client := testEnv.APIClient() volumeList, err := client.VolumeList(context.Background(), filters.Args{}) - require.NoError(t, err, "failed to list volumes") + assert.NilError(t, err, "failed to list volumes") volumes := []string{} for _, volume := range volumeList.Volumes { diff --git a/internal/testutil/helpers.go b/internal/testutil/helpers.go index 77224a0071..b1d8f44e3e 100644 --- a/internal/testutil/helpers.go +++ b/internal/testutil/helpers.go @@ -3,15 +3,15 @@ package testutil // import "github.com/docker/docker/internal/testutil" import ( "io" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) // ErrorContains checks that the error is not nil, and contains the expected // substring. -func ErrorContains(t require.TestingT, err error, expectedError string, msgAndArgs ...interface{}) { - require.Error(t, err, msgAndArgs...) - assert.Contains(t, err.Error(), expectedError, msgAndArgs...) +func ErrorContains(t assert.TestingT, err error, expectedError string, msgAndArgs ...interface{}) { + assert.Assert(t, is.ErrorContains(err, ""), msgAndArgs) + assert.Check(t, is.Contains(err.Error(), expectedError), msgAndArgs) } // DevZero acts like /dev/zero but in an OS-independent fashion. diff --git a/internal/testutil/stringutils_test.go b/internal/testutil/stringutils_test.go index a0f95755c7..1dd09af95f 100644 --- a/internal/testutil/stringutils_test.go +++ b/internal/testutil/stringutils_test.go @@ -3,13 +3,14 @@ package testutil // import "github.com/docker/docker/internal/testutil" import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func testLengthHelper(generator func(int) string, t *testing.T) { expectedLength := 20 s := generator(expectedLength) - assert.Equal(t, expectedLength, len(s)) + assert.Check(t, is.Equal(expectedLength, len(s))) } func testUniquenessHelper(generator func(int) string, t *testing.T) { @@ -17,9 +18,9 @@ func testUniquenessHelper(generator func(int) string, t *testing.T) { set := make(map[string]struct{}, repeats) for i := 0; i < repeats; i = i + 1 { str := generator(64) - assert.Equal(t, 64, len(str)) + assert.Check(t, is.Equal(64, len(str))) _, ok := set[str] - assert.False(t, ok, "Random number is repeated") + assert.Check(t, !ok, "Random number is repeated") set[str] = struct{}{} } } diff --git a/libcontainerd/queue_test.go b/libcontainerd/queue_test.go index 92ee22a9f3..df5332c128 100644 --- a/libcontainerd/queue_test.go +++ b/libcontainerd/queue_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestSerialization(t *testing.T) { @@ -16,15 +16,15 @@ func TestSerialization(t *testing.T) { q.append("aaa", func() { //simulate a long time task time.Sleep(10 * time.Millisecond) - require.EqualValues(t, serialization, 1) + assert.Equal(t, serialization, 1) serialization = 2 }) q.append("aaa", func() { - require.EqualValues(t, serialization, 2) + assert.Equal(t, serialization, 2) serialization = 3 }) q.append("aaa", func() { - require.EqualValues(t, serialization, 3) + assert.Equal(t, serialization, 3) serialization = 4 }) time.Sleep(20 * time.Millisecond) diff --git a/opts/quotedstring_test.go b/opts/quotedstring_test.go index e24257a5d4..21e6e4c85a 100644 --- a/opts/quotedstring_test.go +++ b/opts/quotedstring_test.go @@ -3,27 +3,28 @@ package opts // import "github.com/docker/docker/opts" import ( "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestQuotedStringSetWithQuotes(t *testing.T) { value := "" qs := NewQuotedString(&value) - assert.NoError(t, qs.Set(`"something"`)) - assert.Equal(t, "something", qs.String()) - assert.Equal(t, "something", value) + assert.Check(t, qs.Set(`"something"`)) + assert.Check(t, is.Equal("something", qs.String())) + assert.Check(t, is.Equal("something", value)) } func TestQuotedStringSetWithMismatchedQuotes(t *testing.T) { value := "" qs := NewQuotedString(&value) - assert.NoError(t, qs.Set(`"something'`)) - assert.Equal(t, `"something'`, qs.String()) + assert.Check(t, qs.Set(`"something'`)) + assert.Check(t, is.Equal(`"something'`, qs.String())) } func TestQuotedStringSetWithNoQuotes(t *testing.T) { value := "" qs := NewQuotedString(&value) - assert.NoError(t, qs.Set("something")) - assert.Equal(t, "something", qs.String()) + assert.Check(t, qs.Set("something")) + assert.Check(t, is.Equal("something", qs.String())) } diff --git a/pkg/archive/archive_linux_test.go b/pkg/archive/archive_linux_test.go index e48ef1aa11..b397c8abfa 100644 --- a/pkg/archive/archive_linux_test.go +++ b/pkg/archive/archive_linux_test.go @@ -8,7 +8,7 @@ import ( "testing" "github.com/docker/docker/pkg/system" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" "golang.org/x/sys/unix" ) @@ -24,35 +24,35 @@ import ( func setupOverlayTestDir(t *testing.T, src string) { // Create opaque directory containing single file and permission 0700 err := os.Mkdir(filepath.Join(src, "d1"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = system.Lsetxattr(filepath.Join(src, "d1"), "trusted.overlay.opaque", []byte("y"), 0) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(src, "d1", "f1"), []byte{}, 0600) - require.NoError(t, err) + assert.NilError(t, err) // Create another opaque directory containing single file but with permission 0750 err = os.Mkdir(filepath.Join(src, "d2"), 0750) - require.NoError(t, err) + assert.NilError(t, err) err = system.Lsetxattr(filepath.Join(src, "d2"), "trusted.overlay.opaque", []byte("y"), 0) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(src, "d2", "f1"), []byte{}, 0660) - require.NoError(t, err) + assert.NilError(t, err) // Create regular directory with deleted file err = os.Mkdir(filepath.Join(src, "d3"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = system.Mknod(filepath.Join(src, "d3", "f1"), unix.S_IFCHR, 0) - require.NoError(t, err) + assert.NilError(t, err) } func checkOpaqueness(t *testing.T, path string, opaque string) { xattrOpaque, err := system.Lgetxattr(path, "trusted.overlay.opaque") - require.NoError(t, err) + assert.NilError(t, err) if string(xattrOpaque) != opaque { t.Fatalf("Unexpected opaque value: %q, expected %q", string(xattrOpaque), opaque) @@ -62,7 +62,7 @@ func checkOpaqueness(t *testing.T, path string, opaque string) { func checkOverlayWhiteout(t *testing.T, path string) { stat, err := os.Stat(path) - require.NoError(t, err) + assert.NilError(t, err) statT, ok := stat.Sys().(*syscall.Stat_t) if !ok { @@ -75,7 +75,7 @@ func checkOverlayWhiteout(t *testing.T, path string) { func checkFileMode(t *testing.T, path string, perm os.FileMode) { stat, err := os.Stat(path) - require.NoError(t, err) + assert.NilError(t, err) if stat.Mode() != perm { t.Fatalf("Unexpected file mode for %s: %o, expected %o", path, stat.Mode(), perm) @@ -84,17 +84,17 @@ func checkFileMode(t *testing.T, path string, perm os.FileMode) { func TestOverlayTarUntar(t *testing.T) { oldmask, err := system.Umask(0) - require.NoError(t, err) + assert.NilError(t, err) defer system.Umask(oldmask) src, err := ioutil.TempDir("", "docker-test-overlay-tar-src") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(src) setupOverlayTestDir(t, src) dst, err := ioutil.TempDir("", "docker-test-overlay-tar-dst") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dst) options := &TarOptions{ @@ -102,11 +102,11 @@ func TestOverlayTarUntar(t *testing.T) { WhiteoutFormat: OverlayWhiteoutFormat, } archive, err := TarWithOptions(src, options) - require.NoError(t, err) + assert.NilError(t, err) defer archive.Close() err = Untar(archive, dst, options) - require.NoError(t, err) + assert.NilError(t, err) checkFileMode(t, filepath.Join(dst, "d1"), 0700|os.ModeDir) checkFileMode(t, filepath.Join(dst, "d2"), 0750|os.ModeDir) @@ -123,31 +123,31 @@ func TestOverlayTarUntar(t *testing.T) { func TestOverlayTarAUFSUntar(t *testing.T) { oldmask, err := system.Umask(0) - require.NoError(t, err) + assert.NilError(t, err) defer system.Umask(oldmask) src, err := ioutil.TempDir("", "docker-test-overlay-tar-src") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(src) setupOverlayTestDir(t, src) dst, err := ioutil.TempDir("", "docker-test-overlay-tar-dst") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dst) archive, err := TarWithOptions(src, &TarOptions{ Compression: Uncompressed, WhiteoutFormat: OverlayWhiteoutFormat, }) - require.NoError(t, err) + assert.NilError(t, err) defer archive.Close() err = Untar(archive, dst, &TarOptions{ Compression: Uncompressed, WhiteoutFormat: AUFSWhiteoutFormat, }) - require.NoError(t, err) + assert.NilError(t, err) checkFileMode(t, filepath.Join(dst, "d1"), 0700|os.ModeDir) checkFileMode(t, filepath.Join(dst, "d1", WhiteoutOpaqueDir), 0700) diff --git a/pkg/archive/archive_test.go b/pkg/archive/archive_test.go index 70db8d4a1b..296b636a6e 100644 --- a/pkg/archive/archive_test.go +++ b/pkg/archive/archive_test.go @@ -17,8 +17,8 @@ import ( "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/ioutils" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) var tmp string @@ -263,7 +263,7 @@ func TestCmdStreamGood(t *testing.T) { func TestUntarPathWithInvalidDest(t *testing.T) { tempFolder, err := ioutil.TempDir("", "docker-archive-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tempFolder) invalidDestFolder := filepath.Join(tempFolder, "invalidDest") // Create a src file @@ -282,7 +282,7 @@ func TestUntarPathWithInvalidDest(t *testing.T) { cmd := exec.Command("sh", "-c", "tar cf "+tarFileU+" "+srcFileU) _, err = cmd.CombinedOutput() - require.NoError(t, err) + assert.NilError(t, err) err = defaultUntarPath(tarFile, invalidDestFolder) if err == nil { @@ -304,7 +304,7 @@ func TestUntarPathWithInvalidSrc(t *testing.T) { func TestUntarPath(t *testing.T) { tmpFolder, err := ioutil.TempDir("", "docker-archive-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpFolder) srcFile := filepath.Join(tmpFolder, "src") tarFile := filepath.Join(tmpFolder, "src.tar") @@ -325,7 +325,7 @@ func TestUntarPath(t *testing.T) { } cmd := exec.Command("sh", "-c", "tar cf "+tarFileU+" "+srcFileU) _, err = cmd.CombinedOutput() - require.NoError(t, err) + assert.NilError(t, err) err = defaultUntarPath(tarFile, destFolder) if err != nil { @@ -726,12 +726,12 @@ func TestTarUntar(t *testing.T) { func TestTarWithOptionsChownOptsAlwaysOverridesIdPair(t *testing.T) { origin, err := ioutil.TempDir("", "docker-test-tar-chown-opt") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(origin) filePath := filepath.Join(origin, "1") err = ioutil.WriteFile(filePath, []byte("hello world"), 0700) - require.NoError(t, err) + assert.NilError(t, err) idMaps := []idtools.IDMap{ 0: { @@ -759,7 +759,7 @@ func TestTarWithOptionsChownOptsAlwaysOverridesIdPair(t *testing.T) { } for _, testCase := range cases { reader, err := TarWithOptions(filePath, testCase.opts) - require.NoError(t, err) + assert.NilError(t, err) tr := tar.NewReader(reader) defer reader.Close() for { @@ -768,9 +768,9 @@ func TestTarWithOptionsChownOptsAlwaysOverridesIdPair(t *testing.T) { // end of tar archive break } - require.NoError(t, err) - assert.Equal(t, hdr.Uid, testCase.expectedUID, "Uid equals expected value") - assert.Equal(t, hdr.Gid, testCase.expectedGID, "Gid equals expected value") + assert.NilError(t, err) + assert.Check(t, is.Equal(hdr.Uid, testCase.expectedUID), "Uid equals expected value") + assert.Check(t, is.Equal(hdr.Gid, testCase.expectedGID), "Gid equals expected value") } } } @@ -1182,10 +1182,10 @@ func TestUntarInvalidSymlink(t *testing.T) { func TestTempArchiveCloseMultipleTimes(t *testing.T) { reader := ioutil.NopCloser(strings.NewReader("hello")) tempArchive, err := NewTempArchive(reader, "") - require.NoError(t, err) + assert.NilError(t, err) buf := make([]byte, 10) n, err := tempArchive.Read(buf) - require.NoError(t, err) + assert.NilError(t, err) if n != 5 { t.Fatalf("Expected to read 5 bytes. Read %d instead", n) } @@ -1244,7 +1244,7 @@ func TestReplaceFileTarWrapper(t *testing.T) { map[string]TarModifierFunc{testcase.filename: testcase.modifier}) actual := readFileFromArchive(t, resultArchive, testcase.filename, testcase.fileCount, testcase.doc) - assert.Equal(t, testcase.expected, actual, testcase.doc) + assert.Check(t, is.Equal(testcase.expected, actual), testcase.doc) } } @@ -1255,27 +1255,27 @@ func TestPrefixHeaderReadable(t *testing.T) { var testFile = []byte("\x1f\x8b\x08\x08\x44\x21\x68\x59\x00\x03\x74\x2e\x74\x61\x72\x00\x4b\xcb\xcf\x67\xa0\x35\x30\x80\x00\x86\x06\x10\x47\x01\xc1\x37\x40\x00\x54\xb6\xb1\xa1\xa9\x99\x09\x48\x25\x1d\x40\x69\x71\x49\x62\x91\x02\xe5\x76\xa1\x79\x84\x21\x91\xd6\x80\x72\xaf\x8f\x82\x51\x30\x0a\x46\x36\x00\x00\xf0\x1c\x1e\x95\x00\x06\x00\x00") tmpDir, err := ioutil.TempDir("", "prefix-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpDir) err = Untar(bytes.NewReader(testFile), tmpDir, nil) - require.NoError(t, err) + assert.NilError(t, err) baseName := "foo" pth := strings.Repeat("a", 100-len(baseName)) + "/" + baseName _, err = os.Lstat(filepath.Join(tmpDir, pth)) - require.NoError(t, err) + assert.NilError(t, err) } func buildSourceArchive(t *testing.T, numberOfFiles int) (io.ReadCloser, func()) { srcDir, err := ioutil.TempDir("", "docker-test-srcDir") - require.NoError(t, err) + assert.NilError(t, err) _, err = prepareUntarSourceDirectory(numberOfFiles, srcDir, false) - require.NoError(t, err) + assert.NilError(t, err) sourceArchive, err := TarWithOptions(srcDir, &TarOptions{}) - require.NoError(t, err) + assert.NilError(t, err) return sourceArchive, func() { os.RemoveAll(srcDir) sourceArchive.Close() @@ -1291,7 +1291,7 @@ func createOrReplaceModifier(path string, header *tar.Header, content io.Reader) func createModifier(t *testing.T) TarModifierFunc { return func(path string, header *tar.Header, content io.Reader) (*tar.Header, []byte, error) { - assert.Nil(t, content) + assert.Check(t, is.Nil(content)) return createOrReplaceModifier(path, header, content) } } @@ -1309,17 +1309,17 @@ func appendModifier(path string, header *tar.Header, content io.Reader) (*tar.He func readFileFromArchive(t *testing.T, archive io.ReadCloser, name string, expectedCount int, doc string) string { destDir, err := ioutil.TempDir("", "docker-test-destDir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(destDir) err = Untar(archive, destDir, nil) - require.NoError(t, err) + assert.NilError(t, err) files, _ := ioutil.ReadDir(destDir) - assert.Len(t, files, expectedCount, doc) + assert.Check(t, is.Len(files, expectedCount), doc) content, err := ioutil.ReadFile(filepath.Join(destDir, name)) - assert.NoError(t, err) + assert.Check(t, err) return string(content) } diff --git a/pkg/archive/archive_unix_test.go b/pkg/archive/archive_unix_test.go index 17de96e94d..5d13c3542b 100644 --- a/pkg/archive/archive_unix_test.go +++ b/pkg/archive/archive_unix_test.go @@ -13,8 +13,8 @@ import ( "testing" "github.com/docker/docker/pkg/system" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/sys/unix" ) @@ -72,18 +72,18 @@ func TestChmodTarEntry(t *testing.T) { func TestTarWithHardLink(t *testing.T) { origin, err := ioutil.TempDir("", "docker-test-tar-hardlink") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(origin) err = ioutil.WriteFile(filepath.Join(origin, "1"), []byte("hello world"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = os.Link(filepath.Join(origin, "1"), filepath.Join(origin, "2")) - require.NoError(t, err) + assert.NilError(t, err) var i1, i2 uint64 i1, err = getNlink(filepath.Join(origin, "1")) - require.NoError(t, err) + assert.NilError(t, err) // sanity check that we can hardlink if i1 != 2 { @@ -91,48 +91,48 @@ func TestTarWithHardLink(t *testing.T) { } dest, err := ioutil.TempDir("", "docker-test-tar-hardlink-dest") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dest) // we'll do this in two steps to separate failure fh, err := Tar(origin, Uncompressed) - require.NoError(t, err) + assert.NilError(t, err) // ensure we can read the whole thing with no error, before writing back out buf, err := ioutil.ReadAll(fh) - require.NoError(t, err) + assert.NilError(t, err) bRdr := bytes.NewReader(buf) err = Untar(bRdr, dest, &TarOptions{Compression: Uncompressed}) - require.NoError(t, err) + assert.NilError(t, err) i1, err = getInode(filepath.Join(dest, "1")) - require.NoError(t, err) + assert.NilError(t, err) i2, err = getInode(filepath.Join(dest, "2")) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, i1, i2) + assert.Check(t, is.Equal(i1, i2)) } func TestTarWithHardLinkAndRebase(t *testing.T) { tmpDir, err := ioutil.TempDir("", "docker-test-tar-hardlink-rebase") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpDir) origin := filepath.Join(tmpDir, "origin") err = os.Mkdir(origin, 0700) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(origin, "1"), []byte("hello world"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = os.Link(filepath.Join(origin, "1"), filepath.Join(origin, "2")) - require.NoError(t, err) + assert.NilError(t, err) var i1, i2 uint64 i1, err = getNlink(filepath.Join(origin, "1")) - require.NoError(t, err) + assert.NilError(t, err) // sanity check that we can hardlink if i1 != 2 { @@ -141,20 +141,20 @@ func TestTarWithHardLinkAndRebase(t *testing.T) { dest := filepath.Join(tmpDir, "dest") bRdr, err := TarResourceRebase(origin, "origin") - require.NoError(t, err) + assert.NilError(t, err) dstDir, srcBase := SplitPathDirEntry(origin) _, dstBase := SplitPathDirEntry(dest) content := RebaseArchiveEntries(bRdr, srcBase, dstBase) err = Untar(content, dstDir, &TarOptions{Compression: Uncompressed, NoLchown: true, NoOverwriteDirNonDir: true}) - require.NoError(t, err) + assert.NilError(t, err) i1, err = getInode(filepath.Join(dest, "1")) - require.NoError(t, err) + assert.NilError(t, err) i2, err = getInode(filepath.Join(dest, "2")) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, i1, i2) + assert.Check(t, is.Equal(i1, i2)) } func getNlink(path string) (uint64, error) { @@ -184,37 +184,37 @@ func getInode(path string) (uint64, error) { func TestTarWithBlockCharFifo(t *testing.T) { origin, err := ioutil.TempDir("", "docker-test-tar-hardlink") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(origin) err = ioutil.WriteFile(filepath.Join(origin, "1"), []byte("hello world"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = system.Mknod(filepath.Join(origin, "2"), unix.S_IFBLK, int(system.Mkdev(int64(12), int64(5)))) - require.NoError(t, err) + assert.NilError(t, err) err = system.Mknod(filepath.Join(origin, "3"), unix.S_IFCHR, int(system.Mkdev(int64(12), int64(5)))) - require.NoError(t, err) + assert.NilError(t, err) err = system.Mknod(filepath.Join(origin, "4"), unix.S_IFIFO, int(system.Mkdev(int64(12), int64(5)))) - require.NoError(t, err) + assert.NilError(t, err) dest, err := ioutil.TempDir("", "docker-test-tar-hardlink-dest") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dest) // we'll do this in two steps to separate failure fh, err := Tar(origin, Uncompressed) - require.NoError(t, err) + assert.NilError(t, err) // ensure we can read the whole thing with no error, before writing back out buf, err := ioutil.ReadAll(fh) - require.NoError(t, err) + assert.NilError(t, err) bRdr := bytes.NewReader(buf) err = Untar(bRdr, dest, &TarOptions{Compression: Uncompressed}) - require.NoError(t, err) + assert.NilError(t, err) changes, err := ChangesDirs(origin, dest) - require.NoError(t, err) + assert.NilError(t, err) if len(changes) > 0 { t.Fatalf("Tar with special device (block, char, fifo) should keep them (recreate them when untar) : %v", changes) @@ -224,17 +224,17 @@ func TestTarWithBlockCharFifo(t *testing.T) { // TestTarUntarWithXattr is Unix as Lsetxattr is not supported on Windows func TestTarUntarWithXattr(t *testing.T) { origin, err := ioutil.TempDir("", "docker-test-untar-origin") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(origin) err = ioutil.WriteFile(filepath.Join(origin, "1"), []byte("hello world"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(origin, "2"), []byte("welcome!"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(filepath.Join(origin, "3"), []byte("will be ignored"), 0700) - require.NoError(t, err) + assert.NilError(t, err) err = system.Lsetxattr(filepath.Join(origin, "2"), "security.capability", []byte{0x00}, 0) - require.NoError(t, err) + assert.NilError(t, err) for _, c := range []Compression{ Uncompressed, @@ -309,7 +309,7 @@ func TestCopyInfoDestinationPathSymlink(t *testing.T) { for _, info := range testData { p := filepath.Join(tmpDir, info.resource.path, info.file) ci, err := CopyInfoDestinationPath(p) - assert.NoError(t, err) - assert.Equal(t, info.expected, ci) + assert.Check(t, err) + assert.Check(t, is.DeepEqual(info.expected, ci)) } } diff --git a/pkg/archive/changes_test.go b/pkg/archive/changes_test.go index f316cd3203..2d316e77be 100644 --- a/pkg/archive/changes_test.go +++ b/pkg/archive/changes_test.go @@ -11,7 +11,7 @@ import ( "time" "github.com/docker/docker/pkg/system" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func max(x, y int) int { @@ -76,19 +76,19 @@ func provisionSampleDir(t *testing.T, root string, files []FileData) { p := path.Join(root, info.path) if info.filetype == Dir { err := os.MkdirAll(p, info.permissions) - require.NoError(t, err) + assert.NilError(t, err) } else if info.filetype == Regular { err := ioutil.WriteFile(p, []byte(info.contents), info.permissions) - require.NoError(t, err) + assert.NilError(t, err) } else if info.filetype == Symlink { err := os.Symlink(info.contents, p) - require.NoError(t, err) + assert.NilError(t, err) } if info.filetype != Symlink { // Set a consistent ctime, atime for all files and dirs err := system.Chtimes(p, now, now) - require.NoError(t, err) + assert.NilError(t, err) } } } @@ -118,14 +118,14 @@ func TestChangesWithNoChanges(t *testing.T) { t.Skip("symlinks on Windows") } rwLayer, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(rwLayer) layer, err := ioutil.TempDir("", "docker-changes-test-layer") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(layer) createSampleDir(t, layer) changes, err := Changes([]string{layer}, rwLayer) - require.NoError(t, err) + assert.NilError(t, err) if len(changes) != 0 { t.Fatalf("Changes with no difference should have detect no changes, but detected %d", len(changes)) } @@ -139,14 +139,14 @@ func TestChangesWithChanges(t *testing.T) { } // Mock the readonly layer layer, err := ioutil.TempDir("", "docker-changes-test-layer") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(layer) createSampleDir(t, layer) os.MkdirAll(path.Join(layer, "dir1/subfolder"), 0740) // Mock the RW layer rwLayer, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(rwLayer) // Create a folder in RW layer @@ -163,7 +163,7 @@ func TestChangesWithChanges(t *testing.T) { ioutil.WriteFile(newFile, []byte{}, 0740) changes, err := Changes([]string{layer}, rwLayer) - require.NoError(t, err) + assert.NilError(t, err) expectedChanges := []Change{ {"/dir1", ChangeModify}, @@ -183,7 +183,7 @@ func TestChangesWithChangesGH13590(t *testing.T) { t.Skip("symlinks on Windows") } baseLayer, err := ioutil.TempDir("", "docker-changes-test.") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(baseLayer) dir3 := path.Join(baseLayer, "dir1/dir2/dir3") @@ -193,7 +193,7 @@ func TestChangesWithChangesGH13590(t *testing.T) { ioutil.WriteFile(file, []byte("hello"), 0666) layer, err := ioutil.TempDir("", "docker-changes-test2.") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(layer) // Test creating a new file @@ -206,7 +206,7 @@ func TestChangesWithChangesGH13590(t *testing.T) { ioutil.WriteFile(file, []byte("bye"), 0666) changes, err := Changes([]string{baseLayer}, layer) - require.NoError(t, err) + assert.NilError(t, err) expectedChanges := []Change{ {"/dir1/dir2/dir3", ChangeModify}, @@ -216,7 +216,7 @@ func TestChangesWithChangesGH13590(t *testing.T) { // Now test changing a file layer, err = ioutil.TempDir("", "docker-changes-test3.") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(layer) if err := copyDir(baseLayer+"/dir1", layer+"/"); err != nil { @@ -227,7 +227,7 @@ func TestChangesWithChangesGH13590(t *testing.T) { ioutil.WriteFile(file, []byte("bye"), 0666) changes, err = Changes([]string{baseLayer}, layer) - require.NoError(t, err) + assert.NilError(t, err) expectedChanges = []Change{ {"/dir1/dir2/dir3/file.txt", ChangeModify}, @@ -243,15 +243,15 @@ func TestChangesDirsEmpty(t *testing.T) { t.Skip("symlinks on Windows") } src, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(src) createSampleDir(t, src) dst := src + "-copy" err = copyDir(src, dst) - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dst) changes, err := ChangesDirs(dst, src) - require.NoError(t, err) + assert.NilError(t, err) if len(changes) != 0 { t.Fatalf("Reported changes for identical dirs: %v", changes) @@ -263,64 +263,64 @@ func TestChangesDirsEmpty(t *testing.T) { func mutateSampleDir(t *testing.T, root string) { // Remove a regular file err := os.RemoveAll(path.Join(root, "file1")) - require.NoError(t, err) + assert.NilError(t, err) // Remove a directory err = os.RemoveAll(path.Join(root, "dir1")) - require.NoError(t, err) + assert.NilError(t, err) // Remove a symlink err = os.RemoveAll(path.Join(root, "symlink1")) - require.NoError(t, err) + assert.NilError(t, err) // Rewrite a file err = ioutil.WriteFile(path.Join(root, "file2"), []byte("fileNN\n"), 0777) - require.NoError(t, err) + assert.NilError(t, err) // Replace a file err = os.RemoveAll(path.Join(root, "file3")) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(path.Join(root, "file3"), []byte("fileMM\n"), 0404) - require.NoError(t, err) + assert.NilError(t, err) // Touch file err = system.Chtimes(path.Join(root, "file4"), time.Now().Add(time.Second), time.Now().Add(time.Second)) - require.NoError(t, err) + assert.NilError(t, err) // Replace file with dir err = os.RemoveAll(path.Join(root, "file5")) - require.NoError(t, err) + assert.NilError(t, err) err = os.MkdirAll(path.Join(root, "file5"), 0666) - require.NoError(t, err) + assert.NilError(t, err) // Create new file err = ioutil.WriteFile(path.Join(root, "filenew"), []byte("filenew\n"), 0777) - require.NoError(t, err) + assert.NilError(t, err) // Create new dir err = os.MkdirAll(path.Join(root, "dirnew"), 0766) - require.NoError(t, err) + assert.NilError(t, err) // Create a new symlink err = os.Symlink("targetnew", path.Join(root, "symlinknew")) - require.NoError(t, err) + assert.NilError(t, err) // Change a symlink err = os.RemoveAll(path.Join(root, "symlink2")) - require.NoError(t, err) + assert.NilError(t, err) err = os.Symlink("target2change", path.Join(root, "symlink2")) - require.NoError(t, err) + assert.NilError(t, err) // Replace dir with file err = os.RemoveAll(path.Join(root, "dir2")) - require.NoError(t, err) + assert.NilError(t, err) err = ioutil.WriteFile(path.Join(root, "dir2"), []byte("dir2\n"), 0777) - require.NoError(t, err) + assert.NilError(t, err) // Touch dir err = system.Chtimes(path.Join(root, "dir3"), time.Now().Add(time.Second), time.Now().Add(time.Second)) - require.NoError(t, err) + assert.NilError(t, err) } func TestChangesDirsMutated(t *testing.T) { @@ -330,18 +330,18 @@ func TestChangesDirsMutated(t *testing.T) { t.Skip("symlinks on Windows") } src, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) createSampleDir(t, src) dst := src + "-copy" err = copyDir(src, dst) - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(src) defer os.RemoveAll(dst) mutateSampleDir(t, dst) changes, err := ChangesDirs(dst, src) - require.NoError(t, err) + assert.NilError(t, err) sort.Sort(changesByPath(changes)) @@ -386,29 +386,29 @@ func TestApplyLayer(t *testing.T) { t.Skip("symlinks on Windows") } src, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) createSampleDir(t, src) defer os.RemoveAll(src) dst := src + "-copy" err = copyDir(src, dst) - require.NoError(t, err) + assert.NilError(t, err) mutateSampleDir(t, dst) defer os.RemoveAll(dst) changes, err := ChangesDirs(dst, src) - require.NoError(t, err) + assert.NilError(t, err) layer, err := ExportChanges(dst, changes, nil, nil) - require.NoError(t, err) + assert.NilError(t, err) layerCopy, err := NewTempArchive(layer, "") - require.NoError(t, err) + assert.NilError(t, err) _, err = ApplyLayer(src, layerCopy) - require.NoError(t, err) + assert.NilError(t, err) changes2, err := ChangesDirs(src, dst) - require.NoError(t, err) + assert.NilError(t, err) if len(changes2) != 0 { t.Fatalf("Unexpected differences after reapplying mutation: %v", changes2) @@ -422,18 +422,18 @@ func TestChangesSizeWithHardlinks(t *testing.T) { t.Skip("hardlinks on Windows") } srcDir, err := ioutil.TempDir("", "docker-test-srcDir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(srcDir) destDir, err := ioutil.TempDir("", "docker-test-destDir") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(destDir) creationSize, err := prepareUntarSourceDirectory(100, destDir, true) - require.NoError(t, err) + assert.NilError(t, err) changes, err := ChangesDirs(destDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) got := ChangesSize(destDir, changes) if got != int64(creationSize) { @@ -460,14 +460,14 @@ func TestChangesSizeWithOnlyDeleteChanges(t *testing.T) { func TestChangesSize(t *testing.T) { parentPath, err := ioutil.TempDir("", "docker-changes-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(parentPath) addition := path.Join(parentPath, "addition") err = ioutil.WriteFile(addition, []byte{0x01, 0x01, 0x01}, 0744) - require.NoError(t, err) + assert.NilError(t, err) modification := path.Join(parentPath, "modification") err = ioutil.WriteFile(modification, []byte{0x01, 0x01, 0x01}, 0744) - require.NoError(t, err) + assert.NilError(t, err) changes := []Change{ {Path: "addition", Kind: ChangeAdd}, diff --git a/pkg/archive/copy_unix_test.go b/pkg/archive/copy_unix_test.go index 3126d8b51e..08b1702cf1 100644 --- a/pkg/archive/copy_unix_test.go +++ b/pkg/archive/copy_unix_test.go @@ -16,7 +16,7 @@ import ( "strings" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func removeAllPaths(paths ...string) { @@ -29,10 +29,10 @@ func getTestTempDirs(t *testing.T) (tmpDirA, tmpDirB string) { var err error tmpDirA, err = ioutil.TempDir("", "archive-copy-test") - require.NoError(t, err) + assert.NilError(t, err) tmpDirB, err = ioutil.TempDir("", "archive-copy-test") - require.NoError(t, err) + assert.NilError(t, err) return } @@ -119,7 +119,7 @@ func logDirContents(t *testing.T, dirPath string) { t.Logf("logging directory contents: %q", dirPath) err := filepath.Walk(dirPath, logWalkedPaths) - require.NoError(t, err) + assert.NilError(t, err) } func testCopyHelper(t *testing.T, srcPath, dstPath string) (err error) { @@ -293,7 +293,7 @@ func TestCopyCaseA(t *testing.T) { } err = fileContentsEqual(t, srcPath, dstPath) - require.NoError(t, err) + assert.NilError(t, err) os.Remove(dstPath) symlinkPath := filepath.Join(tmpDirA, "symlink3") @@ -305,14 +305,14 @@ func TestCopyCaseA(t *testing.T) { } err = fileContentsEqual(t, linkTarget, dstPath) - require.NoError(t, err) + assert.NilError(t, err) os.Remove(dstPath) if err = testCopyHelperFSym(t, symlinkPath1, dstPath); err != nil { t.Fatalf("unexpected error %T: %s", err, err) } err = fileContentsEqual(t, linkTarget, dstPath) - require.NoError(t, err) + assert.NilError(t, err) } // B. SRC specifies a file and DST (with trailing path separator) doesn't @@ -374,7 +374,7 @@ func TestCopyCaseC(t *testing.T) { } err = fileContentsEqual(t, srcPath, dstPath) - require.NoError(t, err) + assert.NilError(t, err) } // C. Symbol link following version: @@ -411,7 +411,7 @@ func TestCopyCaseCFSym(t *testing.T) { } err = fileContentsEqual(t, linkTarget, dstPath) - require.NoError(t, err) + assert.NilError(t, err) } // D. SRC specifies a file and DST exists as a directory. This should place @@ -441,7 +441,7 @@ func TestCopyCaseD(t *testing.T) { } err = fileContentsEqual(t, srcPath, dstPath) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -460,7 +460,7 @@ func TestCopyCaseD(t *testing.T) { } err = fileContentsEqual(t, srcPath, dstPath) - require.NoError(t, err) + assert.NilError(t, err) } // D. Symbol link following version: @@ -492,7 +492,7 @@ func TestCopyCaseDFSym(t *testing.T) { } err = fileContentsEqual(t, linkTarget, dstPath) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -511,7 +511,7 @@ func TestCopyCaseDFSym(t *testing.T) { } err = fileContentsEqual(t, linkTarget, dstPath) - require.NoError(t, err) + assert.NilError(t, err) } // E. SRC specifies a directory and DST does not exist. This should create a @@ -554,7 +554,7 @@ func TestCopyCaseE(t *testing.T) { } err = dirContentsEqual(t, dstDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) } // E. Symbol link following version: @@ -599,7 +599,7 @@ func TestCopyCaseEFSym(t *testing.T) { } err = dirContentsEqual(t, dstDir, linkTarget) - require.NoError(t, err) + assert.NilError(t, err) } // F. SRC specifies a directory and DST exists as a file. This should cause an @@ -658,7 +658,7 @@ func TestCopyCaseG(t *testing.T) { } err = dirContentsEqual(t, resultDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -677,7 +677,7 @@ func TestCopyCaseG(t *testing.T) { } err = dirContentsEqual(t, resultDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) } // G. Symbol link version: @@ -704,7 +704,7 @@ func TestCopyCaseGFSym(t *testing.T) { } err = dirContentsEqual(t, resultDir, linkTarget) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -723,7 +723,7 @@ func TestCopyCaseGFSym(t *testing.T) { } err = dirContentsEqual(t, resultDir, linkTarget) - require.NoError(t, err) + assert.NilError(t, err) } // H. SRC specifies a directory's contents only and DST does not exist. This @@ -884,7 +884,7 @@ func TestCopyCaseJ(t *testing.T) { } err = dirContentsEqual(t, dstDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -903,7 +903,7 @@ func TestCopyCaseJ(t *testing.T) { } err = dirContentsEqual(t, dstDir, srcDir) - require.NoError(t, err) + assert.NilError(t, err) } // J. Symbol link following version: @@ -935,7 +935,7 @@ func TestCopyCaseJFSym(t *testing.T) { } err = dirContentsEqual(t, dstDir, linkTarget) - require.NoError(t, err) + assert.NilError(t, err) // Now try again but using a trailing path separator for dstDir. @@ -954,5 +954,5 @@ func TestCopyCaseJFSym(t *testing.T) { } err = dirContentsEqual(t, dstDir, linkTarget) - require.NoError(t, err) + assert.NilError(t, err) } diff --git a/pkg/archive/wrap_test.go b/pkg/archive/wrap_test.go index 6decf8fccb..979536777f 100644 --- a/pkg/archive/wrap_test.go +++ b/pkg/archive/wrap_test.go @@ -6,12 +6,12 @@ import ( "io" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestGenerateEmptyFile(t *testing.T) { archive, err := Generate("emptyFile") - require.NoError(t, err) + assert.NilError(t, err) if archive == nil { t.Fatal("The generated archive should not be nil.") } @@ -28,7 +28,7 @@ func TestGenerateEmptyFile(t *testing.T) { if err == io.EOF { break } - require.NoError(t, err) + assert.NilError(t, err) buf := new(bytes.Buffer) buf.ReadFrom(tr) content := buf.String() @@ -52,7 +52,7 @@ func TestGenerateEmptyFile(t *testing.T) { func TestGenerateWithContent(t *testing.T) { archive, err := Generate("file", "content") - require.NoError(t, err) + assert.NilError(t, err) if archive == nil { t.Fatal("The generated archive should not be nil.") } @@ -69,7 +69,7 @@ func TestGenerateWithContent(t *testing.T) { if err == io.EOF { break } - require.NoError(t, err) + assert.NilError(t, err) buf := new(bytes.Buffer) buf.ReadFrom(tr) content := buf.String() diff --git a/pkg/authorization/api_test.go b/pkg/authorization/api_test.go index 90a984276d..84964d2c5e 100644 --- a/pkg/authorization/api_test.go +++ b/pkg/authorization/api_test.go @@ -11,7 +11,8 @@ import ( "testing" "time" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestPeerCertificateMarshalJSON(t *testing.T) { @@ -32,21 +33,21 @@ func TestPeerCertificateMarshalJSON(t *testing.T) { } // generate private key privatekey, err := rsa.GenerateKey(rand.Reader, 2048) - require.NoError(t, err) + assert.NilError(t, err) publickey := &privatekey.PublicKey // create a self-signed certificate. template = parent var parent = template raw, err := x509.CreateCertificate(rand.Reader, template, parent, publickey, privatekey) - require.NoError(t, err) + assert.NilError(t, err) cert, err := x509.ParseCertificate(raw) - require.NoError(t, err) + assert.NilError(t, err) var certs = []*x509.Certificate{cert} addr := "www.authz.com/auth" req, err := http.NewRequest("GET", addr, nil) - require.NoError(t, err) + assert.NilError(t, err) req.RequestURI = addr req.TLS = &tls.ConnectionState{} @@ -58,15 +59,15 @@ func TestPeerCertificateMarshalJSON(t *testing.T) { t.Run("Marshalling :", func(t *testing.T) { raw, err = pcObj.MarshalJSON() - require.NotNil(t, raw) - require.Nil(t, err) + assert.Assert(t, raw != nil) + assert.NilError(t, err) }) t.Run("UnMarshalling :", func(t *testing.T) { err := pcObj.UnmarshalJSON(raw) - require.Nil(t, err) - require.Equal(t, "Earth", pcObj.Subject.Country[0]) - require.Equal(t, true, pcObj.IsCA) + assert.Assert(t, is.Nil(err)) + assert.Equal(t, "Earth", pcObj.Subject.Country[0]) + assert.Equal(t, true, pcObj.IsCA) }) diff --git a/pkg/authorization/middleware_test.go b/pkg/authorization/middleware_test.go index 3812d804e3..e32e4bf427 100644 --- a/pkg/authorization/middleware_test.go +++ b/pkg/authorization/middleware_test.go @@ -7,7 +7,7 @@ import ( "testing" "github.com/docker/docker/pkg/plugingetter" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestMiddleware(t *testing.T) { @@ -15,9 +15,9 @@ func TestMiddleware(t *testing.T) { var pluginGetter plugingetter.PluginGetter m := NewMiddleware(pluginNames, pluginGetter) authPlugins := m.getAuthzPlugins() - require.Equal(t, 2, len(authPlugins)) - require.EqualValues(t, pluginNames[0], authPlugins[0].Name()) - require.EqualValues(t, pluginNames[1], authPlugins[1].Name()) + assert.Equal(t, 2, len(authPlugins)) + assert.Equal(t, pluginNames[0], authPlugins[0].Name()) + assert.Equal(t, pluginNames[1], authPlugins[1].Name()) } func TestNewResponseModifier(t *testing.T) { @@ -25,17 +25,17 @@ func TestNewResponseModifier(t *testing.T) { modifier := NewResponseModifier(recorder) modifier.Header().Set("H1", "V1") modifier.Write([]byte("body")) - require.False(t, modifier.Hijacked()) + assert.Assert(t, !modifier.Hijacked()) modifier.WriteHeader(http.StatusInternalServerError) - require.NotNil(t, modifier.RawBody()) + assert.Assert(t, modifier.RawBody() != nil) raw, err := modifier.RawHeaders() - require.NotNil(t, raw) - require.Nil(t, err) + assert.Assert(t, raw != nil) + assert.NilError(t, err) headerData := strings.Split(strings.TrimSpace(string(raw)), ":") - require.EqualValues(t, "H1", strings.TrimSpace(headerData[0])) - require.EqualValues(t, "V1", strings.TrimSpace(headerData[1])) + assert.Equal(t, "H1", strings.TrimSpace(headerData[0])) + assert.Equal(t, "V1", strings.TrimSpace(headerData[1])) modifier.Flush() modifier.FlushAll() diff --git a/pkg/authorization/middleware_unix_test.go b/pkg/authorization/middleware_unix_test.go index 257832b338..ddfe9d958f 100644 --- a/pkg/authorization/middleware_unix_test.go +++ b/pkg/authorization/middleware_unix_test.go @@ -8,7 +8,8 @@ import ( "testing" "github.com/docker/docker/pkg/plugingetter" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -30,7 +31,7 @@ func TestMiddlewareWrapHandler(t *testing.T) { middleWare.SetPlugins([]string{"My Test Plugin"}) setAuthzPlugins(middleWare, authList) mdHandler := middleWare.WrapHandler(handler) - require.NotNil(t, mdHandler) + assert.Assert(t, mdHandler != nil) addr := "www.example.com/auth" req, _ := http.NewRequest("GET", addr, nil) @@ -46,7 +47,7 @@ func TestMiddlewareWrapHandler(t *testing.T) { Msg: "Server Auth Not Allowed", } if err := mdHandler(ctx, resp, req, map[string]string{}); err == nil { - require.Error(t, err) + assert.Assert(t, is.ErrorContains(err, "")) } }) @@ -57,7 +58,7 @@ func TestMiddlewareWrapHandler(t *testing.T) { Msg: "Server Auth Allowed", } if err := mdHandler(ctx, resp, req, map[string]string{}); err != nil { - require.NoError(t, err) + assert.NilError(t, err) } }) diff --git a/pkg/fileutils/fileutils_test.go b/pkg/fileutils/fileutils_test.go index 0a648d1466..b167538d5a 100644 --- a/pkg/fileutils/fileutils_test.go +++ b/pkg/fileutils/fileutils_test.go @@ -10,8 +10,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) // CopyFile with invalid src @@ -384,9 +384,9 @@ func TestMatches(t *testing.T) { for _, test := range tests { desc := fmt.Sprintf("pattern=%q text=%q", test.pattern, test.text) pm, err := NewPatternMatcher([]string{test.pattern}) - require.NoError(t, err, desc) + assert.NilError(t, err, desc) res, _ := pm.Matches(test.text) - assert.Equal(t, test.pass, res, desc) + assert.Check(t, is.Equal(test.pass, res), desc) } } diff --git a/pkg/idtools/idtools_unix_test.go b/pkg/idtools/idtools_unix_test.go index 931e332bb9..e493b9e8d5 100644 --- a/pkg/idtools/idtools_unix_test.go +++ b/pkg/idtools/idtools_unix_test.go @@ -10,9 +10,9 @@ import ( "path/filepath" "testing" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/gotestyourself/gotestyourself/skip" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "golang.org/x/sys/unix" ) @@ -89,7 +89,7 @@ func TestMkdirAllAndChown(t *testing.T) { func TestMkdirAllAndChownNew(t *testing.T) { RequiresRoot(t) dirName, err := ioutil.TempDir("", "mkdirnew") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dirName) testTree := map[string]node{ @@ -99,32 +99,32 @@ func TestMkdirAllAndChownNew(t *testing.T) { "lib/x86_64": {45, 45}, "lib/x86_64/share": {1, 1}, } - require.NoError(t, buildTree(dirName, testTree)) + assert.NilError(t, buildTree(dirName, testTree)) // test adding a directory to a pre-existing dir; only the new dir is owned by the uid/gid err = MkdirAllAndChownNew(filepath.Join(dirName, "usr", "share"), 0755, IDPair{UID: 99, GID: 99}) - require.NoError(t, err) + assert.NilError(t, err) testTree["usr/share"] = node{99, 99} verifyTree, err := readTree(dirName, "") - require.NoError(t, err) - require.NoError(t, compareTrees(testTree, verifyTree)) + assert.NilError(t, err) + assert.NilError(t, compareTrees(testTree, verifyTree)) // test 2-deep new directories--both should be owned by the uid/gid pair err = MkdirAllAndChownNew(filepath.Join(dirName, "lib", "some", "other"), 0755, IDPair{UID: 101, GID: 101}) - require.NoError(t, err) + assert.NilError(t, err) testTree["lib/some"] = node{101, 101} testTree["lib/some/other"] = node{101, 101} verifyTree, err = readTree(dirName, "") - require.NoError(t, err) - require.NoError(t, compareTrees(testTree, verifyTree)) + assert.NilError(t, err) + assert.NilError(t, compareTrees(testTree, verifyTree)) // test a directory that already exists; should NOT be chowned err = MkdirAllAndChownNew(filepath.Join(dirName, "usr"), 0755, IDPair{UID: 102, GID: 102}) - require.NoError(t, err) + assert.NilError(t, err) verifyTree, err = readTree(dirName, "") - require.NoError(t, err) - require.NoError(t, compareTrees(testTree, verifyTree)) + assert.NilError(t, err) + assert.NilError(t, compareTrees(testTree, verifyTree)) } func TestMkdirAndChown(t *testing.T) { @@ -235,7 +235,7 @@ func compareTrees(left, right map[string]node) error { func delUser(t *testing.T, name string) { _, err := execCmd("userdel", name) - assert.NoError(t, err) + assert.Check(t, err) } func TestParseSubidFileWithNewlinesAndComments(t *testing.T) { @@ -283,9 +283,9 @@ func TestGetRootUIDGID(t *testing.T) { } uid, gid, err := GetRootUIDGID(uidMap, gidMap) - assert.NoError(t, err) - assert.Equal(t, os.Getegid(), uid) - assert.Equal(t, os.Getegid(), gid) + assert.Check(t, err) + assert.Check(t, is.Equal(os.Getegid(), uid)) + assert.Check(t, is.Equal(os.Getegid(), gid)) uidMapError := []IDMap{ { @@ -295,7 +295,7 @@ func TestGetRootUIDGID(t *testing.T) { }, } _, _, err = GetRootUIDGID(uidMapError, gidMap) - assert.EqualError(t, err, "Container ID 0 cannot be mapped to a host ID") + assert.Check(t, is.Error(err, "Container ID 0 cannot be mapped to a host ID")) } func TestToContainer(t *testing.T) { @@ -308,74 +308,74 @@ func TestToContainer(t *testing.T) { } containerID, err := toContainer(2, uidMap) - assert.NoError(t, err) - assert.Equal(t, uidMap[0].ContainerID, containerID) + assert.Check(t, err) + assert.Check(t, is.Equal(uidMap[0].ContainerID, containerID)) } func TestNewIDMappings(t *testing.T) { RequiresRoot(t) _, _, err := AddNamespaceRangesUser(tempUser) - assert.NoError(t, err) + assert.Check(t, err) defer delUser(t, tempUser) tempUser, err := user.Lookup(tempUser) - assert.NoError(t, err) + assert.Check(t, err) gids, err := tempUser.GroupIds() - assert.NoError(t, err) + assert.Check(t, err) group, err := user.LookupGroupId(string(gids[0])) - assert.NoError(t, err) + assert.Check(t, err) idMappings, err := NewIDMappings(tempUser.Username, group.Name) - assert.NoError(t, err) + assert.Check(t, err) rootUID, rootGID, err := GetRootUIDGID(idMappings.UIDs(), idMappings.GIDs()) - assert.NoError(t, err) + assert.Check(t, err) dirName, err := ioutil.TempDir("", "mkdirall") - assert.NoError(t, err, "Couldn't create temp directory") + assert.Check(t, err, "Couldn't create temp directory") defer os.RemoveAll(dirName) err = MkdirAllAndChown(dirName, 0700, IDPair{UID: rootUID, GID: rootGID}) - assert.NoError(t, err, "Couldn't change ownership of file path. Got error") - assert.True(t, CanAccess(dirName, idMappings.RootPair()), fmt.Sprintf("Unable to access %s directory with user UID:%d and GID:%d", dirName, rootUID, rootGID)) + assert.Check(t, err, "Couldn't change ownership of file path. Got error") + assert.Check(t, CanAccess(dirName, idMappings.RootPair()), fmt.Sprintf("Unable to access %s directory with user UID:%d and GID:%d", dirName, rootUID, rootGID)) } func TestLookupUserAndGroup(t *testing.T) { RequiresRoot(t) uid, gid, err := AddNamespaceRangesUser(tempUser) - assert.NoError(t, err) + assert.Check(t, err) defer delUser(t, tempUser) fetchedUser, err := LookupUser(tempUser) - assert.NoError(t, err) + assert.Check(t, err) fetchedUserByID, err := LookupUID(uid) - assert.NoError(t, err) - assert.Equal(t, fetchedUserByID, fetchedUser) + assert.Check(t, err) + assert.Check(t, is.DeepEqual(fetchedUserByID, fetchedUser)) fetchedGroup, err := LookupGroup(tempUser) - assert.NoError(t, err) + assert.Check(t, err) fetchedGroupByID, err := LookupGID(gid) - assert.NoError(t, err) - assert.Equal(t, fetchedGroupByID, fetchedGroup) + assert.Check(t, err) + assert.Check(t, is.DeepEqual(fetchedGroupByID, fetchedGroup)) } func TestLookupUserAndGroupThatDoesNotExist(t *testing.T) { fakeUser := "fakeuser" _, err := LookupUser(fakeUser) - assert.EqualError(t, err, "getent unable to find entry \""+fakeUser+"\" in passwd database") + assert.Check(t, is.Error(err, "getent unable to find entry \""+fakeUser+"\" in passwd database")) _, err = LookupUID(-1) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) fakeGroup := "fakegroup" _, err = LookupGroup(fakeGroup) - assert.EqualError(t, err, "getent unable to find entry \""+fakeGroup+"\" in group database") + assert.Check(t, is.Error(err, "getent unable to find entry \""+fakeGroup+"\" in group database")) _, err = LookupGID(-1) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) } // TestMkdirIsNotDir checks that mkdirAs() function (used by MkdirAll...) @@ -389,7 +389,7 @@ func TestMkdirIsNotDir(t *testing.T) { defer os.Remove(file.Name()) err = mkdirAs(file.Name(), 0755, 0, 0, false, false) - assert.EqualError(t, err, "mkdir "+file.Name()+": not a directory") + assert.Check(t, is.Error(err, "mkdir "+file.Name()+": not a directory")) } func RequiresRoot(t *testing.T) { diff --git a/pkg/ioutils/readers_test.go b/pkg/ioutils/readers_test.go index e322fdf840..e009ab26f6 100644 --- a/pkg/ioutils/readers_test.go +++ b/pkg/ioutils/readers_test.go @@ -7,7 +7,8 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "golang.org/x/net/context" ) @@ -36,7 +37,7 @@ func TestReaderErrWrapperReadOnError(t *testing.T) { called = true }) _, err := wrapper.Read([]byte{}) - assert.EqualError(t, err, "error reader always fail") + assert.Check(t, is.Error(err, "error reader always fail")) if !called { t.Fatalf("readErrWrapper should have call the anonymous function on failure") } diff --git a/pkg/jsonmessage/jsonmessage_test.go b/pkg/jsonmessage/jsonmessage_test.go index 2bad8a2025..ab1d879c5a 100644 --- a/pkg/jsonmessage/jsonmessage_test.go +++ b/pkg/jsonmessage/jsonmessage_test.go @@ -9,7 +9,8 @@ import ( "time" "github.com/docker/docker/pkg/term" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestError(t *testing.T) { @@ -198,7 +199,7 @@ func TestJSONMessageDisplayWithJSONError(t *testing.T) { jsonMessage = JSONMessage{Error: &JSONError{401, "Anything"}} err = jsonMessage.Display(data, &noTermInfo{}) - assert.EqualError(t, err, "authentication is required") + assert.Check(t, is.Error(err, "authentication is required")) } func TestDisplayJSONMessagesStreamInvalidJSON(t *testing.T) { diff --git a/pkg/plugins/client_test.go b/pkg/plugins/client_test.go index 10c8d8fd56..d420010f1a 100644 --- a/pkg/plugins/client_test.go +++ b/pkg/plugins/client_test.go @@ -14,9 +14,9 @@ import ( "github.com/docker/docker/pkg/plugins/transport" "github.com/docker/go-connections/tlsconfig" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) var ( @@ -88,7 +88,7 @@ func TestEchoInputOutput(t *testing.T) { t.Fatal(err) } - assert.Equal(t, m, output) + assert.Check(t, is.DeepEqual(m, output)) err = c.Call("Test.Echo", nil, nil) if err != nil { t.Fatal(err) @@ -205,7 +205,7 @@ func TestClientStream(t *testing.T) { if err := json.NewDecoder(body).Decode(&output); err != nil { t.Fatalf("Test.Echo: error reading plugin resp: %v", err) } - assert.Equal(t, m, output) + assert.Check(t, is.DeepEqual(m, output)) } func TestClientSendFile(t *testing.T) { @@ -233,7 +233,7 @@ func TestClientSendFile(t *testing.T) { if err := c.SendFile("Test.Echo", &buf, &output); err != nil { t.Fatal(err) } - assert.Equal(t, m, output) + assert.Check(t, is.DeepEqual(m, output)) } func TestClientWithRequestTimeout(t *testing.T) { @@ -248,7 +248,7 @@ func TestClientWithRequestTimeout(t *testing.T) { client := &Client{http: srv.Client(), requestFactory: &testRequestWrapper{srv}} _, err := client.callWithRetry("/Plugin.Hello", nil, false, WithRequestTimeout(timeout)) - require.Error(t, err, "expected error") + assert.Assert(t, is.ErrorContains(err, ""), "expected error") err = errors.Cause(err) @@ -256,7 +256,7 @@ func TestClientWithRequestTimeout(t *testing.T) { case *url.Error: err = e.Err } - require.Equal(t, context.DeadlineExceeded, err) + assert.DeepEqual(t, context.DeadlineExceeded, err) } type testRequestWrapper struct { diff --git a/pkg/plugins/discovery_unix_test.go b/pkg/plugins/discovery_unix_test.go index 9212946b2e..2c718d8bee 100644 --- a/pkg/plugins/discovery_unix_test.go +++ b/pkg/plugins/discovery_unix_test.go @@ -11,7 +11,7 @@ import ( "reflect" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestLocalSocket(t *testing.T) { @@ -91,7 +91,7 @@ func TestScan(t *testing.T) { r := newLocalRegistry() p, err := r.Plugin(name) - require.NoError(t, err) + assert.NilError(t, err) pluginNamesNotEmpty, err := Scan() if err != nil { diff --git a/pkg/plugins/plugin_test.go b/pkg/plugins/plugin_test.go index 1540a19a64..0efd5e3aa0 100644 --- a/pkg/plugins/plugin_test.go +++ b/pkg/plugins/plugin_test.go @@ -14,8 +14,9 @@ import ( "github.com/docker/docker/pkg/plugins/transport" "github.com/docker/go-connections/tlsconfig" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" ) const ( @@ -78,11 +79,11 @@ func TestGet(t *testing.T) { // check negative case where plugin fruit doesn't implement banana _, err = Get("fruit", "banana") - assert.Equal(t, errors.Cause(err), ErrNotImplements) + assert.Check(t, is.DeepEqual(errors.Cause(err), ErrNotImplements)) // check negative case where plugin vegetable doesn't exist _, err = Get("vegetable", "potato") - assert.Equal(t, errors.Cause(err), ErrNotFound) + assert.Check(t, is.DeepEqual(errors.Cause(err), ErrNotFound)) } diff --git a/pkg/plugins/transport/http_test.go b/pkg/plugins/transport/http_test.go index 2e48b0fe0a..081f60424d 100644 --- a/pkg/plugins/transport/http_test.go +++ b/pkg/plugins/transport/http_test.go @@ -5,7 +5,8 @@ import ( "net/http" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestHTTPTransport(t *testing.T) { @@ -16,5 +17,5 @@ func TestHTTPTransport(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Equal(t, "POST", request.Method) + assert.Check(t, is.Equal("POST", request.Method)) } diff --git a/pkg/pools/pools_test.go b/pkg/pools/pools_test.go index 2dbea36ae0..76015169d4 100644 --- a/pkg/pools/pools_test.go +++ b/pkg/pools/pools_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestBufioReaderPoolGetWithNoReaderShouldCreateOne(t *testing.T) { @@ -95,16 +95,16 @@ func TestBufioWriterPoolPutAndGet(t *testing.T) { buf := new(bytes.Buffer) bw := bufio.NewWriter(buf) writer := BufioWriter32KPool.Get(bw) - require.NotNil(t, writer) + assert.Assert(t, writer != nil) written, err := writer.Write([]byte("foobar")) - require.NoError(t, err) - assert.Equal(t, 6, written) + assert.NilError(t, err) + assert.Check(t, is.Equal(6, written)) // Make sure we Flush all the way ? writer.Flush() bw.Flush() - assert.Len(t, buf.Bytes(), 6) + assert.Check(t, is.Len(buf.Bytes(), 6)) // Reset the buffer buf.Reset() BufioWriter32KPool.Put(writer) diff --git a/pkg/reexec/reexec_test.go b/pkg/reexec/reexec_test.go index e6bbe9f9a0..90aa01a390 100644 --- a/pkg/reexec/reexec_test.go +++ b/pkg/reexec/reexec_test.go @@ -5,8 +5,7 @@ import ( "os/exec" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func init() { @@ -19,7 +18,7 @@ func init() { func TestRegister(t *testing.T) { defer func() { if r := recover(); r != nil { - require.Equal(t, `reexec func already registered under name "reexec"`, r) + assert.Equal(t, `reexec func already registered under name "reexec"`, r) } }() Register("reexec", func() {}) @@ -28,13 +27,13 @@ func TestRegister(t *testing.T) { func TestCommand(t *testing.T) { cmd := Command("reexec") w, err := cmd.StdinPipe() - require.NoError(t, err, "Error on pipe creation: %v", err) + assert.NilError(t, err, "Error on pipe creation: %v", err) defer w.Close() err = cmd.Start() - require.NoError(t, err, "Error on re-exec cmd: %v", err) + assert.NilError(t, err, "Error on re-exec cmd: %v", err) err = cmd.Wait() - require.EqualError(t, err, "exit status 2") + assert.Error(t, err, "exit status 2") } func TestNaiveSelf(t *testing.T) { @@ -44,10 +43,10 @@ func TestNaiveSelf(t *testing.T) { cmd := exec.Command(naiveSelf(), "-test.run=TestNaiveSelf") cmd.Env = append(os.Environ(), "TEST_CHECK=1") err := cmd.Start() - require.NoError(t, err, "Unable to start command") + assert.NilError(t, err, "Unable to start command") err = cmd.Wait() - require.EqualError(t, err, "exit status 2") + assert.Error(t, err, "exit status 2") os.Args[0] = "mkdir" - assert.NotEqual(t, naiveSelf(), os.Args[0]) + assert.Check(t, naiveSelf() != os.Args[0]) } diff --git a/pkg/signal/signal_linux_test.go b/pkg/signal/signal_linux_test.go index d7e8da2523..71c577ed64 100644 --- a/pkg/signal/signal_linux_test.go +++ b/pkg/signal/signal_linux_test.go @@ -8,7 +8,8 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestCatchAll(t *testing.T) { @@ -34,7 +35,7 @@ func TestCatchAll(t *testing.T) { }() s := <-sigs - assert.EqualValues(t, s.String(), signal.String()) + assert.Check(t, is.Equal(s.String(), signal.String())) } } @@ -50,9 +51,9 @@ func TestStopCatch(t *testing.T) { syscall.Kill(syscall.Getpid(), signal) }() signalString := <-channel - assert.EqualValues(t, signalString.String(), signal.String()) + assert.Check(t, is.Equal(signalString.String(), signal.String())) StopCatch(channel) _, ok := <-channel - assert.EqualValues(t, ok, false) + assert.Check(t, is.Equal(ok, false)) } diff --git a/pkg/signal/signal_test.go b/pkg/signal/signal_test.go index 1add526d16..bbf3736fc8 100644 --- a/pkg/signal/signal_test.go +++ b/pkg/signal/signal_test.go @@ -4,30 +4,31 @@ import ( "syscall" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestParseSignal(t *testing.T) { _, checkAtoiError := ParseSignal("0") - assert.EqualError(t, checkAtoiError, "Invalid signal: 0") + assert.Check(t, is.Error(checkAtoiError, "Invalid signal: 0")) _, error := ParseSignal("SIG") - assert.EqualError(t, error, "Invalid signal: SIG") + assert.Check(t, is.Error(error, "Invalid signal: SIG")) for sigStr := range SignalMap { responseSignal, error := ParseSignal(sigStr) - assert.NoError(t, error) + assert.Check(t, error) signal := SignalMap[sigStr] - assert.EqualValues(t, signal, responseSignal) + assert.Check(t, is.DeepEqual(signal, responseSignal)) } } func TestValidSignalForPlatform(t *testing.T) { isValidSignal := ValidSignalForPlatform(syscall.Signal(0)) - assert.EqualValues(t, false, isValidSignal) + assert.Check(t, is.Equal(false, isValidSignal)) for _, sigN := range SignalMap { isValidSignal = ValidSignalForPlatform(syscall.Signal(sigN)) - assert.EqualValues(t, true, isValidSignal) + assert.Check(t, is.Equal(true, isValidSignal)) } } diff --git a/pkg/signal/trap_linux_test.go b/pkg/signal/trap_linux_test.go index d32a4366f4..a3afe7a7b6 100644 --- a/pkg/signal/trap_linux_test.go +++ b/pkg/signal/trap_linux_test.go @@ -10,19 +10,19 @@ import ( "syscall" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func buildTestBinary(t *testing.T, tmpdir string, prefix string) (string, string) { tmpDir, err := ioutil.TempDir(tmpdir, prefix) - require.NoError(t, err) + assert.NilError(t, err) exePath := tmpDir + "/" + prefix wd, _ := os.Getwd() testHelperCode := wd + "/testfiles/main.go" cmd := exec.Command("go", "build", "-o", exePath, testHelperCode) err = cmd.Run() - require.NoError(t, err) + assert.NilError(t, err) return exePath, tmpDir } @@ -48,14 +48,14 @@ func TestTrap(t *testing.T) { cmd.Env = append(cmd.Env, "IF_MULTIPLE=1") } err := cmd.Start() - require.NoError(t, err) + assert.NilError(t, err) err = cmd.Wait() if e, ok := err.(*exec.ExitError); ok { code := e.Sys().(syscall.WaitStatus).ExitStatus() if v.multiple { - assert.Equal(t, 128+int(v.signal.(syscall.Signal)), code) + assert.Check(t, is.DeepEqual(128+int(v.signal.(syscall.Signal)), code)) } else { - assert.Equal(t, 99, code) + assert.Check(t, is.Equal(99, code)) } continue } @@ -66,17 +66,17 @@ func TestTrap(t *testing.T) { func TestDumpStacks(t *testing.T) { directory, err := ioutil.TempDir("", "test-dump-tasks") - assert.NoError(t, err) + assert.Check(t, err) defer os.RemoveAll(directory) dumpPath, err := DumpStacks(directory) - assert.NoError(t, err) + assert.Check(t, err) readFile, _ := ioutil.ReadFile(dumpPath) fileData := string(readFile) - assert.Contains(t, fileData, "goroutine") + assert.Check(t, is.Contains(fileData, "goroutine")) } func TestDumpStacksWithEmptyInput(t *testing.T) { path, err := DumpStacks("") - assert.NoError(t, err) - assert.Equal(t, os.Stderr.Name(), path) + assert.Check(t, err) + assert.Check(t, is.Equal(os.Stderr.Name(), path)) } diff --git a/pkg/streamformatter/streamformatter_test.go b/pkg/streamformatter/streamformatter_test.go index 7259c54df8..e655f9140a 100644 --- a/pkg/streamformatter/streamformatter_test.go +++ b/pkg/streamformatter/streamformatter_test.go @@ -8,14 +8,14 @@ import ( "testing" "github.com/docker/docker/pkg/jsonmessage" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestRawProgressFormatterFormatStatus(t *testing.T) { sf := rawProgressFormatter{} res := sf.formatStatus("ID", "%s%d", "a", 1) - assert.Equal(t, "a1\r\n", string(res)) + assert.Check(t, is.Equal("a1\r\n", string(res))) } func TestRawProgressFormatterFormatProgress(t *testing.T) { @@ -27,28 +27,28 @@ func TestRawProgressFormatterFormatProgress(t *testing.T) { } res := sf.formatProgress("id", "action", jsonProgress, nil) out := string(res) - assert.True(t, strings.HasPrefix(out, "action [====")) - assert.Contains(t, out, "15B/30B") - assert.True(t, strings.HasSuffix(out, "\r")) + assert.Check(t, strings.HasPrefix(out, "action [====")) + assert.Check(t, is.Contains(out, "15B/30B")) + assert.Check(t, strings.HasSuffix(out, "\r")) } func TestFormatStatus(t *testing.T) { res := FormatStatus("ID", "%s%d", "a", 1) expected := `{"status":"a1","id":"ID"}` + streamNewline - assert.Equal(t, expected, string(res)) + assert.Check(t, is.Equal(expected, string(res))) } func TestFormatError(t *testing.T) { res := FormatError(errors.New("Error for formatter")) expected := `{"errorDetail":{"message":"Error for formatter"},"error":"Error for formatter"}` + "\r\n" - assert.Equal(t, expected, string(res)) + assert.Check(t, is.Equal(expected, string(res))) } func TestFormatJSONError(t *testing.T) { err := &jsonmessage.JSONError{Code: 50, Message: "Json error"} res := FormatError(err) expected := `{"errorDetail":{"code":50,"message":"Json error"},"error":"Json error"}` + streamNewline - assert.Equal(t, expected, string(res)) + assert.Check(t, is.Equal(expected, string(res))) } func TestJsonProgressFormatterFormatProgress(t *testing.T) { @@ -61,9 +61,9 @@ func TestJsonProgressFormatterFormatProgress(t *testing.T) { res := sf.formatProgress("id", "action", jsonProgress, &AuxFormatter{Writer: &bytes.Buffer{}}) msg := &jsonmessage.JSONMessage{} - require.NoError(t, json.Unmarshal(res, msg)) - assert.Equal(t, "id", msg.ID) - assert.Equal(t, "action", msg.Status) + assert.NilError(t, json.Unmarshal(res, msg)) + assert.Check(t, is.Equal("id", msg.ID)) + assert.Check(t, is.Equal("action", msg.Status)) // jsonProgress will always be in the format of: // [=========================> ] 15B/30B 412910h51m30s @@ -81,20 +81,20 @@ func TestJsonProgressFormatterFormatProgress(t *testing.T) { expectedProgress, expectedProgressShort, msg.ProgressMessage) } - assert.Equal(t, jsonProgress, msg.Progress) + assert.Check(t, is.DeepEqual(jsonProgress, msg.Progress)) } func TestJsonProgressFormatterFormatStatus(t *testing.T) { sf := jsonProgressFormatter{} res := sf.formatStatus("ID", "%s%d", "a", 1) - assert.Equal(t, `{"status":"a1","id":"ID"}`+streamNewline, string(res)) + assert.Check(t, is.Equal(`{"status":"a1","id":"ID"}`+streamNewline, string(res))) } func TestNewJSONProgressOutput(t *testing.T) { b := bytes.Buffer{} b.Write(FormatStatus("id", "Downloading")) _ = NewJSONProgressOutput(&b, false) - assert.Equal(t, `{"status":"Downloading","id":"id"}`+streamNewline, b.String()) + assert.Check(t, is.Equal(`{"status":"Downloading","id":"id"}`+streamNewline, b.String())) } func TestAuxFormatterEmit(t *testing.T) { @@ -104,6 +104,6 @@ func TestAuxFormatterEmit(t *testing.T) { Data string }{"Additional data"} err := aux.Emit(sampleAux) - require.NoError(t, err) - assert.Equal(t, `{"aux":{"Data":"Additional data"}}`+streamNewline, b.String()) + assert.NilError(t, err) + assert.Check(t, is.Equal(`{"aux":{"Data":"Additional data"}}`+streamNewline, b.String())) } diff --git a/pkg/streamformatter/streamwriter_test.go b/pkg/streamformatter/streamwriter_test.go index 332d66414f..b74d6fb2d3 100644 --- a/pkg/streamformatter/streamwriter_test.go +++ b/pkg/streamformatter/streamwriter_test.go @@ -4,8 +4,8 @@ import ( "bytes" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestStreamWriterStdout(t *testing.T) { @@ -14,11 +14,11 @@ func TestStreamWriterStdout(t *testing.T) { sw := NewStdoutWriter(buffer) size, err := sw.Write([]byte(content)) - require.NoError(t, err) - assert.Equal(t, len(content), size) + assert.NilError(t, err) + assert.Check(t, is.Equal(len(content), size)) expected := `{"stream":"content"}` + streamNewline - assert.Equal(t, expected, buffer.String()) + assert.Check(t, is.Equal(expected, buffer.String())) } func TestStreamWriterStderr(t *testing.T) { @@ -27,9 +27,9 @@ func TestStreamWriterStderr(t *testing.T) { sw := NewStderrWriter(buffer) size, err := sw.Write([]byte(content)) - require.NoError(t, err) - assert.Equal(t, len(content), size) + assert.NilError(t, err) + assert.Check(t, is.Equal(len(content), size)) expected := `{"stream":"\u001b[91mcontent\u001b[0m"}` + streamNewline - assert.Equal(t, expected, buffer.String()) + assert.Check(t, is.Equal(expected, buffer.String())) } diff --git a/pkg/sysinfo/sysinfo_linux_test.go b/pkg/sysinfo/sysinfo_linux_test.go index a798bf6e85..e8a12a35c9 100644 --- a/pkg/sysinfo/sysinfo_linux_test.go +++ b/pkg/sysinfo/sysinfo_linux_test.go @@ -7,18 +7,18 @@ import ( "path/filepath" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" "golang.org/x/sys/unix" ) func TestReadProcBool(t *testing.T) { tmpDir, err := ioutil.TempDir("", "test-sysinfo-proc") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpDir) procFile := filepath.Join(tmpDir, "read-proc-bool") err = ioutil.WriteFile(procFile, []byte("1"), 0644) - require.NoError(t, err) + assert.NilError(t, err) if !readProcBool(procFile) { t.Fatal("expected proc bool to be true, got false") @@ -39,7 +39,7 @@ func TestReadProcBool(t *testing.T) { func TestCgroupEnabled(t *testing.T) { cgroupDir, err := ioutil.TempDir("", "cgroup-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(cgroupDir) if cgroupEnabled(cgroupDir, "test") { @@ -47,7 +47,7 @@ func TestCgroupEnabled(t *testing.T) { } err = ioutil.WriteFile(path.Join(cgroupDir, "test"), []byte{}, 0644) - require.NoError(t, err) + assert.NilError(t, err) if !cgroupEnabled(cgroupDir, "test") { t.Fatal("cgroupEnabled should be true") @@ -56,11 +56,11 @@ func TestCgroupEnabled(t *testing.T) { func TestNew(t *testing.T) { sysInfo := New(false) - require.NotNil(t, sysInfo) + assert.Assert(t, sysInfo != nil) checkSysInfo(t, sysInfo) sysInfo = New(true) - require.NotNil(t, sysInfo) + assert.Assert(t, sysInfo != nil) checkSysInfo(t, sysInfo) } @@ -69,10 +69,10 @@ func checkSysInfo(t *testing.T, sysInfo *SysInfo) { if err := unix.Prctl(unix.PR_GET_SECCOMP, 0, 0, 0, 0); err != unix.EINVAL { // Make sure the kernel has CONFIG_SECCOMP_FILTER. if err := unix.Prctl(unix.PR_SET_SECCOMP, unix.SECCOMP_MODE_FILTER, 0, 0, 0); err != unix.EINVAL { - require.True(t, sysInfo.Seccomp) + assert.Assert(t, sysInfo.Seccomp) } } else { - require.False(t, sysInfo.Seccomp) + assert.Assert(t, !sysInfo.Seccomp) } } @@ -83,7 +83,7 @@ func TestNewAppArmorEnabled(t *testing.T) { } sysInfo := New(true) - require.True(t, sysInfo.AppArmor) + assert.Assert(t, sysInfo.AppArmor) } func TestNewAppArmorDisabled(t *testing.T) { @@ -93,7 +93,7 @@ func TestNewAppArmorDisabled(t *testing.T) { } sysInfo := New(true) - require.False(t, sysInfo.AppArmor) + assert.Assert(t, !sysInfo.AppArmor) } func TestNumCPU(t *testing.T) { diff --git a/pkg/system/stat_unix_test.go b/pkg/system/stat_unix_test.go index 12687b33c1..fd68a96656 100644 --- a/pkg/system/stat_unix_test.go +++ b/pkg/system/stat_unix_test.go @@ -7,7 +7,7 @@ import ( "syscall" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // TestFromStatT tests fromStatT for a tempfile @@ -17,10 +17,10 @@ func TestFromStatT(t *testing.T) { stat := &syscall.Stat_t{} err := syscall.Lstat(file, stat) - require.NoError(t, err) + assert.NilError(t, err) s, err := fromStatT(stat) - require.NoError(t, err) + assert.NilError(t, err) if stat.Mode != s.Mode() { t.Fatal("got invalid mode") diff --git a/pkg/tarsum/tarsum_test.go b/pkg/tarsum/tarsum_test.go index 466eda0aec..35f08ebce9 100644 --- a/pkg/tarsum/tarsum_test.go +++ b/pkg/tarsum/tarsum_test.go @@ -17,8 +17,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) type testLayer struct { @@ -225,13 +225,13 @@ func TestNewTarSumForLabel(t *testing.T) { func TestEmptyTar(t *testing.T) { // Test without gzip. ts, err := emptyTarSum(false) - require.NoError(t, err) + assert.NilError(t, err) zeroBlock := make([]byte, 1024) buf := new(bytes.Buffer) n, err := io.Copy(buf, ts) - require.NoError(t, err) + assert.NilError(t, err) if n != int64(len(zeroBlock)) || !bytes.Equal(buf.Bytes(), zeroBlock) { t.Fatalf("tarSum did not write the correct number of zeroed bytes: %d", n) @@ -246,16 +246,16 @@ func TestEmptyTar(t *testing.T) { // Test with gzip. ts, err = emptyTarSum(true) - require.NoError(t, err) + assert.NilError(t, err) buf.Reset() _, err = io.Copy(buf, ts) - require.NoError(t, err) + assert.NilError(t, err) bufgz := new(bytes.Buffer) gz := gzip.NewWriter(bufgz) n, err = io.Copy(gz, bytes.NewBuffer(zeroBlock)) - require.NoError(t, err) + assert.NilError(t, err) gz.Close() gzBytes := bufgz.Bytes() @@ -275,7 +275,7 @@ func TestEmptyTar(t *testing.T) { } resultSum = ts.Sum(nil) - assert.Equal(t, expectedSum, resultSum) + assert.Check(t, is.Equal(expectedSum, resultSum)) } var ( diff --git a/pkg/term/ascii_test.go b/pkg/term/ascii_test.go index e426de35b4..321d1b87de 100644 --- a/pkg/term/ascii_test.go +++ b/pkg/term/ascii_test.go @@ -3,23 +3,23 @@ package term // import "github.com/docker/docker/pkg/term" import ( "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestToBytes(t *testing.T) { codes, err := ToBytes("ctrl-a,a") - require.NoError(t, err) - assert.Equal(t, []byte{1, 97}, codes) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual([]byte{1, 97}, codes)) _, err = ToBytes("shift-z") - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) codes, err = ToBytes("ctrl-@,ctrl-[,~,ctrl-o") - require.NoError(t, err) - assert.Equal(t, []byte{0, 27, 126, 15}, codes) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual([]byte{0, 27, 126, 15}, codes)) codes, err = ToBytes("DEL,+") - require.NoError(t, err) - assert.Equal(t, []byte{127, 43}, codes) + assert.NilError(t, err) + assert.Check(t, is.DeepEqual([]byte{127, 43}, codes)) } diff --git a/pkg/term/proxy_test.go b/pkg/term/proxy_test.go index 01be1d55be..9a53e2bc71 100644 --- a/pkg/term/proxy_test.go +++ b/pkg/term/proxy_test.go @@ -5,8 +5,8 @@ import ( "fmt" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestEscapeProxyRead(t *testing.T) { @@ -15,75 +15,75 @@ func TestEscapeProxyRead(t *testing.T) { reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf := make([]byte, len(keys)) nr, err := reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, len(keys), fmt.Sprintf("nr %d should be equal to the number of %d", nr, len(keys))) - require.Equal(t, keys, buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, len(keys), fmt.Sprintf("nr %d should be equal to the number of %d", nr, len(keys))) + assert.Assert(t, is.DeepEqual(keys, buf), "keys & the read buffer should be equal") keys, _ = ToBytes("") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, len(keys)) nr, err = reader.Read(buf) - require.Error(t, err, "Should throw error when no keys are to read") - require.EqualValues(t, nr, 0, "nr should be zero") - assert.Len(t, keys, 0) - assert.Len(t, buf, 0) + assert.Assert(t, is.ErrorContains(err, ""), "Should throw error when no keys are to read") + assert.Equal(t, nr, 0, "nr should be zero") + assert.Check(t, is.Len(keys, 0)) + assert.Check(t, is.Len(buf, 0)) escapeKeys, _ = ToBytes("ctrl-x,ctrl-@") keys, _ = ToBytes("DEL") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, len(keys)) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, 1, fmt.Sprintf("nr %d should be equal to the number of 1", nr)) - require.Equal(t, keys, buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, 1, fmt.Sprintf("nr %d should be equal to the number of 1", nr)) + assert.Assert(t, is.DeepEqual(keys, buf), "keys & the read buffer should be equal") escapeKeys, _ = ToBytes("ctrl-c") keys, _ = ToBytes("ctrl-c") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, len(keys)) nr, err = reader.Read(buf) - require.EqualError(t, err, "read escape sequence") - require.EqualValues(t, nr, 0, "nr should be equal to 0") - require.Equal(t, keys, buf, "keys & the read buffer should be equal") + assert.Error(t, err, "read escape sequence") + assert.Equal(t, nr, 0, "nr should be equal to 0") + assert.Assert(t, is.DeepEqual(keys, buf), "keys & the read buffer should be equal") escapeKeys, _ = ToBytes("ctrl-c,ctrl-z") keys, _ = ToBytes("ctrl-c,ctrl-z") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, 1) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, 0, "nr should be equal to 0") - require.Equal(t, keys[0:1], buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, 0, "nr should be equal to 0") + assert.Assert(t, is.DeepEqual(keys[0:1], buf), "keys & the read buffer should be equal") nr, err = reader.Read(buf) - require.EqualError(t, err, "read escape sequence") - require.EqualValues(t, nr, 0, "nr should be equal to 0") - require.Equal(t, keys[1:], buf, "keys & the read buffer should be equal") + assert.Error(t, err, "read escape sequence") + assert.Equal(t, nr, 0, "nr should be equal to 0") + assert.Assert(t, is.DeepEqual(keys[1:], buf), "keys & the read buffer should be equal") escapeKeys, _ = ToBytes("ctrl-c,ctrl-z") keys, _ = ToBytes("ctrl-c,DEL,+") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, 1) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, 0, "nr should be equal to 0") - require.Equal(t, keys[0:1], buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, 0, "nr should be equal to 0") + assert.Assert(t, is.DeepEqual(keys[0:1], buf), "keys & the read buffer should be equal") buf = make([]byte, len(keys)) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, len(keys), fmt.Sprintf("nr should be equal to %d", len(keys))) - require.Equal(t, keys, buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, len(keys), fmt.Sprintf("nr should be equal to %d", len(keys))) + assert.Assert(t, is.DeepEqual(keys, buf), "keys & the read buffer should be equal") escapeKeys, _ = ToBytes("ctrl-c,ctrl-z") keys, _ = ToBytes("ctrl-c,DEL") reader = NewEscapeProxy(bytes.NewReader(keys), escapeKeys) buf = make([]byte, 1) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, 0, "nr should be equal to 0") - require.Equal(t, keys[0:1], buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, 0, "nr should be equal to 0") + assert.Assert(t, is.DeepEqual(keys[0:1], buf), "keys & the read buffer should be equal") buf = make([]byte, len(keys)) nr, err = reader.Read(buf) - require.NoError(t, err) - require.EqualValues(t, nr, len(keys), fmt.Sprintf("nr should be equal to %d", len(keys))) - require.Equal(t, keys, buf, "keys & the read buffer should be equal") + assert.NilError(t, err) + assert.Equal(t, nr, len(keys), fmt.Sprintf("nr should be equal to %d", len(keys))) + assert.Assert(t, is.DeepEqual(keys, buf), "keys & the read buffer should be equal") } diff --git a/pkg/term/term_linux_test.go b/pkg/term/term_linux_test.go index 6e42d3edd7..98d2b1a3f2 100644 --- a/pkg/term/term_linux_test.go +++ b/pkg/term/term_linux_test.go @@ -7,7 +7,7 @@ import ( "os" "testing" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) // RequiresRoot skips tests that require root, unless the test.root flag has @@ -31,85 +31,85 @@ func newTempFile() (*os.File, error) { func TestGetWinsize(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) winSize, err := GetWinsize(tty.Fd()) - require.NoError(t, err) - require.NotNil(t, winSize) - require.NotNil(t, winSize.Height) - require.NotNil(t, winSize.Width) + assert.NilError(t, err) + assert.Assert(t, winSize != nil) + assert.Assert(t, winSize.Height != nil) + assert.Assert(t, winSize.Width != nil) newSize := Winsize{Width: 200, Height: 200, x: winSize.x, y: winSize.y} err = SetWinsize(tty.Fd(), &newSize) - require.NoError(t, err) + assert.NilError(t, err) winSize, err = GetWinsize(tty.Fd()) - require.NoError(t, err) - require.Equal(t, *winSize, newSize) + assert.NilError(t, err) + assert.DeepEqual(t, *winSize, newSize) } func TestSetWinsize(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) winSize, err := GetWinsize(tty.Fd()) - require.NoError(t, err) - require.NotNil(t, winSize) + assert.NilError(t, err) + assert.Assert(t, winSize != nil) newSize := Winsize{Width: 200, Height: 200, x: winSize.x, y: winSize.y} err = SetWinsize(tty.Fd(), &newSize) - require.NoError(t, err) + assert.NilError(t, err) winSize, err = GetWinsize(tty.Fd()) - require.NoError(t, err) - require.Equal(t, *winSize, newSize) + assert.NilError(t, err) + assert.DeepEqual(t, *winSize, newSize) } func TestGetFdInfo(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) inFd, isTerminal := GetFdInfo(tty) - require.Equal(t, inFd, tty.Fd()) - require.Equal(t, isTerminal, true) + assert.Equal(t, inFd, tty.Fd()) + assert.Equal(t, isTerminal, true) tmpFile, err := newTempFile() - require.NoError(t, err) + assert.NilError(t, err) defer tmpFile.Close() inFd, isTerminal = GetFdInfo(tmpFile) - require.Equal(t, inFd, tmpFile.Fd()) - require.Equal(t, isTerminal, false) + assert.Equal(t, inFd, tmpFile.Fd()) + assert.Equal(t, isTerminal, false) } func TestIsTerminal(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) isTerminal := IsTerminal(tty.Fd()) - require.Equal(t, isTerminal, true) + assert.Equal(t, isTerminal, true) tmpFile, err := newTempFile() - require.NoError(t, err) + assert.NilError(t, err) defer tmpFile.Close() isTerminal = IsTerminal(tmpFile.Fd()) - require.Equal(t, isTerminal, false) + assert.Equal(t, isTerminal, false) } func TestSaveState(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) state, err := SaveState(tty.Fd()) - require.NoError(t, err) - require.NotNil(t, state) + assert.NilError(t, err) + assert.Assert(t, state != nil) tty, err = newTtyForTest(t) - require.NoError(t, err) + assert.NilError(t, err) defer tty.Close() err = RestoreTerminal(tty.Fd(), state) - require.NoError(t, err) + assert.NilError(t, err) } func TestDisableEcho(t *testing.T) { tty, err := newTtyForTest(t) defer tty.Close() - require.NoError(t, err) + assert.NilError(t, err) state, err := SetRawTerminal(tty.Fd()) defer RestoreTerminal(tty.Fd(), state) - require.NoError(t, err) - require.NotNil(t, state) + assert.NilError(t, err) + assert.Assert(t, state != nil) err = DisableEcho(tty.Fd(), state) - require.NoError(t, err) + assert.NilError(t, err) } diff --git a/reference/store_test.go b/reference/store_test.go index e423f5db2e..24c0597a3e 100644 --- a/reference/store_test.go +++ b/reference/store_test.go @@ -9,9 +9,9 @@ import ( "testing" "github.com/docker/distribution/reference" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" digest "github.com/opencontainers/go-digest" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) var ( @@ -64,10 +64,10 @@ func TestLoad(t *testing.T) { func TestSave(t *testing.T) { jsonFile, err := ioutil.TempFile("", "tag-store-test") - require.NoError(t, err) + assert.NilError(t, err) _, err = jsonFile.Write([]byte(`{}`)) - require.NoError(t, err) + assert.NilError(t, err) jsonFile.Close() defer os.RemoveAll(jsonFile.Name()) @@ -328,23 +328,23 @@ func TestAddDeleteGet(t *testing.T) { func TestInvalidTags(t *testing.T) { tmpDir, err := ioutil.TempDir("", "tag-store-test") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(tmpDir) store, err := NewReferenceStore(filepath.Join(tmpDir, "repositories.json")) - require.NoError(t, err) + assert.NilError(t, err) id := digest.Digest("sha256:470022b8af682154f57a2163d030eb369549549cba00edc69e1b99b46bb924d6") // sha256 as repo name ref, err := reference.ParseNormalizedNamed("sha256:abc") - require.NoError(t, err) + assert.NilError(t, err) err = store.AddTag(ref, id, true) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) // setting digest as a tag ref, err = reference.ParseNormalizedNamed("registry@sha256:367eb40fd0330a7e464777121e39d2f5b3e8e23a1e159342e53ab05c9e4d94e6") - require.NoError(t, err) + assert.NilError(t, err) err = store.AddTag(ref, id, true) - assert.Error(t, err) + assert.Check(t, is.ErrorContains(err, "")) } diff --git a/registry/config_test.go b/registry/config_test.go index 61b1c26d35..4df9cdb948 100644 --- a/registry/config_test.go +++ b/registry/config_test.go @@ -6,7 +6,8 @@ import ( "strings" "testing" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestLoadAllowNondistributableArtifacts(t *testing.T) { @@ -311,9 +312,9 @@ func TestNewServiceConfig(t *testing.T) { for _, testCase := range testCases { _, err := newServiceConfig(testCase.opts) if testCase.errStr != "" { - assert.EqualError(t, err, testCase.errStr) + assert.Check(t, is.Error(err, testCase.errStr)) } else { - assert.Nil(t, err) + assert.Check(t, err) } } } @@ -347,8 +348,8 @@ func TestValidateIndexName(t *testing.T) { for _, testCase := range valid { result, err := ValidateIndexName(testCase.index) - if assert.NoError(t, err) { - assert.Equal(t, testCase.expect, result) + if assert.Check(t, err) { + assert.Check(t, is.Equal(testCase.expect, result)) } } @@ -375,6 +376,6 @@ func TestValidateIndexNameWithError(t *testing.T) { } for _, testCase := range invalid { _, err := ValidateIndexName(testCase.index) - assert.EqualError(t, err, testCase.err) + assert.Check(t, is.Error(err, testCase.err)) } } diff --git a/registry/registry_test.go b/registry/registry_test.go index 6375301469..b4420d558c 100644 --- a/registry/registry_test.go +++ b/registry/registry_test.go @@ -12,7 +12,7 @@ import ( "github.com/docker/distribution/registry/client/transport" "github.com/docker/docker/api/types" registrytypes "github.com/docker/docker/api/types/registry" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" ) var ( @@ -757,12 +757,12 @@ func TestSearchRepositories(t *testing.T) { func TestTrustedLocation(t *testing.T) { for _, url := range []string{"http://example.com", "https://example.com:7777", "http://docker.io", "http://test.docker.com", "https://fakedocker.com"} { req, _ := http.NewRequest("GET", url, nil) - assert.False(t, trustedLocation(req)) + assert.Check(t, !trustedLocation(req)) } for _, url := range []string{"https://docker.io", "https://test.docker.com:80"} { req, _ := http.NewRequest("GET", url, nil) - assert.True(t, trustedLocation(req)) + assert.Check(t, trustedLocation(req)) } } diff --git a/registry/resumable/resumablerequestreader_test.go b/registry/resumable/resumablerequestreader_test.go index 9a08e3416e..bd3d55885f 100644 --- a/registry/resumable/resumablerequestreader_test.go +++ b/registry/resumable/resumablerequestreader_test.go @@ -10,8 +10,8 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestResumableRequestHeaderSimpleErrors(t *testing.T) { @@ -24,11 +24,11 @@ func TestResumableRequestHeaderSimpleErrors(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", ts.URL, nil) - require.NoError(t, err) + assert.NilError(t, err) resreq := &requestReader{} _, err = resreq.Read([]byte{}) - assert.EqualError(t, err, "client and request can't be nil") + assert.Check(t, is.Error(err, "client and request can't be nil")) resreq = &requestReader{ client: client, @@ -36,7 +36,7 @@ func TestResumableRequestHeaderSimpleErrors(t *testing.T) { totalSize: -1, } _, err = resreq.Read([]byte{}) - assert.EqualError(t, err, "failed to auto detect content length") + assert.Check(t, is.Error(err, "failed to auto detect content length")) } // Not too much failures, bails out after some wait @@ -45,7 +45,7 @@ func TestResumableRequestHeaderNotTooMuchFailures(t *testing.T) { var badReq *http.Request badReq, err := http.NewRequest("GET", "I'm not an url", nil) - require.NoError(t, err) + assert.NilError(t, err) resreq := &requestReader{ client: client, @@ -55,8 +55,8 @@ func TestResumableRequestHeaderNotTooMuchFailures(t *testing.T) { waitDuration: 10 * time.Millisecond, } read, err := resreq.Read([]byte{}) - require.NoError(t, err) - assert.Equal(t, 0, read) + assert.NilError(t, err) + assert.Check(t, is.Equal(0, read)) } // Too much failures, returns the error @@ -65,7 +65,7 @@ func TestResumableRequestHeaderTooMuchFailures(t *testing.T) { var badReq *http.Request badReq, err := http.NewRequest("GET", "I'm not an url", nil) - require.NoError(t, err) + assert.NilError(t, err) resreq := &requestReader{ client: client, @@ -77,8 +77,8 @@ func TestResumableRequestHeaderTooMuchFailures(t *testing.T) { expectedError := `Get I%27m%20not%20an%20url: unsupported protocol scheme ""` read, err := resreq.Read([]byte{}) - assert.EqualError(t, err, expectedError) - assert.Equal(t, 0, read) + assert.Check(t, is.Error(err, expectedError)) + assert.Check(t, is.Equal(0, read)) } type errorReaderCloser struct{} @@ -93,7 +93,7 @@ func (errorReaderCloser) Read(p []byte) (n int, err error) { func TestResumableRequestReaderWithReadError(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", "", nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} @@ -116,15 +116,15 @@ func TestResumableRequestReaderWithReadError(t *testing.T) { buf := make([]byte, 1) read, err := resreq.Read(buf) - require.NoError(t, err) + assert.NilError(t, err) - assert.Equal(t, 0, read) + assert.Check(t, is.Equal(0, read)) } func TestResumableRequestReaderWithEOFWith416Response(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", "", nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} @@ -147,7 +147,7 @@ func TestResumableRequestReaderWithEOFWith416Response(t *testing.T) { buf := make([]byte, 1) _, err = resreq.Read(buf) - assert.EqualError(t, err, io.EOF.Error()) + assert.Check(t, is.Error(err, io.EOF.Error())) } func TestResumableRequestReaderWithServerDoesntSupportByteRanges(t *testing.T) { @@ -160,7 +160,7 @@ func TestResumableRequestReaderWithServerDoesntSupportByteRanges(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", ts.URL, nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} @@ -173,7 +173,7 @@ func TestResumableRequestReaderWithServerDoesntSupportByteRanges(t *testing.T) { buf := make([]byte, 2) _, err = resreq.Read(buf) - assert.EqualError(t, err, "the server doesn't support byte ranges") + assert.Check(t, is.Error(err, "the server doesn't support byte ranges")) } func TestResumableRequestReaderWithZeroTotalSize(t *testing.T) { @@ -186,7 +186,7 @@ func TestResumableRequestReaderWithZeroTotalSize(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", ts.URL, nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} retries := uint32(5) @@ -195,10 +195,10 @@ func TestResumableRequestReaderWithZeroTotalSize(t *testing.T) { defer resreq.Close() data, err := ioutil.ReadAll(resreq) - require.NoError(t, err) + assert.NilError(t, err) resstr := strings.TrimSuffix(string(data), "\n") - assert.Equal(t, srvtxt, resstr) + assert.Check(t, is.Equal(srvtxt, resstr)) } func TestResumableRequestReader(t *testing.T) { @@ -211,7 +211,7 @@ func TestResumableRequestReader(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", ts.URL, nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} retries := uint32(5) @@ -221,10 +221,10 @@ func TestResumableRequestReader(t *testing.T) { defer resreq.Close() data, err := ioutil.ReadAll(resreq) - require.NoError(t, err) + assert.NilError(t, err) resstr := strings.TrimSuffix(string(data), "\n") - assert.Equal(t, srvtxt, resstr) + assert.Check(t, is.Equal(srvtxt, resstr)) } func TestResumableRequestReaderWithInitialResponse(t *testing.T) { @@ -237,21 +237,21 @@ func TestResumableRequestReaderWithInitialResponse(t *testing.T) { var req *http.Request req, err := http.NewRequest("GET", ts.URL, nil) - require.NoError(t, err) + assert.NilError(t, err) client := &http.Client{} retries := uint32(5) imgSize := int64(len(srvtxt)) res, err := client.Do(req) - require.NoError(t, err) + assert.NilError(t, err) resreq := NewRequestReaderWithInitialResponse(client, req, retries, imgSize, res) defer resreq.Close() data, err := ioutil.ReadAll(resreq) - require.NoError(t, err) + assert.NilError(t, err) resstr := strings.TrimSuffix(string(data), "\n") - assert.Equal(t, srvtxt, resstr) + assert.Check(t, is.Equal(srvtxt, resstr)) } diff --git a/runconfig/config_test.go b/runconfig/config_test.go index 63619fe53f..58e3a9f788 100644 --- a/runconfig/config_test.go +++ b/runconfig/config_test.go @@ -12,8 +12,8 @@ import ( "github.com/docker/docker/api/types/container" networktypes "github.com/docker/docker/api/types/network" "github.com/docker/docker/api/types/strslice" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) type f struct { @@ -149,21 +149,21 @@ func runDecodeContainerConfigTestCase(testcase decodeConfigTestcase) func(t *tes raw := marshal(t, testcase.wrapper, testcase.doc) config, hostConfig, _, err := decodeContainerConfig(bytes.NewReader(raw)) if testcase.expectedErr != "" { - if !assert.Error(t, err) { + if !assert.Check(t, is.ErrorContains(err, "")) { return } - assert.Contains(t, err.Error(), testcase.expectedErr) + assert.Check(t, is.Contains(err.Error(), testcase.expectedErr)) return } - assert.NoError(t, err) - assert.Equal(t, testcase.expectedConfig, config) - assert.Equal(t, testcase.expectedHostConfig, hostConfig) + assert.Check(t, err) + assert.Check(t, is.DeepEqual(testcase.expectedConfig, config)) + assert.Check(t, is.DeepEqual(testcase.expectedHostConfig, hostConfig)) } } func marshal(t *testing.T, w ContainerConfigWrapper, doc string) []byte { b, err := json.Marshal(w) - require.NoError(t, err, "%s: failed to encode config wrapper", doc) + assert.NilError(t, err, "%s: failed to encode config wrapper", doc) return b } diff --git a/runconfig/hostconfig_test.go b/runconfig/hostconfig_test.go index 48d902d4d7..d2482fbe7b 100644 --- a/runconfig/hostconfig_test.go +++ b/runconfig/hostconfig_test.go @@ -10,7 +10,8 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/pkg/sysinfo" - "github.com/stretchr/testify/assert" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) // TODO Windows: This will need addressing for a Windows daemon. @@ -83,12 +84,12 @@ func TestIpcModeTest(t *testing.T) { } for ipcMode, state := range ipcModes { - assert.Equal(t, state.private, ipcMode.IsPrivate(), "IpcMode.IsPrivate() parsing failed for %q", ipcMode) - assert.Equal(t, state.host, ipcMode.IsHost(), "IpcMode.IsHost() parsing failed for %q", ipcMode) - assert.Equal(t, state.container, ipcMode.IsContainer(), "IpcMode.IsContainer() parsing failed for %q", ipcMode) - assert.Equal(t, state.shareable, ipcMode.IsShareable(), "IpcMode.IsShareable() parsing failed for %q", ipcMode) - assert.Equal(t, state.valid, ipcMode.Valid(), "IpcMode.Valid() parsing failed for %q", ipcMode) - assert.Equal(t, state.ctrName, ipcMode.Container(), "IpcMode.Container() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.private, ipcMode.IsPrivate()), "IpcMode.IsPrivate() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.host, ipcMode.IsHost()), "IpcMode.IsHost() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.container, ipcMode.IsContainer()), "IpcMode.IsContainer() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.shareable, ipcMode.IsShareable()), "IpcMode.IsShareable() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.valid, ipcMode.Valid()), "IpcMode.Valid() parsing failed for %q", ipcMode) + assert.Check(t, is.Equal(state.ctrName, ipcMode.Container()), "IpcMode.Container() parsing failed for %q", ipcMode) } } @@ -195,7 +196,7 @@ func TestDecodeHostConfig(t *testing.T) { t.Fatal(fmt.Errorf("Error parsing %s: %v", f, err)) } - assert.False(t, c.Privileged) + assert.Check(t, !c.Privileged) if l := len(c.Binds); l != 1 { t.Fatalf("Expected 1 bind, found %d\n", l) diff --git a/volume/store/db_test.go b/volume/store/db_test.go index 9c45cd13ba..0a2727e749 100644 --- a/volume/store/db_test.go +++ b/volume/store/db_test.go @@ -8,33 +8,34 @@ import ( "time" "github.com/boltdb/bolt" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestSetGetMeta(t *testing.T) { t.Parallel() dir, err := ioutil.TempDir("", "test-set-get") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dir) db, err := bolt.Open(filepath.Join(dir, "db"), 0600, &bolt.Options{Timeout: 1 * time.Second}) - require.NoError(t, err) + assert.NilError(t, err) store := &VolumeStore{db: db} _, err = store.getMeta("test") - require.Error(t, err) + assert.Assert(t, is.ErrorContains(err, "")) err = db.Update(func(tx *bolt.Tx) error { _, err := tx.CreateBucket(volumeBucketName) return err }) - require.NoError(t, err) + assert.NilError(t, err) meta, err := store.getMeta("test") - require.NoError(t, err) - require.Equal(t, volumeMetadata{}, meta) + assert.NilError(t, err) + assert.DeepEqual(t, volumeMetadata{}, meta) testMeta := volumeMetadata{ Name: "test", @@ -43,9 +44,9 @@ func TestSetGetMeta(t *testing.T) { Options: map[string]string{"foo": "bar"}, } err = store.setMeta("test", testMeta) - require.NoError(t, err) + assert.NilError(t, err) meta, err = store.getMeta("test") - require.NoError(t, err) - require.Equal(t, testMeta, meta) + assert.NilError(t, err) + assert.DeepEqual(t, testMeta, meta) } diff --git a/volume/store/restore_test.go b/volume/store/restore_test.go index 83efd36b63..680735a384 100644 --- a/volume/store/restore_test.go +++ b/volume/store/restore_test.go @@ -8,14 +8,14 @@ import ( "github.com/docker/docker/volume" volumedrivers "github.com/docker/docker/volume/drivers" volumetestutils "github.com/docker/docker/volume/testutils" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" ) func TestRestore(t *testing.T) { t.Parallel() dir, err := ioutil.TempDir("", "test-restore") - require.NoError(t, err) + assert.NilError(t, err) defer os.RemoveAll(dir) driverName := "test-restore" @@ -23,33 +23,33 @@ func TestRestore(t *testing.T) { defer volumedrivers.Unregister("test-restore") s, err := New(dir) - require.NoError(t, err) + assert.NilError(t, err) defer s.Shutdown() _, err = s.Create("test1", driverName, nil, nil) - require.NoError(t, err) + assert.NilError(t, err) testLabels := map[string]string{"a": "1"} testOpts := map[string]string{"foo": "bar"} _, err = s.Create("test2", driverName, testOpts, testLabels) - require.NoError(t, err) + assert.NilError(t, err) s.Shutdown() s, err = New(dir) - require.NoError(t, err) + assert.NilError(t, err) v, err := s.Get("test1") - require.NoError(t, err) + assert.NilError(t, err) dv := v.(volume.DetailedVolume) var nilMap map[string]string - require.Equal(t, nilMap, dv.Options()) - require.Equal(t, nilMap, dv.Labels()) + assert.DeepEqual(t, nilMap, dv.Options()) + assert.DeepEqual(t, nilMap, dv.Labels()) v, err = s.Get("test2") - require.NoError(t, err) + assert.NilError(t, err) dv = v.(volume.DetailedVolume) - require.Equal(t, testOpts, dv.Options()) - require.Equal(t, testLabels, dv.Labels()) + assert.DeepEqual(t, testOpts, dv.Options()) + assert.DeepEqual(t, testLabels, dv.Labels()) } diff --git a/volume/store/store_test.go b/volume/store/store_test.go index e53c728dd0..c6d31364ac 100644 --- a/volume/store/store_test.go +++ b/volume/store/store_test.go @@ -12,8 +12,8 @@ import ( "github.com/docker/docker/volume" "github.com/docker/docker/volume/drivers" volumetestutils "github.com/docker/docker/volume/testutils" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/gotestyourself/gotestyourself/assert" + is "github.com/gotestyourself/gotestyourself/assert/cmp" ) func TestCreate(t *testing.T) { @@ -332,15 +332,15 @@ func TestRefDerefRemove(t *testing.T) { defer cleanup(t) v, err := s.CreateWithRef("test", driverName, "test-ref", nil, nil) - require.NoError(t, err) + assert.NilError(t, err) err = s.Remove(v) - require.Error(t, err) - require.Equal(t, errVolumeInUse, err.(*OpErr).Err) + assert.Assert(t, is.ErrorContains(err, "")) + assert.Equal(t, errVolumeInUse, err.(*OpErr).Err) s.Dereference(v, "test-ref") err = s.Remove(v) - require.NoError(t, err) + assert.NilError(t, err) } func TestGet(t *testing.T) { @@ -351,21 +351,21 @@ func TestGet(t *testing.T) { defer cleanup(t) _, err := s.Get("not-exist") - require.Error(t, err) - require.Equal(t, errNoSuchVolume, err.(*OpErr).Err) + assert.Assert(t, is.ErrorContains(err, "")) + assert.Equal(t, errNoSuchVolume, err.(*OpErr).Err) v1, err := s.Create("test", driverName, nil, map[string]string{"a": "1"}) - require.NoError(t, err) + assert.NilError(t, err) v2, err := s.Get("test") - require.NoError(t, err) - require.Equal(t, v1, v2) + assert.NilError(t, err) + assert.DeepEqual(t, v1, v2) dv := v2.(volume.DetailedVolume) - require.Equal(t, "1", dv.Labels()["a"]) + assert.Equal(t, "1", dv.Labels()["a"]) err = s.Remove(v1) - require.NoError(t, err) + assert.NilError(t, err) } func TestGetWithRef(t *testing.T) { @@ -376,22 +376,22 @@ func TestGetWithRef(t *testing.T) { defer cleanup(t) _, err := s.GetWithRef("not-exist", driverName, "test-ref") - require.Error(t, err) + assert.Assert(t, is.ErrorContains(err, "")) v1, err := s.Create("test", driverName, nil, map[string]string{"a": "1"}) - require.NoError(t, err) + assert.NilError(t, err) v2, err := s.GetWithRef("test", driverName, "test-ref") - require.NoError(t, err) - require.Equal(t, v1, v2) + assert.NilError(t, err) + assert.DeepEqual(t, v1, v2) err = s.Remove(v2) - require.Error(t, err) - require.Equal(t, errVolumeInUse, err.(*OpErr).Err) + assert.Assert(t, is.ErrorContains(err, "")) + assert.Equal(t, errVolumeInUse, err.(*OpErr).Err) s.Dereference(v2, "test-ref") err = s.Remove(v2) - require.NoError(t, err) + assert.NilError(t, err) } func setupTest(t *testing.T, name string) (*VolumeStore, func(*testing.T)) { @@ -409,15 +409,15 @@ func newTestStore(t *testing.T) (*VolumeStore, func(*testing.T)) { t.Helper() dir, err := ioutil.TempDir("", "store-root") - require.NoError(t, err) + assert.NilError(t, err) cleanup := func(t *testing.T) { err := os.RemoveAll(dir) - assert.NoError(t, err) + assert.Check(t, err) } s, err := New(dir) - assert.NoError(t, err) + assert.Check(t, err) return s, func(t *testing.T) { s.Shutdown() cleanup(t)