From c88fafdf380faafef27b27f44beeb4a40d6eb3fd Mon Sep 17 00:00:00 2001 From: DanHam Date: Mon, 23 Jan 2017 11:28:54 +0000 Subject: [PATCH] provisioner/powershell: align, fix and compact env var test --- provisioner/powershell/provisioner_test.go | 132 +++++++-------------- 1 file changed, 46 insertions(+), 86 deletions(-) diff --git a/provisioner/powershell/provisioner_test.go b/provisioner/powershell/provisioner_test.go index e0a44a008..7291159fa 100644 --- a/provisioner/powershell/provisioner_test.go +++ b/provisioner/powershell/provisioner_test.go @@ -550,113 +550,73 @@ func TestProvisionerProvision_UISlurp(t *testing.T) { } func TestProvisioner_createFlattenedElevatedEnvVars_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{ + `$env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:BAZ="qux"; $env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="bar=baz"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="=bar"; $env:PACKER_BUILDER_TYPE="iso"; $env: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(true) - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - if flattenedEnvVars != `$env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` { - t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars) - } - - // single user env var - p.config.Vars = []string{"FOO=bar"} - - 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"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` { - t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars) - } - - // multiple user env vars - p.config.Vars = []string{"FOO=bar", "BAZ=qux"} - - flattenedEnvVars, err = p.createFlattenedEnvVars(true) - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - 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) - } - - // 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) + for i, expectedValue := range expected { + p.config.Vars = userEnvVarTests[i] + flattenedEnvVars = p.createFlattenedEnvVars(true) + if flattenedEnvVars != expectedValue { + t.Fatalf("expected flattened env vars to be: %s, got %s.", expectedValue, flattenedEnvVars) + } } } 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{ + `$env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:BAZ="qux"; $env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="bar=baz"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; `, + `$env:FOO="=bar"; $env:PACKER_BUILDER_TYPE="iso"; $env: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(false) - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - if flattenedEnvVars != `$env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` { - t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars) - } - - // single user env var - p.config.Vars = []string{"FOO=bar"} - - flattenedEnvVars, err = p.createFlattenedEnvVars(false) - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - if flattenedEnvVars != `$env:FOO="bar"; $env:PACKER_BUILDER_TYPE="iso"; $env:PACKER_BUILD_NAME="vmware"; ` { - t.Fatalf("unexpected flattened env vars: %s", flattenedEnvVars) - } - - // multiple user env vars - p.config.Vars = []string{"FOO=bar", "BAZ=qux"} - - flattenedEnvVars, err = p.createFlattenedEnvVars(false) - if err != nil { - t.Fatalf("should not have error creating flattened env vars: %s", err) - } - 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) + for i, expectedValue := range expected { + p.config.Vars = userEnvVarTests[i] + flattenedEnvVars = p.createFlattenedEnvVars(false) + if flattenedEnvVars != expectedValue { + t.Fatalf("expected flattened env vars to be: %s, got %s.", expectedValue, flattenedEnvVars) + } } }