github.com/Heebron/moby@v0.0.0-20221111184709-6eab4f55faf7/daemon/config/config_windows_test.go (about) 1 package config // import "github.com/docker/docker/daemon/config" 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/docker/docker/opts" 8 "github.com/spf13/pflag" 9 "gotest.tools/v3/assert" 10 is "gotest.tools/v3/assert/cmp" 11 ) 12 13 func TestDaemonConfigurationMerge(t *testing.T) { 14 f, err := os.CreateTemp("", "docker-config-") 15 assert.NilError(t, err) 16 17 configFile := f.Name() 18 19 f.Write([]byte(` 20 { 21 "debug": true 22 }`)) 23 24 f.Close() 25 26 conf, err := New() 27 assert.NilError(t, err) 28 29 flags := pflag.NewFlagSet("test", pflag.ContinueOnError) 30 flags.BoolVarP(&conf.Debug, "debug", "D", false, "") 31 flags.BoolVarP(&conf.AutoRestart, "restart", "r", true, "") 32 flags.StringVar(&conf.LogConfig.Type, "log-driver", "json-file", "") 33 flags.Var(opts.NewNamedMapOpts("log-opts", conf.LogConfig.Config, nil), "log-opt", "") 34 assert.Check(t, flags.Set("restart", "true")) 35 assert.Check(t, flags.Set("log-driver", "syslog")) 36 assert.Check(t, flags.Set("log-opt", "tag=from_flag")) 37 38 cc, err := MergeDaemonConfigurations(conf, flags, configFile) 39 assert.NilError(t, err) 40 41 assert.Check(t, cc.Debug) 42 assert.Check(t, cc.AutoRestart) 43 44 expectedLogConfig := LogConfig{ 45 Type: "syslog", 46 Config: map[string]string{"tag": "from_flag"}, 47 } 48 49 assert.Check(t, is.DeepEqual(expectedLogConfig, cc.LogConfig)) 50 }