@@ -63,48 +63,71 @@ 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+ }
92+ ` )},
9493 }
95- require .NoError (t , json .Unmarshal (stdout .Bytes (), & def ))
9694
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 , `{
95+ for _ , tc := range testCases {
96+ t .Run (tc .name , func (t * testing.T ) {
97+ dir := tmpdir (
98+ t ,
99+ fstest .CreateFile (tc .f , tc .dt , 0600 ),
100+ fstest .CreateFile ("Dockerfile" , []byte (`
101+ FROM busybox
102+ ARG HELLO
103+ RUN echo "Hello ${HELLO}"
104+ ` ), 0600 ),
105+ )
106+
107+ cmd := buildxCmd (sb , withDir (dir ), withArgs ("bake" , "--print" , "build" ))
108+ stdout := bytes.Buffer {}
109+ stderr := bytes.Buffer {}
110+ cmd .Stdout = & stdout
111+ cmd .Stderr = & stderr
112+ require .NoError (t , cmd .Run (), stdout .String (), stderr .String ())
113+
114+ var def struct {
115+ Group map [string ]* bake.Group `json:"group,omitempty"`
116+ Target map [string ]* bake.Target `json:"target"`
117+ }
118+ require .NoError (t , json .Unmarshal (stdout .Bytes (), & def ))
119+
120+ require .Len (t , def .Group , 1 )
121+ require .Contains (t , def .Group , "default" )
122+
123+ require .Equal (t , []string {"build" }, def .Group ["default" ].Targets )
124+ require .Len (t , def .Target , 1 )
125+ require .Contains (t , def .Target , "build" )
126+ require .Equal (t , "." , * def .Target ["build" ].Context )
127+ require .Equal (t , "Dockerfile" , * def .Target ["build" ].Dockerfile )
128+ require .Equal (t , map [string ]* string {"HELLO" : ptrstr ("foo" )}, def .Target ["build" ].Args )
129+
130+ require .Equal (t , `{
108131 "group": {
109132 "default": {
110133 "targets": [
@@ -123,6 +146,8 @@ target "build" {
123146 }
124147}
125148` , stdout .String ())
149+ })
150+ }
126151}
127152
128153func testBakeLocal (t * testing.T , sb integration.Sandbox ) {
0 commit comments