From 8bc68f66b962b3bf6ba2b5bd274d3d904b669cb5 Mon Sep 17 00:00:00 2001 From: Paul Kuruvilla Date: Wed, 17 Dec 2025 19:26:28 +0530 Subject: [PATCH] Add checks for test.sh existence and executable permissions in build command. --- builder/internal/commands/build_image_command.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/builder/internal/commands/build_image_command.go b/builder/internal/commands/build_image_command.go index 5a96276..fac8d4b 100644 --- a/builder/internal/commands/build_image_command.go +++ b/builder/internal/commands/build_image_command.go @@ -168,6 +168,18 @@ func BuildImageCommand() int { return handleErrorDuringBuild(build, "", fmt.Errorf("tester dir (%s) does not exist", testerDir)) } + testShPath := filepath.Join(testerDir, "test.sh") + fileInfo, err := os.Stat(testShPath) + if os.IsNotExist(err) { + return handleErrorDuringBuild(build, "", fmt.Errorf("test.sh does not exist in tester dir (%s)", testerDir)) + } + if err != nil { + return handleErrorDuringBuild(build, "", fmt.Errorf("failed to stat test.sh in tester dir (%s): %w", testerDir, err)) + } + if fileInfo.Mode()&0111 == 0 { + return handleErrorDuringBuild(build, "", fmt.Errorf("test.sh is not executable in tester dir (%s)", testerDir)) + } + if _, err := os.Stat(testRunnerDir); os.IsNotExist(err) { return handleErrorDuringBuild(build, "", fmt.Errorf("test runner dir (%s) does not exist", testRunnerDir)) }