@ -286,6 +286,45 @@ func TestProvisioner_createFlattenedEnvVars(t *testing.T) {
}
}
func TestProvisioner_createFlattenedEnvVars_withEnvVarFormat ( 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 {
` PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
` FOO=bar PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
` FOO=bar'"'"'s PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
` BAZ=qux FOO=bar PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
` FOO=bar=baz PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
` FOO==bar PACKER_BUILDER_TYPE=iso PACKER_BUILD_NAME=vmware ` ,
}
p := new ( Provisioner )
p . config . EnvVarFormat = "%s=%s "
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 . createFlattenedEnvVars ( )
if flattenedEnvVars != expectedValue {
t . Fatalf ( "expected flattened env vars to be: %s, got %s." , expectedValue , flattenedEnvVars )
}
}
}
func TestProvisioner_createEnvVarFileContent ( t * testing . T ) {
var flattenedEnvVars string
config := testConfig ( )
@ -326,6 +365,7 @@ export PACKER_BUILD_NAME='vmware'
}
p := new ( Provisioner )
p . config . UseEnvVarFile = true
p . Prepare ( config )
// Defaults provided by Packer
@ -341,6 +381,55 @@ export PACKER_BUILD_NAME='vmware'
}
}
func TestProvisioner_createEnvVarFileContent_withEnvVarFormat ( t * testing . T ) {
var flattenedEnvVars string
config := testConfig ( )
userEnvVarTests := [ ] [ ] string {
{ } , // No user env var
{ "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 {
` PACKER_BUILDER_TYPE = iso
PACKER_BUILD_NAME = vmware
` ,
` BAZ = qux
FOO = bar
PACKER_BUILDER_TYPE = iso
PACKER_BUILD_NAME = vmware
` ,
` FOO = bar = baz
PACKER_BUILDER_TYPE = iso
PACKER_BUILD_NAME = vmware
` ,
` FOO == bar
PACKER_BUILDER_TYPE = iso
PACKER_BUILD_NAME = vmware
` ,
}
p := new ( Provisioner )
p . config . UseEnvVarFile = true
//User provided env_var_format without export prefix
p . config . EnvVarFormat = "%s=%s\n"
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: %q, got %q." , expectedValue , flattenedEnvVars )
}
}
}
func TestProvisioner_RemoteFolderSetSuccessfully ( t * testing . T ) {
config := testConfig ( )