From 2c9a205f11902bc03278d4c70fc3a4041d94c412 Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Wed, 29 Aug 2018 11:10:45 -0700 Subject: [PATCH] update shell provisioner tests --- provisioner/shell/provisioner_test.go | 55 +++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/provisioner/shell/provisioner_test.go b/provisioner/shell/provisioner_test.go index c190f8c52..fd3914383 100644 --- a/provisioner/shell/provisioner_test.go +++ b/provisioner/shell/provisioner_test.go @@ -286,6 +286,61 @@ func TestProvisioner_createFlattenedEnvVars(t *testing.T) { } } +func TestProvisioner_createEnvVarFileContent(t *testing.T) { + var flattenedEnvVars string + config := testConfig() + + userEnvVarTests := [][]string{ + {}, // No user env var + {"FOO=bar"}, // Single user env var + {"FOO=bar's"}, // User env var with single quote in value + {"FOO=bar", "BAZ=qux"}, // Multiple user env vars + {"FOO=bar=baz"}, // User env var with value containing equals + {"FOO==bar"}, // User env var with value starting with equals + } + expected := []string{ + `export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + `export FOO='bar' +export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + `export FOO='bar'"'"'s' +export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + `export BAZ='qux' +export FOO='bar' +export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + `export FOO='bar=baz' +export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + `export FOO='=bar' +export PACKER_BUILDER_TYPE='iso' +export PACKER_BUILD_NAME='vmware' +`, + } + + p := new(Provisioner) + p.Prepare(config) + + // Defaults provided by Packer + p.config.PackerBuildName = "vmware" + p.config.PackerBuilderType = "iso" + + for i, expectedValue := range expected { + p.config.Vars = userEnvVarTests[i] + flattenedEnvVars = p.createEnvVarFileContent() + if flattenedEnvVars != expectedValue { + t.Fatalf("expected flattened env vars to be: %s, got %s.", expectedValue, flattenedEnvVars) + } + } +} + func TestProvisioner_RemoteFolderSetSuccessfully(t *testing.T) { config := testConfig()