Tests for env variables values starting with or containing an equals sign

This commit is contained in:
DanHam 2016-12-28 00:31:17 +00:00
parent 77f878b89c
commit be0196492f
No known key found for this signature in database
GPG Key ID: 58E79AEDD6AA987E
1 changed files with 56 additions and 1 deletions

View File

@ -280,12 +280,36 @@ func TestProvisionerPrepare_EnvironmentVars(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("should not have error: %s", err) t.Fatalf("should not have error: %s", err)
} }
// Test when the env variable value contains an equals sign
config["environment_vars"] = []string{"good=withequals=true"}
p = new(Provisioner)
err = p.Prepare(config)
if err != nil {
t.Fatalf("should not have error: %s", err)
}
// Test when the env variable value starts with an equals sign
config["environment_vars"] = []string{"good==true"}
p = new(Provisioner)
err = p.Prepare(config)
if err != nil {
t.Fatalf("should not have error: %s", err)
}
} }
func TestProvisionerQuote_EnvironmentVars(t *testing.T) { func TestProvisionerQuote_EnvironmentVars(t *testing.T) {
config := testConfig() config := testConfig()
config["environment_vars"] = []string{"keyone=valueone", "keytwo=value\ntwo", "keythree='valuethree'", "keyfour='value\nfour'"} config["environment_vars"] = []string{
"keyone=valueone",
"keytwo=value\ntwo",
"keythree='valuethree'",
"keyfour='value\nfour'",
"keyfive='value=five'",
"keysix='=six'",
}
p := new(Provisioner) p := new(Provisioner)
p.Prepare(config) p.Prepare(config)
@ -308,6 +332,16 @@ func TestProvisionerQuote_EnvironmentVars(t *testing.T) {
if p.config.Vars[3] != expectedValue { if p.config.Vars[3] != expectedValue {
t.Fatalf("%s should be equal to %s", p.config.Vars[3], expectedValue) t.Fatalf("%s should be equal to %s", p.config.Vars[3], expectedValue)
} }
expectedValue = "keyfive='value=five'"
if p.config.Vars[4] != expectedValue {
t.Fatalf("%s should be equal to %s", p.config.Vars[4], expectedValue)
}
expectedValue = "keysix='=six'"
if p.config.Vars[5] != expectedValue {
t.Fatalf("%s should be equal to %s", p.config.Vars[5], expectedValue)
}
} }
func testUi() *packer.BasicUi { func testUi() *packer.BasicUi {
@ -572,6 +606,27 @@ func TestProvisioner_createFlattenedElevatedEnvVars_windows(t *testing.T) {
if flattenedEnvVars != `$env:BAZ="qux"; $env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` { if flattenedEnvVars != `$env:BAZ="qux"; $env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` {
t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars) t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars)
} }
// Environment variable with value containing equals
p.config.Vars = []string{"FOO=bar=baz"}
flattenedEnvVars, err = p.createFlattenedEnvVars(true)
if err != nil {
t.Fatalf("should not have error creating flattened env vars: %s", err)
}
if flattenedEnvVars != `$env:FOO="bar=baz"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` {
t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars)
}
// Environment variable with value starting with equals
p.config.Vars = []string{"FOO==baz"}
flattenedEnvVars, err = p.createFlattenedEnvVars(true)
if err != nil {
t.Fatalf("should not have error creating flattened env vars: %s", err)
}
if flattenedEnvVars != `$env:FOO="=baz"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` {
t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars)
}
} }
func TestProvisioner_createFlattenedEnvVars_windows(t *testing.T) { func TestProvisioner_createFlattenedEnvVars_windows(t *testing.T) {