@@ -130,19 +130,77 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
130130 ),
131131 )
132132 // check builder metadata.toml for success test
133- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
133+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
134134
135135 h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
136136 h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world" )
137137 h .AssertStringContains (t , md .Buildpacks [0 ].Version , "0.0.1" )
138- h .AssertEq (t , 1 , len (md .Processes ))
139- h .AssertEq (t , "hello" , md .Processes [0 ].Type )
140- h .AssertEq (t , "echo world" , md .Processes [0 ].Command [0 ])
141- h .AssertEq (t , 1 , len (md .Processes [0 ].Args ))
142- h .AssertEq (t , "arg1" , md .Processes [0 ].Args [0 ])
143- h .AssertEq (t , false , md .Processes [0 ].Direct )
144- h .AssertEq (t , "" , md .Processes [0 ].WorkingDirectory )
145- h .AssertEq (t , false , md .Processes [0 ].Default )
138+ })
139+ })
140+
141+ when ("writing metadata.toml" , func () {
142+ it ("writes and reads successfully" , func () {
143+ h .DockerRunAndCopy (t ,
144+ containerName ,
145+ copyDir ,
146+ ctrPath ("/layers" ),
147+ builderImage ,
148+ h .WithFlags (
149+ "--env" , "CNB_PLATFORM_API=" + latestPlatformAPI ,
150+ "--env" , "CNB_GROUP_PATH=/cnb/group_tomls/always_detect_group.toml" ,
151+ "--env" , "CNB_PLAN_PATH=/cnb/plan_tomls/always_detect_plan.toml" ,
152+ ),
153+ )
154+ // check builder metadata.toml for success test
155+ contents , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
156+
157+ // prevent regression of inline table serialization
158+ h .AssertStringDoesNotContain (t , contents , "processes =" )
159+ h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
160+ h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world" )
161+ h .AssertStringContains (t , md .Buildpacks [0 ].Version , "0.0.1" )
162+ h .AssertEq (t , len (md .Processes ), 1 )
163+ h .AssertEq (t , md .Processes [0 ].Type , "hello" )
164+ h .AssertEq (t , len (md .Processes [0 ].Command .Entries ), 1 )
165+ h .AssertEq (t , md .Processes [0 ].Command .Entries [0 ], "echo world" )
166+ h .AssertEq (t , len (md .Processes [0 ].Args ), 1 )
167+ h .AssertEq (t , md .Processes [0 ].Args [0 ], "arg1" )
168+ h .AssertEq (t , md .Processes [0 ].Direct , false )
169+ h .AssertEq (t , md .Processes [0 ].WorkingDirectory , "" )
170+ h .AssertEq (t , md .Processes [0 ].Default , false )
171+ })
172+
173+ when ("the platform < 0.10" , func () {
174+ it ("writes and reads successfully" , func () {
175+ h .DockerRunAndCopy (t ,
176+ containerName ,
177+ copyDir ,
178+ ctrPath ("/layers" ),
179+ builderImage ,
180+ h .WithFlags (
181+ "--env" , "CNB_PLATFORM_API=0.9" ,
182+ "--env" , "CNB_GROUP_PATH=/cnb/group_tomls/always_detect_group.toml" ,
183+ "--env" , "CNB_PLAN_PATH=/cnb/plan_tomls/always_detect_plan.toml" ,
184+ ),
185+ )
186+ // check builder metadata.toml for success test
187+ contents , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
188+
189+ // prevent regression of inline table serialization
190+ h .AssertStringDoesNotContain (t , contents , "processes =" )
191+ h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
192+ h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world" )
193+ h .AssertStringContains (t , md .Buildpacks [0 ].Version , "0.0.1" )
194+ h .AssertEq (t , len (md .Processes ), 1 )
195+ h .AssertEq (t , md .Processes [0 ].Type , "hello" )
196+ h .AssertEq (t , len (md .Processes [0 ].Command .Entries ), 1 )
197+ h .AssertEq (t , md .Processes [0 ].Command .Entries [0 ], "echo world" )
198+ h .AssertEq (t , len (md .Processes [0 ].Args ), 1 )
199+ h .AssertEq (t , md .Processes [0 ].Args [0 ], "arg1" )
200+ h .AssertEq (t , md .Processes [0 ].Direct , false )
201+ h .AssertEq (t , md .Processes [0 ].WorkingDirectory , "" )
202+ h .AssertEq (t , md .Processes [0 ].Default , false )
203+ })
146204 })
147205 })
148206
@@ -160,7 +218,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
160218 ),
161219 )
162220 // check builder metadata.toml for success test
163- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
221+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
164222
165223 h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
166224 h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world" )
@@ -206,7 +264,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
206264 ),
207265 )
208266 // check builder metadata.toml for success test
209- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
267+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
210268 h .AssertEq (t , len (md .Processes ), 0 )
211269 })
212270 })
@@ -282,7 +340,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
282340 ),
283341 )
284342 // check builder metadata.toml for success test
285- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
343+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers" , "config" , "metadata.toml" ))
286344
287345 h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
288346 h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world" )
@@ -325,7 +383,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
325383 "--env" , "CNB_PLAN_PATH=/cnb/plan_tomls/always_detect_plan_buildpack_2.toml" ,
326384 ),
327385 )
328- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers/different_layer_dir_from_env/config/metadata.toml" ))
386+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers/different_layer_dir_from_env/config/metadata.toml" ))
329387
330388 h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
331389 h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world_2" )
@@ -347,7 +405,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
347405 "--env" , "CNB_GROUP_PATH=/cnb/group_tomls/always_detect_group_buildpack2.toml" ,
348406 ),
349407 )
350- md := getBuilderMetadata (t , filepath .Join (copyDir , "layers/different_layer_dir_from_env/config/metadata.toml" ))
408+ _ , md := getBuilderMetadata (t , filepath .Join (copyDir , "layers/different_layer_dir_from_env/config/metadata.toml" ))
351409
352410 h .AssertStringContains (t , md .Buildpacks [0 ].API , "0.2" )
353411 h .AssertStringContains (t , md .Buildpacks [0 ].ID , "hello_world_2" )
@@ -451,7 +509,7 @@ func testBuilder(t *testing.T, when spec.G, it spec.S) {
451509 })
452510}
453511
454- func getBuilderMetadata (t * testing.T , path string ) * platform.BuildMetadata {
512+ func getBuilderMetadata (t * testing.T , path string ) ( string , * platform.BuildMetadata ) {
455513 t .Helper ()
456514 contents , _ := os .ReadFile (path )
457515 h .AssertEq (t , len (contents ) > 0 , true )
@@ -460,5 +518,5 @@ func getBuilderMetadata(t *testing.T, path string) *platform.BuildMetadata {
460518 _ , err := toml .Decode (string (contents ), & buildMD )
461519 h .AssertNil (t , err )
462520
463- return & buildMD
521+ return string ( contents ), & buildMD
464522}
0 commit comments