Commit a11a1aa5 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto

Merge pull request #772 from greglu/virtualbox-ovf-shutdown-timer-fix

builder/virtualbox-ovf: fix shutdown_timeout handling
parents dbc6376d 6d2e50e5
...@@ -51,6 +51,7 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) { ...@@ -51,6 +51,7 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) {
errs = packer.MultiErrorAppend(errs, c.FloppyConfig.Prepare(c.tpl)...) errs = packer.MultiErrorAppend(errs, c.FloppyConfig.Prepare(c.tpl)...)
errs = packer.MultiErrorAppend(errs, c.OutputConfig.Prepare(c.tpl, &c.PackerConfig)...) errs = packer.MultiErrorAppend(errs, c.OutputConfig.Prepare(c.tpl, &c.PackerConfig)...)
errs = packer.MultiErrorAppend(errs, c.RunConfig.Prepare(c.tpl)...) errs = packer.MultiErrorAppend(errs, c.RunConfig.Prepare(c.tpl)...)
errs = packer.MultiErrorAppend(errs, c.ShutdownConfig.Prepare(c.tpl)...)
errs = packer.MultiErrorAppend(errs, c.SSHConfig.Prepare(c.tpl)...) errs = packer.MultiErrorAppend(errs, c.SSHConfig.Prepare(c.tpl)...)
errs = packer.MultiErrorAppend(errs, c.VBoxManageConfig.Prepare(c.tpl)...) errs = packer.MultiErrorAppend(errs, c.VBoxManageConfig.Prepare(c.tpl)...)
errs = packer.MultiErrorAppend(errs, c.VBoxVersionConfig.Prepare(c.tpl)...) errs = packer.MultiErrorAppend(errs, c.VBoxVersionConfig.Prepare(c.tpl)...)
......
...@@ -13,6 +13,19 @@ func testConfig(t *testing.T) map[string]interface{} { ...@@ -13,6 +13,19 @@ func testConfig(t *testing.T) map[string]interface{} {
} }
} }
func getTempFile(t *testing.T) *os.File {
tf, err := ioutil.TempFile("", "packer")
if err != nil {
t.Fatalf("err: %s", err)
}
tf.Close()
// don't forget to cleanup the file downstream:
// defer os.Remove(tf.Name())
return tf
}
func testConfigErr(t *testing.T, warns []string, err error) { func testConfigErr(t *testing.T, warns []string, err error) {
if len(warns) > 0 { if len(warns) > 0 {
t.Fatalf("bad: %#v", warns) t.Fatalf("bad: %#v", warns)
...@@ -45,11 +58,7 @@ func TestNewConfig_sourcePath(t *testing.T) { ...@@ -45,11 +58,7 @@ func TestNewConfig_sourcePath(t *testing.T) {
testConfigErr(t, warns, errs) testConfigErr(t, warns, errs)
// Good // Good
tf, err := ioutil.TempFile("", "packer") tf := getTempFile(t)
if err != nil {
t.Fatalf("err: %s", err)
}
tf.Close()
defer os.Remove(tf.Name()) defer os.Remove(tf.Name())
c = testConfig(t) c = testConfig(t)
...@@ -57,3 +66,20 @@ func TestNewConfig_sourcePath(t *testing.T) { ...@@ -57,3 +66,20 @@ func TestNewConfig_sourcePath(t *testing.T) {
_, warns, errs = NewConfig(c) _, warns, errs = NewConfig(c)
testConfigOk(t, warns, errs) testConfigOk(t, warns, errs)
} }
func TestNewConfig_shutdown_timeout(t *testing.T) {
c := testConfig(t)
tf := getTempFile(t)
defer os.Remove(tf.Name())
// Expect this to fail
c["source_path"] = tf.Name()
c["shutdown_timeout"] = "NaN"
_, warns, errs := NewConfig(c)
testConfigErr(t, warns, errs)
// Passes when given a valid time duration
c["shutdown_timeout"] = "10s"
_, warns, errs = NewConfig(c)
testConfigOk(t, warns, errs)
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment