Merge branch '15370-loopback-dispatchcloud'
[arvados.git] / lib / config / load_test.go
index feb05cb9515bb03be84352d550c24bf82fe80320..a19400c191df1db7a36e9e1ad8d242a0cbb301cc 100644 (file)
@@ -13,6 +13,7 @@ import (
        "os/exec"
        "reflect"
        "regexp"
+       "runtime"
        "strings"
        "testing"
        "time"
@@ -406,7 +407,7 @@ Clusters:
                if v != nil {
                        c.Logf("%#v", v.Clusters)
                }
-               c.Check(err, check.ErrorMatches, `.*cluster ID should be 5 alphanumeric characters.*`)
+               c.Check(err, check.ErrorMatches, `.*cluster ID should be 5 lowercase alphanumeric characters.*`)
        }
 }
 
@@ -601,6 +602,55 @@ func (s *LoadSuite) TestListKeys(c *check.C) {
        }
 }
 
+func (s *LoadSuite) TestLoopbackInstanceTypes(c *check.C) {
+       ldr := testLoader(c, `
+Clusters:
+ z1111:
+  Containers:
+   CloudVMs:
+    Enable: true
+    Driver: loopback
+  InstanceTypes:
+   a: {}
+   b: {}
+`, nil)
+       cfg, err := ldr.Load()
+       c.Check(err, check.ErrorMatches, `Clusters\.z1111\.InstanceTypes: cannot use multiple InstanceTypes with loopback driver`)
+
+       ldr = testLoader(c, `
+Clusters:
+ z1111:
+  Containers:
+   CloudVMs:
+    Enable: true
+    Driver: loopback
+`, nil)
+       cfg, err = ldr.Load()
+       c.Assert(err, check.IsNil)
+       cc, err := cfg.GetCluster("")
+       c.Assert(err, check.IsNil)
+       c.Check(cc.InstanceTypes, check.HasLen, 1)
+       c.Check(cc.InstanceTypes["localhost"].VCPUs, check.Equals, runtime.NumCPU())
+
+       ldr = testLoader(c, `
+Clusters:
+ z1111:
+  Containers:
+   CloudVMs:
+    Enable: true
+    Driver: loopback
+  InstanceTypes:
+   a:
+    VCPUs: 9
+`, nil)
+       cfg, err = ldr.Load()
+       c.Assert(err, check.IsNil)
+       cc, err = cfg.GetCluster("")
+       c.Assert(err, check.IsNil)
+       c.Check(cc.InstanceTypes, check.HasLen, 1)
+       c.Check(cc.InstanceTypes["a"].VCPUs, check.Equals, 9)
+}
+
 func (s *LoadSuite) TestWarnUnusedLocalKeep(c *check.C) {
        var logbuf bytes.Buffer
        _, err := testLoader(c, `
@@ -849,3 +899,16 @@ arvados_config_source_timestamp_seconds{sha256="83aea5d82eb1d53372cd65c936c60acc
 `)
        }
 }
+
+func (s *LoadSuite) TestGetHostRAM(c *check.C) {
+       hostram, err := getHostRAM()
+       c.Check(err, check.IsNil)
+       c.Logf("getHostRAM() == %v", hostram)
+}
+
+func (s *LoadSuite) TestGetFilesystemSize(c *check.C) {
+       path := c.MkDir()
+       size, err := getFilesystemSize(path)
+       c.Check(err, check.IsNil)
+       c.Logf("getFilesystemSize(%q) == %v", path, size)
+}