builder/virtualbox: improved validation

This commit is contained in:
Mitchell Hashimoto 2013-06-11 20:51:58 -07:00
parent 24895069aa
commit 4d351edadf
2 changed files with 33 additions and 0 deletions

View File

@ -109,6 +109,10 @@ func (b *Builder) Prepare(raw interface{}) error {
}
}
if b.config.SSHHostPortMin > b.config.SSHHostPortMax {
errs = append(errs, errors.New("ssh_host_port_min must be less than ssh_host_port_max"))
}
b.driver, err = b.newDriver()
if err != nil {
errs = append(errs, fmt.Errorf("Failed creating VirtualBox driver: %s", err))

View File

@ -122,3 +122,32 @@ func TestBuilderPrepare_ISOUrl(t *testing.T) {
t.Fatalf("iso_url should be modified: %s", b.config.ISOUrl)
}
}
func TestBuilderPrepare_SSHHostPort(t *testing.T) {
var b Builder
config := testConfig()
// Bad
config["ssh_host_port_min"] = 1000
config["ssh_host_port_max"] = 500
err := b.Prepare(config)
if err == nil {
t.Fatal("should have error")
}
// Bad
config["ssh_host_port_min"] = -500
err = b.Prepare(config)
if err == nil {
t.Fatal("should have error")
}
// Good
config["ssh_host_port_min"] = 500
config["ssh_host_port_max"] = 1000
err = b.Prepare(config)
if err != nil {
t.Fatalf("should not have error: %s", err)
}
}