diff --git a/test/fixtures/provisioner-shell/inline.json b/test/fixtures/provisioner-shell/inline.json new file mode 100644 index 000000000..25afae166 --- /dev/null +++ b/test/fixtures/provisioner-shell/inline.json @@ -0,0 +1,21 @@ +{ + "builders": [{ + "type": "amazon-ebs", + "ami_name": "packer-test {{timestamp}}", + "instance_type": "m1.small", + "region": "us-east-1", + "ssh_username": "ubuntu", + "source_ami": "ami-0568456c", + "tags": { + "packer-test": "true" + } + }], + + "provisioners": [{ + "type": "shell", + "inline": [ + "bash -c 'echo HELLO I AM `whoami`'", + "echo AND ANOTHER" + ] + }] +} diff --git a/test/fixtures/provisioner-shell/script.json b/test/fixtures/provisioner-shell/script.json new file mode 100644 index 000000000..dc8ad509e --- /dev/null +++ b/test/fixtures/provisioner-shell/script.json @@ -0,0 +1,18 @@ +{ + "builders": [{ + "type": "amazon-ebs", + "ami_name": "packer-test {{timestamp}}", + "instance_type": "m1.small", + "region": "us-east-1", + "ssh_username": "ubuntu", + "source_ami": "ami-0568456c", + "tags": { + "packer-test": "true" + } + }], + + "provisioners": [{ + "type": "shell", + "script": "script.sh" + }] +} diff --git a/test/fixtures/provisioner-shell/script.sh b/test/fixtures/provisioner-shell/script.sh new file mode 100755 index 000000000..e4e504ff9 --- /dev/null +++ b/test/fixtures/provisioner-shell/script.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +echo HELLO I AM DOG diff --git a/test/fixtures/provisioner-shell/scripts.json b/test/fixtures/provisioner-shell/scripts.json new file mode 100644 index 000000000..290c6f5ad --- /dev/null +++ b/test/fixtures/provisioner-shell/scripts.json @@ -0,0 +1,20 @@ +{ + "builders": [{ + "type": "amazon-ebs", + "ami_name": "packer-test {{timestamp}}", + "instance_type": "m1.small", + "region": "us-east-1", + "ssh_username": "ubuntu", + "source_ami": "ami-0568456c", + "tags": { + "packer-test": "true" + } + }], + + "provisioners": [{ + "type": "shell", + "scripts": [ + "script.sh" + ] + }] +} diff --git a/test/provisioner_shell.bats b/test/provisioner_shell.bats new file mode 100755 index 000000000..2986a4a16 --- /dev/null +++ b/test/provisioner_shell.bats @@ -0,0 +1,35 @@ +#!/usr/bin/env bats +# +# This tests the amazon-ebs builder. The teardown function will automatically +# delete any AMIs with a tag of `packer-test` being equal to "true" so +# be sure any test cases set this. + +load test_helper +fixtures provisioner-shell + +setup() { + cd $FIXTURE_ROOT +} + +teardown() { + aws_ami_cleanup +} + +@test "shell provisioner: inline scripts" { + run packer build $FIXTURE_ROOT/inline.json + [ "$status" -eq 0 ] + [[ "$output" == *"HELLO I AM ubuntu"* ]] + [[ "$output" == *"AND ANOTHER"* ]] +} + +@test "shell provisioner: script" { + run packer build $FIXTURE_ROOT/script.json + [ "$status" -eq 0 ] + [[ "$output" == *"HELLO I AM DOG"* ]] +} + +@test "shell provisioner: scripts" { + run packer build $FIXTURE_ROOT/scripts.json + [ "$status" -eq 0 ] + [[ "$output" == *"HELLO I AM DOG"* ]] +}