From 710ebdcef5deaf9724db0e92a308ea6be151f8ca Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Thu, 12 Mar 2020 17:08:53 +0100 Subject: [PATCH] add more test for var files --- hcl2template/common_test.go | 3 ++ .../variables/foo-string.variable.pkr.hcl | 4 +++ .../testdata/variables/set-foo-too-wee.hcl | 1 + hcl2template/types.variables_test.go | 29 +++++++++++++++++++ 4 files changed, 37 insertions(+) create mode 100644 hcl2template/testdata/variables/foo-string.variable.pkr.hcl create mode 100644 hcl2template/testdata/variables/set-foo-too-wee.hcl diff --git a/hcl2template/common_test.go b/hcl2template/common_test.go index fd472cf3b..a49814174 100644 --- a/hcl2template/common_test.go +++ b/hcl2template/common_test.go @@ -91,6 +91,9 @@ func testParse(t *testing.T, tests []parseTest) { if variable.DefaultValue.GoString() != value.DefaultValue.GoString() { t.Fatalf("Parser.parse() input variable %s expected '%s' but was '%s'", name, value.DefaultValue.GoString(), variable.DefaultValue.GoString()) } + if diff := cmp.Diff(variable.VarfileValue.GoString(), value.VarfileValue.GoString()); diff != "" { + t.Fatalf("Parser.parse(): varfile value differs: %s", diff) + } } else { t.Fatalf("Parser.parse() missing input variable. %s", name) } diff --git a/hcl2template/testdata/variables/foo-string.variable.pkr.hcl b/hcl2template/testdata/variables/foo-string.variable.pkr.hcl new file mode 100644 index 000000000..931ab5431 --- /dev/null +++ b/hcl2template/testdata/variables/foo-string.variable.pkr.hcl @@ -0,0 +1,4 @@ +variable "foo" { + type = string + default = "bar" +} diff --git a/hcl2template/testdata/variables/set-foo-too-wee.hcl b/hcl2template/testdata/variables/set-foo-too-wee.hcl new file mode 100644 index 000000000..5e643a49b --- /dev/null +++ b/hcl2template/testdata/variables/set-foo-too-wee.hcl @@ -0,0 +1 @@ +foo = "wee" diff --git a/hcl2template/types.variables_test.go b/hcl2template/types.variables_test.go index e53ff02b6..15f5fc9f6 100644 --- a/hcl2template/types.variables_test.go +++ b/hcl2template/types.variables_test.go @@ -240,6 +240,35 @@ func TestParse_variables(t *testing.T) { []packer.Build{}, false, }, + + {"set variable from var-file", + defaultParser, + parseTestArgs{"testdata/variables/foo-string.variable.pkr.hcl", nil, []string{"testdata/variables/set-foo-too-wee.hcl"}}, + &PackerConfig{ + Basedir: filepath.Join("testdata", "variables"), + InputVariables: Variables{ + "foo": &Variable{ + DefaultValue: cty.StringVal("bar"), + Name: "foo", + VarfileValue: cty.StringVal("wee"), + }, + }, + }, + false, false, + []packer.Build{}, + false, + }, + + {"unknown variable from var-file", + defaultParser, + parseTestArgs{"testdata/variables/empty.pkr.hcl", nil, []string{"testdata/variables/set-foo-too-wee.hcl"}}, + &PackerConfig{ + Basedir: filepath.Join("testdata", "variables"), + }, + true, false, + []packer.Build{}, + false, + }, } testParse(t, tests) }