13647: Suppress "exit status 1" after config-check diff output.
[arvados.git] / lib / config / load_test.go
index bbcc45a3f3714e3de346a82125e16bc0fb5054ac..6b014476b6d9f31d6cf23197bcde6fac2fda0bc3 100644 (file)
@@ -97,14 +97,46 @@ Clusters:
        c.Check(logs, check.HasLen, 2)
 }
 
+func (s *LoadSuite) TestNoUnrecognizedKeysInDefaultConfig(c *check.C) {
+       var logbuf bytes.Buffer
+       logger := logrus.New()
+       logger.Out = &logbuf
+       var supplied map[string]interface{}
+       yaml.Unmarshal(DefaultYAML, &supplied)
+       cfg, err := Load(bytes.NewBuffer(DefaultYAML), logger)
+       c.Assert(err, check.IsNil)
+       var loaded map[string]interface{}
+       buf, err := yaml.Marshal(cfg)
+       c.Assert(err, check.IsNil)
+       err = yaml.Unmarshal(buf, &loaded)
+       c.Assert(err, check.IsNil)
+
+       logExtraKeys(logger, loaded, supplied, "")
+       c.Check(logbuf.String(), check.Equals, "")
+}
+
+func (s *LoadSuite) TestNoWarningsForDumpedConfig(c *check.C) {
+       var logbuf bytes.Buffer
+       logger := logrus.New()
+       logger.Out = &logbuf
+       cfg, err := Load(bytes.NewBufferString(`{"Clusters":{"zzzzz":{}}}`), logger)
+       c.Assert(err, check.IsNil)
+       yaml, err := yaml.Marshal(cfg)
+       c.Assert(err, check.IsNil)
+       cfgDumped, err := Load(bytes.NewBuffer(yaml), logger)
+       c.Assert(err, check.IsNil)
+       c.Check(cfg, check.DeepEquals, cfgDumped)
+       c.Check(logbuf.String(), check.Equals, "")
+}
+
 func (s *LoadSuite) TestPostgreSQLKeyConflict(c *check.C) {
        _, err := Load(bytes.NewBufferString(`
 Clusters:
  zzzzz:
   postgresql:
    connection:
-     dbname: dbname
-     host: host
+     DBName: dbname
+     Host: host
 `), ctxlog.TestLogger(c))
        c.Check(err, check.ErrorMatches, `Clusters.zzzzz.PostgreSQL.Connection: multiple entries for "(dbname|host)".*`)
 }