Files
Packer-Cn/builder/null/config_test.go
T

104 lines
2.1 KiB
Go
Raw Normal View History

2014-03-24 11:20:32 +01:00
package null
import (
2015-06-13 18:55:37 -04:00
"os"
2014-03-24 11:20:32 +01:00
"testing"
2015-06-13 18:55:37 -04:00
2017-04-04 13:39:01 -07:00
"github.com/hashicorp/packer/helper/communicator"
2014-03-24 11:20:32 +01:00
)
func testConfig() map[string]interface{} {
return map[string]interface{}{
2015-06-13 17:42:43 -04:00
"ssh_host": "foo",
2014-03-24 11:20:32 +01:00
"ssh_username": "bar",
"ssh_password": "baz",
}
}
func testConfigStruct(t *testing.T) *Config {
2019-12-17 11:25:56 +01:00
var c Config
warns, errs := c.Prepare(testConfig())
2014-03-24 11:20:32 +01:00
if len(warns) > 0 {
t.Fatalf("bad: %#v", len(warns))
}
if errs != nil {
t.Fatalf("bad: %#v", errs)
}
2019-12-17 11:25:56 +01:00
return &c
2014-03-24 11:20:32 +01:00
}
func testConfigErr(t *testing.T, warns []string, err error) {
if len(warns) > 0 {
t.Fatalf("bad: %#v", warns)
}
if err == nil {
t.Fatal("should error")
}
}
func testConfigOk(t *testing.T, warns []string, err error) {
if len(warns) > 0 {
t.Fatalf("bad: %#v", warns)
}
if err != nil {
t.Fatalf("bad: %s", err)
}
}
func TestConfigPrepare_port(t *testing.T) {
raw := testConfig()
// default port should be 22
delete(raw, "port")
2019-12-17 11:25:56 +01:00
var c Config
warns, errs := c.Prepare(raw)
2015-06-13 17:42:43 -04:00
if c.CommConfig.SSHPort != 22 {
t.Fatalf("bad: port should default to 22, not %d", c.CommConfig.SSHPort)
2014-03-24 11:20:32 +01:00
}
testConfigOk(t, warns, errs)
}
func TestConfigPrepare_host(t *testing.T) {
raw := testConfig()
// No host
2015-06-13 17:42:43 -04:00
delete(raw, "ssh_host")
2019-12-17 11:25:56 +01:00
var c Config
warns, errs := c.Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigErr(t, warns, errs)
// Good host
2015-06-13 17:42:43 -04:00
raw["ssh_host"] = "good"
2019-12-17 11:25:56 +01:00
warns, errs = c.Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigOk(t, warns, errs)
}
func TestConfigPrepare_sshCredential(t *testing.T) {
raw := testConfig()
// no ssh_password and no ssh_private_key_file
delete(raw, "ssh_password")
delete(raw, "ssh_private_key_file")
2019-12-17 11:25:56 +01:00
warns, errs := (&Config{}).Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigErr(t, warns, errs)
// only ssh_password
raw["ssh_password"] = "good"
2019-12-17 11:25:56 +01:00
warns, errs = (&Config{}).Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigOk(t, warns, errs)
// only ssh_private_key_file
2015-06-13 18:55:37 -04:00
testFile := communicator.TestPEM(t)
defer os.Remove(testFile)
raw["ssh_private_key_file"] = testFile
2014-03-24 11:20:32 +01:00
delete(raw, "ssh_password")
2019-12-17 11:25:56 +01:00
warns, errs = (&Config{}).Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigOk(t, warns, errs)
// both ssh_password and ssh_private_key_file set
raw["ssh_password"] = "bad"
2019-12-17 11:25:56 +01:00
warns, errs = (&Config{}).Prepare(raw)
2014-03-24 11:20:32 +01:00
testConfigErr(t, warns, errs)
}