config_windows_test.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package config // import "github.com/docker/docker/daemon/config"
  2. import (
  3. "testing"
  4. "github.com/docker/docker/opts"
  5. "github.com/spf13/pflag"
  6. "gotest.tools/v3/assert"
  7. is "gotest.tools/v3/assert/cmp"
  8. )
  9. func TestDaemonConfigurationMerge(t *testing.T) {
  10. configFile := makeConfigFile(t, `
  11. {
  12. "debug": true
  13. }`)
  14. conf, err := New()
  15. assert.NilError(t, err)
  16. flags := pflag.NewFlagSet("test", pflag.ContinueOnError)
  17. flags.BoolVarP(&conf.Debug, "debug", "D", false, "")
  18. flags.BoolVarP(&conf.AutoRestart, "restart", "r", true, "")
  19. flags.StringVar(&conf.LogConfig.Type, "log-driver", "json-file", "")
  20. flags.Var(opts.NewNamedMapOpts("log-opts", conf.LogConfig.Config, nil), "log-opt", "")
  21. assert.Check(t, flags.Set("restart", "true"))
  22. assert.Check(t, flags.Set("log-driver", "syslog"))
  23. assert.Check(t, flags.Set("log-opt", "tag=from_flag"))
  24. cc, err := MergeDaemonConfigurations(conf, flags, configFile)
  25. assert.NilError(t, err)
  26. assert.Check(t, cc.Debug)
  27. assert.Check(t, cc.AutoRestart)
  28. expectedLogConfig := LogConfig{
  29. Type: "syslog",
  30. Config: map[string]string{"tag": "from_flag"},
  31. }
  32. assert.Check(t, is.DeepEqual(expectedLogConfig, cc.LogConfig))
  33. }