|
|
|
|
@ -1,6 +1,7 @@
|
|
|
|
|
package googlecompute
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"strings"
|
|
|
|
|
"testing"
|
|
|
|
|
@ -190,6 +191,65 @@ func TestConfigPrepare(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestConfigPrepareAccelerator(t *testing.T) {
|
|
|
|
|
cases := []struct {
|
|
|
|
|
Keys []string
|
|
|
|
|
Values []interface{}
|
|
|
|
|
Err bool
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
[]string{"accelerator_count", "on_host_maintenance", "accelerator_type"},
|
|
|
|
|
[]interface{}{1, "MIGRATE", "something_valid"},
|
|
|
|
|
true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
[]string{"accelerator_count", "on_host_maintenance", "accelerator_type"},
|
|
|
|
|
[]interface{}{1, "TERMINATE", "something_valid"},
|
|
|
|
|
false,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
[]string{"accelerator_count", "on_host_maintenance", "accelerator_type"},
|
|
|
|
|
[]interface{}{1, "TERMINATE", nil},
|
|
|
|
|
true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
[]string{"accelerator_count", "on_host_maintenance", "accelerator_type"},
|
|
|
|
|
[]interface{}{1, "TERMINATE", ""},
|
|
|
|
|
true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
[]string{"accelerator_count", "on_host_maintenance", "accelerator_type"},
|
|
|
|
|
[]interface{}{1, "TERMINATE", "something_valid"},
|
|
|
|
|
false,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, tc := range cases {
|
|
|
|
|
raw := testConfig(t)
|
|
|
|
|
|
|
|
|
|
errStr := ""
|
|
|
|
|
for k := range tc.Keys {
|
|
|
|
|
|
|
|
|
|
// Create the string for error reporting
|
|
|
|
|
// convert value to string if it can be converted
|
|
|
|
|
errStr += fmt.Sprintf("%s:%v, ", tc.Keys[k], tc.Values[k])
|
|
|
|
|
if tc.Values[k] == nil {
|
|
|
|
|
delete(raw, tc.Keys[k])
|
|
|
|
|
} else {
|
|
|
|
|
raw[tc.Keys[k]] = tc.Values[k]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_, warns, errs := NewConfig(raw)
|
|
|
|
|
|
|
|
|
|
if tc.Err {
|
|
|
|
|
testConfigErr(t, warns, errs, strings.TrimRight(errStr, ", "))
|
|
|
|
|
} else {
|
|
|
|
|
testConfigOk(t, warns, errs)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestConfigDefaults(t *testing.T) {
|
|
|
|
|
cases := []struct {
|
|
|
|
|
Read func(c *Config) interface{}
|
|
|
|
|
|