From 3135fcc789937e1323c65803b9806cb76c350834 Mon Sep 17 00:00:00 2001 From: i343759 Date: Fri, 19 Dec 2025 10:29:28 +0200 Subject: [PATCH] Make no start command test platform-aware for CF compatibility --- src/binary/integration/default_test.go | 30 ++++++++++++++++++++------ 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/binary/integration/default_test.go b/src/binary/integration/default_test.go index 6ae2c62d..74af0a6d 100644 --- a/src/binary/integration/default_test.go +++ b/src/binary/integration/default_test.go @@ -28,7 +28,9 @@ func testDefault(platform switchblade.Platform, fixtures string) func(*testing.T }) it.After(func() { - Expect(platform.Delete.Execute(name)).To(Succeed()) + if !t.Skipped() && name != "" { + platform.Delete.Execute(name) + } }) it("builds and runs the app when buildpack is specified", func() { @@ -52,17 +54,31 @@ func testDefault(platform switchblade.Platform, fixtures string) func(*testing.T context("there is no start command given", func() { it("it fails to run", func() { - deployment, _, err := platform.Deploy. + deployment, logs, err := platform.Deploy. WithBuildpacks("binary_buildpack"). Execute(name, filepath.Join(fixtures, "no_start_command")) - Expect(err).NotTo(HaveOccurred()) - cmd := exec.Command("docker", "container", "logs", deployment.Name) + if settings.Platform == "docker" { + Expect(err).NotTo(HaveOccurred()) - output, err := cmd.CombinedOutput() - Expect(err).NotTo(HaveOccurred()) + cmd := exec.Command("docker", "container", "logs", deployment.Name) + output, err := cmd.CombinedOutput() + Expect(err).NotTo(HaveOccurred()) - Expect(output).To(ContainSubstring("Error: no start command specified during staging or launch"), string(output)) + Expect(output).To(ContainSubstring("Error: no start command specified during staging or launch"), string(output)) + } else { + // On CF platform, deployment should fail during staging or the app should fail to start + // Check staging logs or deployment error + if err != nil { + // Deployment failed during staging - check error message + Expect(logs).To(ContainSubstring("no start command"), logs) + } else { + // App staged but should fail to start - check app logs + cmd := exec.Command("cf", "logs", "--recent", name) + output, _ := cmd.CombinedOutput() + Expect(string(output)).To(ContainSubstring("no start command"), string(output)) + } + } }) }) }