Skip to content

Commit f8b74c7

Browse files
committed
provisioner: added invalid shebang test in packer_test
1 parent 857c759 commit f8b74c7

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

packer_test/provisioner_tests/shell/provisioner_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,18 @@ func (ts *PackerShellProvisionerTestSuite) TestShebangAsOptionNotInline() {
6565
SetArgs("build", "templates/no_shebang_inline_but_as_option.pkr.hcl").
6666
Assert(check.MustSucceed())
6767
}
68+
69+
func (ts *PackerShellProvisionerTestSuite) TestInvalidShebangAsOption() {
70+
dir := ts.MakePluginDir()
71+
defer dir.Cleanup()
72+
73+
ts.PackerCommand().UsePluginDir(dir).
74+
SetArgs("plugins", "install", "github.com/hashicorp/docker").
75+
Assert(check.MustSucceed())
76+
77+
ts.PackerCommand().UsePluginDir(dir).
78+
AddEnv("HOME", os.Getenv("HOME")).
79+
AddEnv("PATH", os.Getenv("PATH")).
80+
SetArgs("build", "templates/shebang_as_option_invalid.pkr.hcl").
81+
Assert(check.MustFail())
82+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
source "docker" "test" {
2+
image = "debian:bookworm"
3+
discard = true
4+
}
5+
6+
build {
7+
sources = ["docker.test"]
8+
9+
provisioner "shell" {
10+
inline_shebang = "#!/bin/bash -ex"
11+
inline = [
12+
"head -1 <\"$0\" | grep -qE '^#!/bin/bash'",
13+
"if grep -qE \"^#!/bin/sh\" <\"$0\"; then exit 1; fi",
14+
"cat \"$0\""
15+
]
16+
}
17+
}

0 commit comments

Comments
 (0)