@@ -63,48 +63,70 @@ var bakeTests = []func(t *testing.T, sb integration.Sandbox){
6363}
6464
6565func testBakePrint (t * testing.T , sb integration.Sandbox ) {
66- dockerfile := []byte (`
67- FROM busybox
68- ARG HELLO
69- RUN echo "Hello ${HELLO}"
70- ` )
71- bakefile := []byte (`
66+ testCases := []struct {
67+ name string
68+ f string
69+ dt []byte
70+ }{
71+ {
72+ "HCL" ,
73+ "docker-bake.hcl" ,
74+ []byte (`
7275target "build" {
7376 args = {
7477 HELLO = "foo"
7578 }
7679}
77- ` )
78- dir := tmpdir (
79- t ,
80- fstest .CreateFile ("docker-bake.hcl" , bakefile , 0600 ),
81- fstest .CreateFile ("Dockerfile" , dockerfile , 0600 ),
82- )
83-
84- cmd := buildxCmd (sb , withDir (dir ), withArgs ("bake" , "--print" , "build" ))
85- stdout := bytes.Buffer {}
86- stderr := bytes.Buffer {}
87- cmd .Stdout = & stdout
88- cmd .Stderr = & stderr
89- require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
90-
91- var def struct {
92- Group map [string ]* bake.Group `json:"group,omitempty"`
93- Target map [string ]* bake.Target `json:"target"`
80+ ` )},
81+ {
82+ "Compose" ,
83+ "compose.yml" ,
84+ []byte (`
85+ services:
86+ build:
87+ build:
88+ context: .
89+ args:
90+ HELLO: foo
91+ ` )},
9492 }
95- require .NoError (t , json .Unmarshal (stdout .Bytes (), & def ))
9693
97- require .Len (t , def .Group , 1 )
98- require .Contains (t , def .Group , "default" )
99-
100- require .Equal (t , []string {"build" }, def .Group ["default" ].Targets )
101- require .Len (t , def .Target , 1 )
102- require .Contains (t , def .Target , "build" )
103- require .Equal (t , "." , * def .Target ["build" ].Context )
104- require .Equal (t , "Dockerfile" , * def .Target ["build" ].Dockerfile )
105- require .Equal (t , map [string ]* string {"HELLO" : ptrstr ("foo" )}, def .Target ["build" ].Args )
106-
107- require .Equal (t , `{
94+ for _ , tc := range testCases {
95+ t .Run (tc .name , func (t * testing.T ) {
96+ dir := tmpdir (
97+ t ,
98+ fstest .CreateFile (tc .f , tc .dt , 0600 ),
99+ fstest .CreateFile ("Dockerfile" , []byte (`
100+ FROM busybox
101+ ARG HELLO
102+ RUN echo "Hello ${HELLO}"
103+ ` ), 0600 ),
104+ )
105+
106+ cmd := buildxCmd (sb , withDir (dir ), withArgs ("bake" , "--print" , "build" ))
107+ stdout := bytes.Buffer {}
108+ stderr := bytes.Buffer {}
109+ cmd .Stdout = & stdout
110+ cmd .Stderr = & stderr
111+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
112+
113+ var def struct {
114+ Group map [string ]* bake.Group `json:"group,omitempty"`
115+ Target map [string ]* bake.Target `json:"target"`
116+ }
117+ require .NoError (t , json .Unmarshal (stdout .Bytes (), & def ))
118+
119+ require .Len (t , def .Group , 1 )
120+ require .Contains (t , def .Group , "default" )
121+
122+ require .Equal (t , []string {"build" }, def .Group ["default" ].Targets )
123+ require .Len (t , def .Target , 1 )
124+ require .Contains (t , def .Target , "build" )
125+ require .Equal (t , "." , * def .Target ["build" ].Context )
126+ require .Equal (t , "Dockerfile" , * def .Target ["build" ].Dockerfile )
127+ require .Equal (t , map [string ]* string {"HELLO" : ptrstr ("foo" )}, def .Target ["build" ].Args )
128+
129+ require .Equal (t , `{
108130 "group": {
109131 "default": {
110132 "targets": [
@@ -123,6 +145,8 @@ target "build" {
123145 }
124146}
125147` , stdout .String ())
148+ })
149+ }
126150}
127151
128152func testBakeLocal (t * testing.T , sb integration.Sandbox ) {
0 commit comments