diff --git a/integration/build/build_test.go b/integration/build/build_test.go index e4e30658c8..826f4d5eb4 100644 --- a/integration/build/build_test.go +++ b/integration/build/build_test.go @@ -216,7 +216,7 @@ func TestBuildMultiStageParentConfig(t *testing.T) { }) assert.NilError(t, err) _, err = io.Copy(io.Discard, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) img, _, err := apiclient.ImageInspectWithRaw(ctx, imgName) @@ -265,7 +265,7 @@ func TestBuildLabelWithTargets(t *testing.T) { }) assert.NilError(t, err) _, err = io.Copy(io.Discard, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) img, _, err := apiclient.ImageInspectWithRaw(ctx, imgName) @@ -292,7 +292,7 @@ func TestBuildLabelWithTargets(t *testing.T) { }) assert.NilError(t, err) _, err = io.Copy(io.Discard, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) img, _, err = apiclient.ImageInspectWithRaw(ctx, imgName) @@ -301,18 +301,18 @@ func TestBuildLabelWithTargets(t *testing.T) { testLabels["label-b"] = "inline-b" for k, v := range testLabels { x, ok := img.Config.Labels[k] - assert.Assert(t, ok) - assert.Assert(t, x == v) + assert.Check(t, ok) + assert.Check(t, x == v) } } func TestBuildWithEmptyLayers(t *testing.T) { - dockerfile := ` - FROM busybox - COPY 1/ /target/ - COPY 2/ /target/ - COPY 3/ /target/ - ` + const dockerfile = ` +FROM busybox +COPY 1/ /target/ +COPY 2/ /target/ +COPY 3/ /target/ +` ctx := setupTest(t) source := fakecontext.New(t, "", fakecontext.WithDockerfile(dockerfile), @@ -330,7 +330,7 @@ func TestBuildWithEmptyLayers(t *testing.T) { }) assert.NilError(t, err) _, err = io.Copy(io.Discard, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) } @@ -341,7 +341,8 @@ func TestBuildMultiStageOnBuild(t *testing.T) { ctx := setupTest(t) // test both metadata and layer based commands as they may be implemented differently - dockerfile := `FROM busybox AS stage1 + const dockerfile = ` +FROM busybox AS stage1 ONBUILD RUN echo 'foo' >somefile ONBUILD ENV bar=baz @@ -367,7 +368,7 @@ RUN cat somefile` out := bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) assert.Check(t, is.Contains(out.String(), "Successfully built")) @@ -387,10 +388,12 @@ func TestBuildUncleanTarFilenames(t *testing.T) { ctx := setupTest(t) - dockerfile := `FROM scratch + const dockerfile = ` +FROM scratch COPY foo / FROM scratch -COPY bar /` +COPY bar / +` buf := bytes.NewBuffer(nil) w := tar.NewWriter(buf) @@ -411,7 +414,7 @@ COPY bar /` out := bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) // repeat with changed data should not cause cache hits @@ -434,7 +437,7 @@ COPY bar /` out = bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) assert.Assert(t, !strings.Contains(out.String(), "Using cache")) } @@ -445,7 +448,8 @@ func TestBuildMultiStageLayerLeak(t *testing.T) { ctx := setupTest(t) // all commands need to match until COPY - dockerfile := `FROM busybox + const dockerfile = ` +FROM busybox WORKDIR /foo COPY foo . FROM busybox @@ -461,8 +465,8 @@ RUN [ ! -f foo ] fakecontext.WithDockerfile(dockerfile)) defer source.Close() - apiclient := testEnv.APIClient() - resp, err := apiclient.ImageBuild(ctx, + apiClient := testEnv.APIClient() + resp, err := apiClient.ImageBuild(ctx, source.AsTarReader(t), types.ImageBuildOptions{ Remove: true, @@ -472,7 +476,7 @@ RUN [ ! -f foo ] out := bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) assert.Check(t, is.Contains(out.String(), "Successfully built")) @@ -483,16 +487,22 @@ RUN [ ! -f foo ] func TestBuildWithHugeFile(t *testing.T) { ctx := setupTest(t) - dockerfile := `FROM busybox -` - + var dockerfile string if testEnv.DaemonInfo.OSType == "windows" { - dockerfile += `# create a file with size of 8GB -RUN powershell "fsutil.exe file createnew bigfile.txt 8589934592 ; dir bigfile.txt"` + dockerfile = ` +FROM busybox + +# create a file with size of 8GB +RUN powershell "fsutil.exe file createnew bigfile.txt 8589934592 ; dir bigfile.txt" +` } else { - dockerfile += `# create a sparse file with size over 8GB -RUN for g in $(seq 0 8); do dd if=/dev/urandom of=rnd bs=1K count=1 seek=$((1024*1024*g)) status=none; done && \ - ls -la rnd && du -sk rnd` + dockerfile = ` +FROM busybox + +# create a sparse file with size over 8GB +RUN for g in $(seq 0 8); do dd if=/dev/urandom of=rnd bs=1K count=1 seek=$((1024*1024*g)) status=none; done \ + && ls -la rnd && du -sk rnd +` } buf := bytes.NewBuffer(nil) @@ -501,8 +511,8 @@ RUN for g in $(seq 0 8); do dd if=/dev/urandom of=rnd bs=1K count=1 seek=$((1024 err := w.Close() assert.NilError(t, err) - apiclient := testEnv.APIClient() - resp, err := apiclient.ImageBuild(ctx, + apiClient := testEnv.APIClient() + resp, err := apiClient.ImageBuild(ctx, buf, types.ImageBuildOptions{ Remove: true, @@ -512,7 +522,7 @@ RUN for g in $(seq 0 8); do dd if=/dev/urandom of=rnd bs=1K count=1 seek=$((1024 out := bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) assert.Check(t, is.Contains(out.String(), "Successfully built")) } @@ -522,7 +532,8 @@ func TestBuildWCOWSandboxSize(t *testing.T) { skip.If(t, testEnv.DaemonInfo.OSType != "windows", "only Windows has sandbox size control") ctx := setupTest(t) - dockerfile := `FROM busybox AS intermediate + const dockerfile = ` +FROM busybox AS intermediate WORKDIR C:\\stuff # Create and delete a 21GB file RUN fsutil file createnew C:\\stuff\\bigfile_0.txt 22548578304 && del bigfile_0.txt @@ -541,8 +552,8 @@ COPY --from=intermediate C:\\stuff C:\\stuff err := w.Close() assert.NilError(t, err) - apiclient := testEnv.APIClient() - resp, err := apiclient.ImageBuild(ctx, + apiClient := testEnv.APIClient() + resp, err := apiClient.ImageBuild(ctx, buf, types.ImageBuildOptions{ Remove: true, @@ -552,7 +563,7 @@ COPY --from=intermediate C:\\stuff C:\\stuff out := bytes.NewBuffer(nil) assert.NilError(t, err) _, err = io.Copy(out, resp.Body) - resp.Body.Close() + assert.Check(t, resp.Body.Close()) assert.NilError(t, err) // The test passes if either: // - the image build succeeded; or @@ -595,7 +606,7 @@ func TestBuildWithEmptyDockerfile(t *testing.T) { }, } - apiclient := testEnv.APIClient() + apiClient := testEnv.APIClient() for _, tc := range tests { tc := tc @@ -608,7 +619,7 @@ func TestBuildWithEmptyDockerfile(t *testing.T) { err := w.Close() assert.NilError(t, err) - _, err = apiclient.ImageBuild(ctx, + _, err = apiClient.ImageBuild(ctx, buf, types.ImageBuildOptions{ Remove: true, @@ -631,13 +642,13 @@ func TestBuildPreserveOwnership(t *testing.T) { source := fakecontext.New(t, "", fakecontext.WithDockerfile(string(dockerfile))) defer source.Close() - apiclient := testEnv.APIClient() + apiClient := testEnv.APIClient() for _, target := range []string{"copy_from", "copy_from_chowned"} { t.Run(target, func(t *testing.T) { ctx := testutil.StartSpan(ctx, t) - resp, err := apiclient.ImageBuild( + resp, err := apiClient.ImageBuild( ctx, source.AsTarReader(t), types.ImageBuildOptions{ @@ -662,27 +673,20 @@ func TestBuildPreserveOwnership(t *testing.T) { func TestBuildPlatformInvalid(t *testing.T) { ctx := setupTest(t) - dockerfile := `FROM busybox -` - buf := bytes.NewBuffer(nil) w := tar.NewWriter(buf) - writeTarRecord(t, w, "Dockerfile", dockerfile) + writeTarRecord(t, w, "Dockerfile", `FROM busybox`) err := w.Close() assert.NilError(t, err) - apiclient := testEnv.APIClient() - _, err = apiclient.ImageBuild(ctx, - buf, - types.ImageBuildOptions{ - Remove: true, - ForceRemove: true, - Platform: "foobar", - }) + _, err = testEnv.APIClient().ImageBuild(ctx, buf, types.ImageBuildOptions{ + Remove: true, + ForceRemove: true, + Platform: "foobar", + }) - assert.Assert(t, err != nil) - assert.ErrorContains(t, err, "unknown operating system or architecture") - assert.Assert(t, errdefs.IsInvalidParameter(err)) + assert.Check(t, is.ErrorContains(err, "unknown operating system or architecture")) + assert.Check(t, is.ErrorType(err, errdefs.IsInvalidParameter)) } func writeTarRecord(t *testing.T, w *tar.Writer, fn, contents string) {