17590: Merge branch 'master'
[arvados.git] / lib / config / load_test.go
index c9ed37b835697e99ab8acb851ab2ab02d1898a63..6c11ee7803116ab2df30f2050f23f7ce6580a9fc 100644 (file)
@@ -330,6 +330,45 @@ Clusters:
        c.Check(err, check.ErrorMatches, `Clusters.zzzzz.PostgreSQL.Connection: multiple entries for "(dbname|host)".*`)
 }
 
+func (s *LoadSuite) TestBadClusterIDs(c *check.C) {
+       for _, data := range []string{`
+Clusters:
+ 123456:
+  ManagementToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  SystemRootToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  Collections:
+   BlobSigningKey: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+`, `
+Clusters:
+ 12345:
+  ManagementToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  SystemRootToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  Collections:
+   BlobSigningKey: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  RemoteClusters:
+   Zzzzz:
+    Host: Zzzzz.arvadosapi.com
+    Proxy: true
+`, `
+Clusters:
+ abcde:
+  ManagementToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  SystemRootToken: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  Collections:
+   BlobSigningKey: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+  Login:
+   LoginCluster: zz-zz
+`,
+       } {
+               c.Log(data)
+               v, err := testLoader(c, data, nil).Load()
+               if v != nil {
+                       c.Logf("%#v", v.Clusters)
+               }
+               c.Check(err, check.ErrorMatches, `.*cluster ID should be 5 alphanumeric characters.*`)
+       }
+}
+
 func (s *LoadSuite) TestBadType(c *check.C) {
        for _, data := range []string{`
 Clusters:
@@ -398,10 +437,12 @@ Clusters:
 `)
 }
 
-func checkEquivalent(c *check.C, goty, expectedy string) {
-       gotldr := testLoader(c, goty, nil)
+func checkEquivalent(c *check.C, goty, expectedy string) string {
+       var logbuf bytes.Buffer
+       gotldr := testLoader(c, goty, &logbuf)
        expectedldr := testLoader(c, expectedy, nil)
        checkEquivalentLoaders(c, gotldr, expectedldr)
+       return logbuf.String()
 }
 
 func checkEqualYAML(c *check.C, got, expected interface{}) {