11package tests
22
33import (
4+ "bytes"
45 "encoding/json"
56 "os/exec"
7+ "strings"
68 "testing"
79
810 "github.com/containerd/containerd/v2/core/images"
911 "github.com/containerd/continuity/fs/fstest"
1012 "github.com/containerd/platforms"
1113 "github.com/moby/buildkit/util/testutil/integration"
14+ "github.com/opencontainers/go-digest"
1215 ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
1316 "github.com/pkg/errors"
1417 "github.com/stretchr/testify/require"
@@ -51,8 +54,16 @@ func testImagetoolsCopyManifest(t *testing.T, sb integration.Sandbox) {
5154 target2 := registry2 + "/buildx/imtools2-manifest:latest"
5255
5356 cmd = buildxCmd (sb , withArgs ("imagetools" , "create" , "-t" , target2 , target ))
54- dt , err = cmd .CombinedOutput ()
55- require .NoError (t , err , string (dt ))
57+ stdout := bytes.Buffer {}
58+ stderr := bytes.Buffer {}
59+ cmd .Stdout = & stdout
60+ cmd .Stderr = & stderr
61+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
62+ outputDigest := strings .TrimSpace (stdout .String ())
63+ require .NotEmpty (t , outputDigest )
64+ t .Logf ("digest: %s" , outputDigest )
65+ _ , err = digest .Parse (outputDigest )
66+ require .NoError (t , err )
5667
5768 cmd = buildxCmd (sb , withArgs ("imagetools" , "inspect" , target2 , "--raw" ))
5869 dt , err = cmd .CombinedOutput ()
@@ -80,8 +91,16 @@ func testImagetoolsCopyManifest(t *testing.T, sb integration.Sandbox) {
8091 }
8192
8293 cmd = buildxCmd (sb , withArgs ("imagetools" , "create" , "--prefer-index=false" , "-t" , target2 + "-not-index" , target ))
83- dt , err = cmd .CombinedOutput ()
84- require .NoError (t , err , string (dt ))
94+ stdout = bytes.Buffer {}
95+ stderr = bytes.Buffer {}
96+ cmd .Stdout = & stdout
97+ cmd .Stderr = & stderr
98+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
99+ outputDigest = strings .TrimSpace (stdout .String ())
100+ require .NotEmpty (t , outputDigest )
101+ t .Logf ("digest: %s" , outputDigest )
102+ _ , err = digest .Parse (outputDigest )
103+ require .NoError (t , err )
85104
86105 cmd = buildxCmd (sb , withArgs ("imagetools" , "inspect" , target2 + "-not-index" , "--raw" ))
87106 dt , err = cmd .CombinedOutput ()
@@ -124,8 +143,16 @@ func testImagetoolsCopyIndex(t *testing.T, sb integration.Sandbox) {
124143 target2 := registry2 + "/buildx/imtools2:latest"
125144
126145 cmd = buildxCmd (sb , withArgs ("imagetools" , "create" , "-t" , target2 , target ))
127- dt , err = cmd .CombinedOutput ()
128- require .NoError (t , err , string (dt ))
146+ stdout := bytes.Buffer {}
147+ stderr := bytes.Buffer {}
148+ cmd .Stdout = & stdout
149+ cmd .Stderr = & stderr
150+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
151+ outputDigest := strings .TrimSpace (stdout .String ())
152+ require .NotEmpty (t , outputDigest )
153+ t .Logf ("digest: %s" , outputDigest )
154+ _ , err = digest .Parse (outputDigest )
155+ require .NoError (t , err )
129156
130157 cmd = buildxCmd (sb , withArgs ("imagetools" , "inspect" , target2 , "--raw" ))
131158 dt , err = cmd .CombinedOutput ()
@@ -142,8 +169,16 @@ func testImagetoolsCopyIndex(t *testing.T, sb integration.Sandbox) {
142169 }
143170
144171 cmd = buildxCmd (sb , withArgs ("imagetools" , "create" , "--prefer-index=false" , "-t" , target2 + "-still-index" , target ))
145- dt , err = cmd .CombinedOutput ()
146- require .NoError (t , err , string (dt ))
172+ stdout = bytes.Buffer {}
173+ stderr = bytes.Buffer {}
174+ cmd .Stdout = & stdout
175+ cmd .Stderr = & stderr
176+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
177+ outputDigest = strings .TrimSpace (stdout .String ())
178+ require .NotEmpty (t , outputDigest )
179+ t .Logf ("digest: %s" , outputDigest )
180+ _ , err = digest .Parse (outputDigest )
181+ require .NoError (t , err )
147182
148183 cmd = buildxCmd (sb , withArgs ("imagetools" , "inspect" , target2 + "-still-index" , "--raw" ))
149184 dt , err = cmd .CombinedOutput ()
0 commit comments