|
|
|
|
@ -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) {
|
|
|
|
|
if len(warns) > 0 {
|
|
|
|
|
t.Fatalf("bad: %#v", warns)
|
|
|
|
|
@ -45,11 +58,7 @@ func TestNewConfig_sourcePath(t *testing.T) {
|
|
|
|
|
testConfigErr(t, warns, errs)
|
|
|
|
|
|
|
|
|
|
// Good
|
|
|
|
|
tf, err := ioutil.TempFile("", "packer")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("err: %s", err)
|
|
|
|
|
}
|
|
|
|
|
tf.Close()
|
|
|
|
|
tf := getTempFile(t)
|
|
|
|
|
defer os.Remove(tf.Name())
|
|
|
|
|
|
|
|
|
|
c = testConfig(t)
|
|
|
|
|
@ -57,3 +66,20 @@ func TestNewConfig_sourcePath(t *testing.T) {
|
|
|
|
|
_, warns, errs = NewConfig(c)
|
|
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|
|