From d2c512a95b630024b1880d483fdfaae4e29a8f26 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 19 Nov 2024 21:31:51 -0800 Subject: [PATCH] lint: enable testifylint Signed-off-by: Tonis Tiigi --- .golangci.yml | 9 ++ bake/bake_test.go | 10 +-- bake/hcl_test.go | 98 +++++++++++----------- build/git_test.go | 10 +-- build/replicatedstream_test.go | 3 +- build/utils_test.go | 2 +- builder/builder_test.go | 6 +- driver/kubernetes/context/endpoint_test.go | 12 +-- store/nodegroup_test.go | 6 +- store/store_test.go | 3 +- tests/bake.go | 2 +- tests/build.go | 10 +-- tests/create.go | 2 +- tests/dialstdio.go | 3 +- util/confutil/config_unix_test.go | 3 +- util/imagetools/loader_test.go | 19 +++-- util/waitmap/waitmap_test.go | 3 +- 17 files changed, 105 insertions(+), 96 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 14d7eb64..608bbfb2 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -23,6 +23,7 @@ linters: - nolintlint - revive - staticcheck + - testifylint - typecheck - unused - whitespace @@ -81,6 +82,14 @@ linters-settings: - G115 # integer overflow conversion (TODO: verify these) config: G306: "0644" + testifylint: + disable: + # disable rules that reduce the test condition + - "empty" + - "bool-compare" + - "len" + - "negative-positive" + issues: exclude-files: diff --git a/bake/bake_test.go b/bake/bake_test.go index f07794a8..0e76e0ef 100644 --- a/bake/bake_test.go +++ b/bake/bake_test.go @@ -59,8 +59,8 @@ target "webapp" { t.Run("InvalidTargetOverrides", func(t *testing.T) { t.Parallel() _, _, err := ReadTargets(ctx, []File{fp}, []string{"webapp"}, []string{"nosuchtarget.context=foo"}, nil) - require.NotNil(t, err) - require.Equal(t, err.Error(), "could not find any target matching 'nosuchtarget'") + require.Error(t, err) + require.Equal(t, "could not find any target matching 'nosuchtarget'", err.Error()) }) t.Run("ArgsOverrides", func(t *testing.T) { @@ -116,7 +116,7 @@ target "webapp" { t.Run("ContextOverride", func(t *testing.T) { t.Parallel() _, _, err := ReadTargets(ctx, []File{fp}, []string{"webapp"}, []string{"webapp.context"}, nil) - require.NotNil(t, err) + require.Error(t, err) m, g, err := ReadTargets(ctx, []File{fp}, []string{"webapp"}, []string{"webapp.context=foo"}, nil) require.NoError(t, err) @@ -203,8 +203,8 @@ target "webapp" { // NOTE: I am unsure whether failing to match should always error out // instead of simply skipping that override. // Let's enforce the error and we can relax it later if users complain. - require.NotNil(t, err) - require.Equal(t, err.Error(), "could not find any target matching 'nomatch*'") + require.Error(t, err) + require.Equal(t, "could not find any target matching 'nomatch*'", err.Error()) }, }, } diff --git a/bake/hcl_test.go b/bake/hcl_test.go index ac5e61eb..e18ff1e9 100644 --- a/bake/hcl_test.go +++ b/bake/hcl_test.go @@ -49,18 +49,18 @@ func TestHCLBasic(t *testing.T) { require.Equal(t, []string{"db", "webapp"}, c.Groups[0].Targets) require.Equal(t, 4, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "db") + require.Equal(t, "db", c.Targets[0].Name) require.Equal(t, "./db", *c.Targets[0].Context) - require.Equal(t, c.Targets[1].Name, "webapp") + require.Equal(t, "webapp", c.Targets[1].Name) require.Equal(t, 1, len(c.Targets[1].Args)) require.Equal(t, ptrstr("123"), c.Targets[1].Args["buildno"]) - require.Equal(t, c.Targets[2].Name, "cross") + require.Equal(t, "cross", c.Targets[2].Name) require.Equal(t, 2, len(c.Targets[2].Platforms)) require.Equal(t, []string{"linux/amd64", "linux/arm64"}, c.Targets[2].Platforms) - require.Equal(t, c.Targets[3].Name, "webapp-plus") + require.Equal(t, "webapp-plus", c.Targets[3].Name) require.Equal(t, 1, len(c.Targets[3].Args)) require.Equal(t, map[string]*string{"IAMCROSS": ptrstr("true")}, c.Targets[3].Args) } @@ -109,18 +109,18 @@ func TestHCLBasicInJSON(t *testing.T) { require.Equal(t, []string{"db", "webapp"}, c.Groups[0].Targets) require.Equal(t, 4, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "db") + require.Equal(t, "db", c.Targets[0].Name) require.Equal(t, "./db", *c.Targets[0].Context) - require.Equal(t, c.Targets[1].Name, "webapp") + require.Equal(t, "webapp", c.Targets[1].Name) require.Equal(t, 1, len(c.Targets[1].Args)) require.Equal(t, ptrstr("123"), c.Targets[1].Args["buildno"]) - require.Equal(t, c.Targets[2].Name, "cross") + require.Equal(t, "cross", c.Targets[2].Name) require.Equal(t, 2, len(c.Targets[2].Platforms)) require.Equal(t, []string{"linux/amd64", "linux/arm64"}, c.Targets[2].Platforms) - require.Equal(t, c.Targets[3].Name, "webapp-plus") + require.Equal(t, "webapp-plus", c.Targets[3].Name) require.Equal(t, 1, len(c.Targets[3].Args)) require.Equal(t, map[string]*string{"IAMCROSS": ptrstr("true")}, c.Targets[3].Args) } @@ -146,7 +146,7 @@ func TestHCLWithFunctions(t *testing.T) { require.Equal(t, []string{"webapp"}, c.Groups[0].Targets) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, ptrstr("124"), c.Targets[0].Args["buildno"]) } @@ -176,7 +176,7 @@ func TestHCLWithUserDefinedFunctions(t *testing.T) { require.Equal(t, []string{"webapp"}, c.Groups[0].Targets) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, ptrstr("124"), c.Targets[0].Args["buildno"]) } @@ -205,7 +205,7 @@ func TestHCLWithVariables(t *testing.T) { require.Equal(t, []string{"webapp"}, c.Groups[0].Targets) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, ptrstr("123"), c.Targets[0].Args["buildno"]) t.Setenv("BUILD_NUMBER", "456") @@ -218,7 +218,7 @@ func TestHCLWithVariables(t *testing.T) { require.Equal(t, []string{"webapp"}, c.Groups[0].Targets) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, ptrstr("456"), c.Targets[0].Args["buildno"]) } @@ -241,7 +241,7 @@ func TestHCLWithVariablesInFunctions(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, []string{"user/repo:v1"}, c.Targets[0].Tags) t.Setenv("REPO", "docker/buildx") @@ -250,7 +250,7 @@ func TestHCLWithVariablesInFunctions(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "webapp") + require.Equal(t, "webapp", c.Targets[0].Name) require.Equal(t, []string{"docker/buildx:v1"}, c.Targets[0].Tags) } @@ -279,7 +279,7 @@ func TestHCLMultiFileSharedVariables(t *testing.T) { }, nil) require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-abc"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("abc-post"), c.Targets[0].Args["v2"]) @@ -292,7 +292,7 @@ func TestHCLMultiFileSharedVariables(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-def"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("def-post"), c.Targets[0].Args["v2"]) } @@ -328,7 +328,7 @@ func TestHCLVarsWithVars(t *testing.T) { }, nil) require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre--ABCDEF-"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("ABCDEF-post"), c.Targets[0].Args["v2"]) @@ -341,7 +341,7 @@ func TestHCLVarsWithVars(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre--NEWDEF-"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("NEWDEF-post"), c.Targets[0].Args["v2"]) } @@ -366,7 +366,7 @@ func TestHCLTypedVariables(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("lower"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("yes"), c.Targets[0].Args["v2"]) @@ -377,7 +377,7 @@ func TestHCLTypedVariables(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("higher"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("no"), c.Targets[0].Args["v2"]) @@ -475,7 +475,7 @@ func TestHCLAttrs(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("attr-abcdef"), c.Targets[0].Args["v1"]) // env does not apply if no variable @@ -484,7 +484,7 @@ func TestHCLAttrs(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("attr-abcdef"), c.Targets[0].Args["v1"]) // attr-multifile } @@ -592,7 +592,7 @@ func TestHCLAttrsCustomType(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, []string{"linux/arm64", "linux/amd64"}, c.Targets[0].Platforms) require.Equal(t, ptrstr("linux/arm64"), c.Targets[0].Args["v1"]) } @@ -618,7 +618,7 @@ func TestHCLMultiFileAttrs(t *testing.T) { }, nil) require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-def"), c.Targets[0].Args["v1"]) t.Setenv("FOO", "ghi") @@ -630,7 +630,7 @@ func TestHCLMultiFileAttrs(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-ghi"), c.Targets[0].Args["v1"]) } @@ -653,7 +653,7 @@ func TestHCLMultiFileGlobalAttrs(t *testing.T) { }, nil) require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, "pre-def", *c.Targets[0].Args["v1"]) } @@ -839,12 +839,12 @@ func TestHCLRenameMultiFile(t *testing.T) { require.Equal(t, 2, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "bar") - require.Equal(t, *c.Targets[0].Dockerfile, "x") - require.Equal(t, *c.Targets[0].Target, "z") + require.Equal(t, "bar", c.Targets[0].Name) + require.Equal(t, "x", *c.Targets[0].Dockerfile) + require.Equal(t, "z", *c.Targets[0].Target) - require.Equal(t, c.Targets[1].Name, "foo") - require.Equal(t, *c.Targets[1].Context, "y") + require.Equal(t, "foo", c.Targets[1].Name) + require.Equal(t, "y", *c.Targets[1].Context) } func TestHCLMatrixBasic(t *testing.T) { @@ -862,10 +862,10 @@ func TestHCLMatrixBasic(t *testing.T) { require.NoError(t, err) require.Equal(t, 2, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "x") - require.Equal(t, c.Targets[1].Name, "y") - require.Equal(t, *c.Targets[0].Dockerfile, "x.Dockerfile") - require.Equal(t, *c.Targets[1].Dockerfile, "y.Dockerfile") + require.Equal(t, "x", c.Targets[0].Name) + require.Equal(t, "y", c.Targets[1].Name) + require.Equal(t, "x.Dockerfile", *c.Targets[0].Dockerfile) + require.Equal(t, "y.Dockerfile", *c.Targets[1].Dockerfile) require.Equal(t, 1, len(c.Groups)) require.Equal(t, "default", c.Groups[0].Name) @@ -948,9 +948,9 @@ func TestHCLMatrixMaps(t *testing.T) { require.NoError(t, err) require.Equal(t, 2, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "aa") + require.Equal(t, "aa", c.Targets[0].Name) require.Equal(t, c.Targets[0].Args["target"], ptrstr("valbb")) - require.Equal(t, c.Targets[1].Name, "cc") + require.Equal(t, "cc", c.Targets[1].Name) require.Equal(t, c.Targets[1].Args["target"], ptrstr("valdd")) } @@ -1141,7 +1141,7 @@ func TestJSONAttributes(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-abc-def"), c.Targets[0].Args["v1"]) } @@ -1166,7 +1166,7 @@ func TestJSONFunctions(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("pre-"), c.Targets[0].Args["v1"]) } @@ -1184,7 +1184,7 @@ func TestJSONInvalidFunctions(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr(`myfunc("foo")`), c.Targets[0].Args["v1"]) } @@ -1212,7 +1212,7 @@ func TestHCLFunctionInAttr(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("FOO <> [baz]"), c.Targets[0].Args["v1"]) } @@ -1243,7 +1243,7 @@ services: require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, ptrstr("foo"), c.Targets[0].Args["v1"]) require.Equal(t, ptrstr("bar"), c.Targets[0].Args["v2"]) require.Equal(t, "dir", *c.Targets[0].Context) @@ -1266,7 +1266,7 @@ func TestHCLBuiltinVars(t *testing.T) { require.NoError(t, err) require.Equal(t, 1, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "app") + require.Equal(t, "app", c.Targets[0].Name) require.Equal(t, "foo", *c.Targets[0].Context) require.Equal(t, "test", *c.Targets[0].Dockerfile) } @@ -1332,17 +1332,17 @@ target "b" { require.Equal(t, 4, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "metadata-a") + require.Equal(t, "metadata-a", c.Targets[0].Name) require.Equal(t, []string{"app/a:1.0.0", "app/a:latest"}, c.Targets[0].Tags) - require.Equal(t, c.Targets[1].Name, "metadata-b") + require.Equal(t, "metadata-b", c.Targets[1].Name) require.Equal(t, []string{"app/b:1.0.0", "app/b:latest"}, c.Targets[1].Tags) - require.Equal(t, c.Targets[2].Name, "a") + require.Equal(t, "a", c.Targets[2].Name) require.Equal(t, ".", *c.Targets[2].Context) require.Equal(t, "a", *c.Targets[2].Target) - require.Equal(t, c.Targets[3].Name, "b") + require.Equal(t, "b", c.Targets[3].Name) require.Equal(t, ".", *c.Targets[3].Context) require.Equal(t, "b", *c.Targets[3].Target) } @@ -1389,10 +1389,10 @@ target "two" { require.Equal(t, 2, len(c.Targets)) - require.Equal(t, c.Targets[0].Name, "one") + require.Equal(t, "one", c.Targets[0].Name) require.Equal(t, map[string]*string{"a": ptrstr("pre-ghi-jkl")}, c.Targets[0].Args) - require.Equal(t, c.Targets[1].Name, "two") + require.Equal(t, "two", c.Targets[1].Name) require.Equal(t, map[string]*string{"b": ptrstr("pre-jkl")}, c.Targets[1].Args) } diff --git a/build/git_test.go b/build/git_test.go index ee4e9403..10228f5c 100644 --- a/build/git_test.go +++ b/build/git_test.go @@ -23,7 +23,7 @@ func setupTest(tb testing.TB) { gitutil.GitInit(c, tb) df := []byte("FROM alpine:latest\n") - assert.NoError(tb, os.WriteFile("Dockerfile", df, 0644)) + require.NoError(tb, os.WriteFile("Dockerfile", df, 0644)) gitutil.GitAdd(c, tb, "Dockerfile") gitutil.GitCommit(c, tb, "initial commit") @@ -32,7 +32,7 @@ func setupTest(tb testing.TB) { func TestGetGitAttributesNotGitRepo(t *testing.T) { _, err := getGitAttributes(context.Background(), t.TempDir(), "Dockerfile") - assert.NoError(t, err) + require.NoError(t, err) } func TestGetGitAttributesBadGitRepo(t *testing.T) { @@ -47,7 +47,7 @@ func TestGetGitAttributesNoContext(t *testing.T) { setupTest(t) addGitAttrs, err := getGitAttributes(context.Background(), "", "Dockerfile") - assert.NoError(t, err) + require.NoError(t, err) var so client.SolveOpt addGitAttrs(&so) assert.Empty(t, so.FrontendAttrs) @@ -195,8 +195,8 @@ func TestLocalDirsSub(t *testing.T) { gitutil.GitInit(c, t) df := []byte("FROM alpine:latest\n") - assert.NoError(t, os.MkdirAll("app", 0755)) - assert.NoError(t, os.WriteFile("app/Dockerfile", df, 0644)) + require.NoError(t, os.MkdirAll("app", 0755)) + require.NoError(t, os.WriteFile("app/Dockerfile", df, 0644)) gitutil.GitAdd(c, t, "app/Dockerfile") gitutil.GitCommit(c, t, "initial commit") diff --git a/build/replicatedstream_test.go b/build/replicatedstream_test.go index 985303b4..8704755b 100644 --- a/build/replicatedstream_test.go +++ b/build/replicatedstream_test.go @@ -10,7 +10,6 @@ import ( "time" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" ) func generateRandomData(size int) []byte { @@ -57,7 +56,7 @@ func TestSyncMultiReaderParallel(t *testing.T) { return } - require.NoError(t, err, "Reader %d error", readerId) + assert.NoError(t, err, "Reader %d error", readerId) if mathrand.Intn(1000) == 0 { //nolint:gosec t.Logf("Reader %d closing", readerId) diff --git a/build/utils_test.go b/build/utils_test.go index 375c1e7e..f12eda3a 100644 --- a/build/utils_test.go +++ b/build/utils_test.go @@ -138,7 +138,7 @@ func TestToBuildkitExtraHosts(t *testing.T) { actualOut, actualErr := toBuildkitExtraHosts(context.TODO(), tc.input, nil) if tc.expectedErr == "" { require.Equal(t, tc.expectedOut, actualOut) - require.Nil(t, actualErr) + require.NoError(t, actualErr) } else { require.Zero(t, actualOut) require.Error(t, actualErr, tc.expectedErr) diff --git a/builder/builder_test.go b/builder/builder_test.go index 97c09143..130a4a01 100644 --- a/builder/builder_test.go +++ b/builder/builder_test.go @@ -19,13 +19,13 @@ func TestCsvToMap(t *testing.T) { require.NoError(t, err) require.Contains(t, r, "tolerations") - require.Equal(t, r["tolerations"], "key=foo,value=bar;key=foo2,value=bar2") + require.Equal(t, "key=foo,value=bar;key=foo2,value=bar2", r["tolerations"]) require.Contains(t, r, "replicas") - require.Equal(t, r["replicas"], "1") + require.Equal(t, "1", r["replicas"]) require.Contains(t, r, "namespace") - require.Equal(t, r["namespace"], "default") + require.Equal(t, "default", r["namespace"]) } func TestParseBuildkitdFlags(t *testing.T) { diff --git a/driver/kubernetes/context/endpoint_test.go b/driver/kubernetes/context/endpoint_test.go index c34d3eab..fd8b9348 100644 --- a/driver/kubernetes/context/endpoint_test.go +++ b/driver/kubernetes/context/endpoint_test.go @@ -191,7 +191,7 @@ func checkClientConfig(t *testing.T, ep Endpoint, server, namespace string, ca, require.NoError(t, err) assert.Equal(t, proxyURLString, proxyURL.String()) } else { - assert.True(t, cfg.Proxy == nil, "expected proxy to be nil, but is not nil instead") + assert.Nil(t, cfg.Proxy, "expected proxy to be nil, but is not nil instead") } } @@ -224,7 +224,7 @@ func TestSaveLoadGKEConfig(t *testing.T) { persistedMetadata, err := store.GetMetadata("gke-context") require.NoError(t, err) persistedEPMeta := EndpointFromContext(persistedMetadata) - assert.True(t, persistedEPMeta != nil) + assert.NotNil(t, persistedEPMeta) persistedEP, err := persistedEPMeta.WithTLSData(store, "gke-context") require.NoError(t, err) persistedCfg := persistedEP.KubernetesConfig() @@ -249,7 +249,7 @@ func TestSaveLoadEKSConfig(t *testing.T) { persistedMetadata, err := store.GetMetadata("eks-context") require.NoError(t, err) persistedEPMeta := EndpointFromContext(persistedMetadata) - assert.True(t, persistedEPMeta != nil) + assert.NotNil(t, persistedEPMeta) persistedEP, err := persistedEPMeta.WithTLSData(store, "eks-context") require.NoError(t, err) persistedCfg := persistedEP.KubernetesConfig() @@ -274,14 +274,14 @@ func TestSaveLoadK3SConfig(t *testing.T) { persistedMetadata, err := store.GetMetadata("k3s-context") require.NoError(t, err) persistedEPMeta := EndpointFromContext(persistedMetadata) - assert.True(t, persistedEPMeta != nil) + assert.NotNil(t, persistedEPMeta) persistedEP, err := persistedEPMeta.WithTLSData(store, "k3s-context") require.NoError(t, err) persistedCfg := persistedEP.KubernetesConfig() actualCfg, err := persistedCfg.ClientConfig() require.NoError(t, err) - assert.True(t, len(actualCfg.Username) > 0) - assert.True(t, len(actualCfg.Password) > 0) + assert.Greater(t, len(actualCfg.Username), 0) + assert.Greater(t, len(actualCfg.Password), 0) assert.Equal(t, expectedCfg.Username, actualCfg.Username) assert.Equal(t, expectedCfg.Password, actualCfg.Password) } diff --git a/store/nodegroup_test.go b/store/nodegroup_test.go index 7c1bce40..5a55703b 100644 --- a/store/nodegroup_test.go +++ b/store/nodegroup_test.go @@ -17,13 +17,13 @@ func TestNodeGroupUpdate(t *testing.T) { err = ng.Update("foo1", "foo1", []string{"linux/arm64", "linux/arm/v7"}, true, true, nil, "", nil) require.NoError(t, err) - require.Equal(t, len(ng.Nodes), 2) + require.Equal(t, 2, len(ng.Nodes)) // update err = ng.Update("foo", "foo2", []string{"linux/amd64", "linux/arm"}, true, false, nil, "", nil) require.NoError(t, err) - require.Equal(t, len(ng.Nodes), 2) + require.Equal(t, 2, len(ng.Nodes)) require.Equal(t, []string{"linux/amd64", "linux/arm/v7"}, platformutil.Format(ng.Nodes[0].Platforms)) require.Equal(t, []string{"linux/arm64"}, platformutil.Format(ng.Nodes[1].Platforms)) @@ -39,6 +39,6 @@ func TestNodeGroupUpdate(t *testing.T) { err = ng.Leave("foo") require.NoError(t, err) - require.Equal(t, len(ng.Nodes), 1) + require.Equal(t, 1, len(ng.Nodes)) require.Equal(t, []string{"linux/arm64"}, platformutil.Format(ng.Nodes[0].Platforms)) } diff --git a/store/store_test.go b/store/store_test.go index cdac3cdd..a59ea8e1 100644 --- a/store/store_test.go +++ b/store/store_test.go @@ -7,6 +7,7 @@ import ( "github.com/docker/buildx/util/confutil" "github.com/pkg/errors" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -44,7 +45,7 @@ func TestNodeLocking(t *testing.T) { go func() { _, release, err := s.Txn() - require.NoError(t, err) + assert.NoError(t, err) release() close(ready) }() diff --git a/tests/bake.go b/tests/bake.go index c089e732..a6bad6eb 100644 --- a/tests/bake.go +++ b/tests/bake.go @@ -126,7 +126,7 @@ RUN echo "Hello ${HELLO}" require.Equal(t, "Dockerfile", *def.Target["build"].Dockerfile) require.Equal(t, map[string]*string{"HELLO": ptrstr("foo")}, def.Target["build"].Args) - require.Equal(t, `{ + require.JSONEq(t, `{ "group": { "default": { "targets": [ diff --git a/tests/build.go b/tests/build.go index c90b7353..6aaa74e4 100644 --- a/tests/build.go +++ b/tests/build.go @@ -471,7 +471,7 @@ RUN echo foo > /bar`) cmd := buildxCmd(sb, withArgs("build", "--output=type=cacheonly", dir)) out, err := cmd.CombinedOutput() require.NoError(t, err, string(out)) - require.False(t, buildDetailsPattern.MatchString(string(out)), fmt.Sprintf("build details link not expected in output, got %q", out)) + require.False(t, buildDetailsPattern.MatchString(string(out)), "build details link not expected in output, got %q", out) // create desktop-build .lastaccess file home, err := os.UserHomeDir() // TODO: sandbox should create a temp home dir and expose it through its interface @@ -491,7 +491,7 @@ RUN echo foo > /bar`) cmd = buildxCmd(sb, withArgs("build", "--output=type=cacheonly", dir)) out, err = cmd.CombinedOutput() require.NoError(t, err, string(out)) - require.True(t, buildDetailsPattern.MatchString(string(out)), fmt.Sprintf("expected build details link in output, got %q", out)) + require.True(t, buildDetailsPattern.MatchString(string(out)), "expected build details link in output, got %q", out) // build erroneous dockerfile dockerfile = []byte(`FROM busybox:latest @@ -500,7 +500,7 @@ RUN exit 1`) cmd = buildxCmd(sb, withArgs("build", "--output=type=cacheonly", dir)) out, err = cmd.CombinedOutput() require.Error(t, err, string(out)) - require.True(t, buildDetailsPattern.MatchString(string(out)), fmt.Sprintf("expected build details link in output, got %q", out)) + require.True(t, buildDetailsPattern.MatchString(string(out)), "expected build details link in output, got %q", out) } func testBuildProgress(t *testing.T, sb integration.Sandbox) { @@ -578,7 +578,7 @@ func testBuildBuildArgNoKey(t *testing.T, sb integration.Sandbox) { cmd := buildxCmd(sb, withArgs("build", "--build-arg", "=TEST_STRING", dir)) out, err := cmd.CombinedOutput() require.Error(t, err, string(out)) - require.Equal(t, strings.TrimSpace(string(out)), `ERROR: invalid key-value pair "=TEST_STRING": empty key`) + require.Equal(t, `ERROR: invalid key-value pair "=TEST_STRING": empty key`, strings.TrimSpace(string(out))) } func testBuildLabelNoKey(t *testing.T, sb integration.Sandbox) { @@ -586,7 +586,7 @@ func testBuildLabelNoKey(t *testing.T, sb integration.Sandbox) { cmd := buildxCmd(sb, withArgs("build", "--label", "=TEST_STRING", dir)) out, err := cmd.CombinedOutput() require.Error(t, err, string(out)) - require.Equal(t, strings.TrimSpace(string(out)), `ERROR: invalid key-value pair "=TEST_STRING": empty key`) + require.Equal(t, `ERROR: invalid key-value pair "=TEST_STRING": empty key`, strings.TrimSpace(string(out))) } func testBuildCacheExportNotSupported(t *testing.T, sb integration.Sandbox) { diff --git a/tests/create.go b/tests/create.go index 5d2bc23c..647892e8 100644 --- a/tests/create.go +++ b/tests/create.go @@ -102,7 +102,7 @@ func testCreateRemoteContainer(t *testing.T, sb integration.Sandbox) { for _, line := range strings.Split(out, "\n") { if v, ok := strings.CutPrefix(line, "Status:"); ok { - require.Equal(t, strings.TrimSpace(v), "running") + require.Equal(t, "running", strings.TrimSpace(v)) return } } diff --git a/tests/dialstdio.go b/tests/dialstdio.go index a18e6178..4bb51615 100644 --- a/tests/dialstdio.go +++ b/tests/dialstdio.go @@ -17,7 +17,6 @@ import ( "github.com/moby/buildkit/util/progress/progressui" "github.com/moby/buildkit/util/testutil/integration" "github.com/pkg/errors" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -57,7 +56,7 @@ func testDialStdio(t *testing.T, sb integration.Sandbox) { case <-time.After(10 * time.Second): t.Error("timeout waiting for buildx command to exit") case <-chErr: - assert.NoError(t, err) + require.NoError(t, err) } }() diff --git a/util/confutil/config_unix_test.go b/util/confutil/config_unix_test.go index 3907b47e..2d217b4f 100644 --- a/util/confutil/config_unix_test.go +++ b/util/confutil/config_unix_test.go @@ -7,6 +7,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestIsSubPath(t *testing.T) { @@ -51,7 +52,7 @@ func TestIsSubPath(t *testing.T) { tt := tt t.Run(tt.name, func(t *testing.T) { ok, err := isSubPath(tt.basePath, tt.subPath) - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, tt.expected, ok) }) } diff --git a/util/imagetools/loader_test.go b/util/imagetools/loader_test.go index e4713742..b96e2663 100644 --- a/util/imagetools/loader_test.go +++ b/util/imagetools/loader_test.go @@ -10,6 +10,7 @@ import ( "github.com/opencontainers/go-digest" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestLoad(t *testing.T) { @@ -19,7 +20,7 @@ func TestLoad(t *testing.T) { r := getImageNoAttestation() indexDigest := reflect.ValueOf(r.indexes).MapKeys()[0].String() result, err := loader.Load(ctx, fmt.Sprintf("test@%s", indexDigest)) - assert.NoError(t, err) + require.NoError(t, err) if err == nil { assert.Equal(t, 1, len(result.indexes)) assert.Equal(t, 2, len(result.images)) @@ -32,7 +33,7 @@ func TestLoad(t *testing.T) { r = getImageWithAttestation(plainSpdx) indexDigest = reflect.ValueOf(r.indexes).MapKeys()[0].String() result, err = loader.Load(ctx, fmt.Sprintf("test@%s", indexDigest)) - assert.NoError(t, err) + require.NoError(t, err) if err == nil { assert.Equal(t, 1, len(result.indexes)) assert.Equal(t, 2, len(result.images)) @@ -92,7 +93,7 @@ func TestSBOM(t *testing.T) { r.assets["linux/amd64"] = a actual, err := r.SBOM() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, 1, len(actual)) }) } @@ -140,7 +141,7 @@ func TestProvenance(t *testing.T) { r.assets["linux/amd64"] = a actual, err := r.Provenance() - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, 1, len(actual)) }) } @@ -167,7 +168,7 @@ func Test_isInTotoDSSE(t *testing.T) { for _, test := range tests { t.Run(test.mime, func(t *testing.T) { - assert.Equal(t, isInTotoDSSE(test.mime), test.expected) + assert.Equal(t, test.expected, isInTotoDSSE(test.mime)) }) } } @@ -175,19 +176,19 @@ func Test_isInTotoDSSE(t *testing.T) { func Test_decodeDSSE(t *testing.T) { // Returns input when mime isn't a DSSE type actual, err := decodeDSSE([]byte("foobar"), "application/vnd.in-toto+json") - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, []byte("foobar"), actual) // Returns the base64 decoded payload if is a DSSE payload := base64.StdEncoding.EncodeToString([]byte("hello world")) envelope := fmt.Sprintf("{\"payload\":\"%s\"}", payload) actual, err = decodeDSSE([]byte(envelope), "application/vnd.in-toto.spdx+dsse") - assert.NoError(t, err) + require.NoError(t, err) assert.Equal(t, "hello world", string(actual)) _, err = decodeDSSE([]byte("not a json"), "application/vnd.in-toto.spdx+dsse") - assert.Error(t, err) + require.Error(t, err) _, err = decodeDSSE([]byte("{\"payload\": \"not base64\"}"), "application/vnd.in-toto.spdx+dsse") - assert.Error(t, err) + require.Error(t, err) } diff --git a/util/waitmap/waitmap_test.go b/util/waitmap/waitmap_test.go index 50f2f392..acfda43e 100644 --- a/util/waitmap/waitmap_test.go +++ b/util/waitmap/waitmap_test.go @@ -2,7 +2,6 @@ package waitmap import ( "context" - "errors" "testing" "time" @@ -39,7 +38,7 @@ func TestTimeout(t *testing.T) { _, err := m.Get(ctx, "bar") require.Error(t, err) - require.True(t, errors.Is(err, context.DeadlineExceeded)) + require.ErrorIs(t, err, context.DeadlineExceeded) } func TestBlocking(t *testing.T) {