diff --git a/provisioner/windows-shell/provisioner_test.go b/provisioner/windows-shell/provisioner_test.go index f71ffa062..a086fb739 100644 --- a/provisioner/windows-shell/provisioner_test.go +++ b/provisioner/windows-shell/provisioner_test.go @@ -378,72 +378,37 @@ func TestProvisionerProvision_ScriptsWithEnvVars(t *testing.T) { } func TestProvisioner_createFlattenedEnvVars_windows(t *testing.T) { + var flattenedEnvVars string config := testConfig() - p := new(Provisioner) - err := p.Prepare(config) - if err != nil { - t.Fatalf("should not have error preparing config: %s", err) + userEnvVarTests := [][]string{ + {}, // No user env var + {"FOO=bar"}, // Single 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{ + `set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && `, + `set "FOO=bar" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && `, + `set "BAZ=qux" && set "FOO=bar" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && `, + `set "FOO=bar=baz" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && `, + `set "FOO==bar" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && `, + } + + p := new(Provisioner) + p.Prepare(config) // Defaults provided by Packer p.config.PackerBuildName = "vmware" p.config.PackerBuilderType = "iso" - // no user env var - flattenedEnvVars, err := p.createFlattenedEnvVars() - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - expectedEnvVars := `set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && ` - if flattenedEnvVars != expectedEnvVars { - t.Fatalf("expected flattened env vars to be: %s, got: %s", expectedEnvVars, flattenedEnvVars) - } - - // single user env var - p.config.Vars = []string{"FOO=bar"} - - flattenedEnvVars, err = p.createFlattenedEnvVars() - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - expectedEnvVars = `set "FOO=bar" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && ` - if flattenedEnvVars != expectedEnvVars { - t.Fatalf("expected flattened env vars to be: %s, got: %s", expectedEnvVars, flattenedEnvVars) - } - - // multiple user env vars - p.config.Vars = []string{"FOO=bar", "BAZ=qux"} - - flattenedEnvVars, err = p.createFlattenedEnvVars() - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - expectedEnvVars = `set "BAZ=qux" && set "FOO=bar" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && ` - if flattenedEnvVars != expectedEnvVars { - t.Fatalf("expected flattened env vars to be: %s, got: %s", expectedEnvVars, flattenedEnvVars) - } - - // Environment variable with value containing equals - p.config.Vars = []string{"FOO=bar=baz"} - flattenedEnvVars, err = p.createFlattenedEnvVars() - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - expectedEnvVars = `set "FOO=bar=baz" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && ` - if flattenedEnvVars != expectedEnvVars { - t.Fatalf("expected flattened env vars to be: %s, got: %s", expectedEnvVars, flattenedEnvVars) - } - - // Environment variable with value starting with equals - p.config.Vars = []string{"FOO==baz"} - flattenedEnvVars, err = p.createFlattenedEnvVars() - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - expectedEnvVars = `set "FOO==baz" && set "PACKER_BUILDER_TYPE=iso" && set "PACKER_BUILD_NAME=vmware" && ` - if flattenedEnvVars != expectedEnvVars { - t.Fatalf("expected flattened env vars to be: %s, got: %s", expectedEnvVars, flattenedEnvVars) + 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) + } } }