test: shell provisioner tests

This commit is contained in:
Mitchell Hashimoto 2013-12-12 11:08:45 -08:00
parent 682e85667a
commit e6878190fb
5 changed files with 97 additions and 0 deletions

View File

@ -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"
]
}]
}

View File

@ -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"
}]
}

3
test/fixtures/provisioner-shell/script.sh vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
echo HELLO I AM DOG

View File

@ -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"
]
}]
}

35
test/provisioner_shell.bats Executable file
View File

@ -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"* ]]
}