github.com/Heebron/moby@v0.0.0-20221111184709-6eab4f55faf7/cmd/dockerd/daemon_unix_test.go (about) 1 //go:build !windows 2 // +build !windows 3 4 package main 5 6 import ( 7 "testing" 8 9 "github.com/docker/docker/daemon/config" 10 "gotest.tools/v3/assert" 11 is "gotest.tools/v3/assert/cmp" 12 "gotest.tools/v3/fs" 13 ) 14 15 func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { 16 content := `{"log-opts": {"max-size": "1k"}}` 17 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 18 defer tempFile.Remove() 19 20 opts := defaultOptions(t, tempFile.Path()) 21 opts.Debug = true 22 opts.LogLevel = "info" 23 assert.Check(t, opts.flags.Set("selinux-enabled", "true")) 24 25 loadedConfig, err := loadDaemonCliConfig(opts) 26 assert.NilError(t, err) 27 assert.Assert(t, loadedConfig != nil) 28 29 assert.Check(t, loadedConfig.Debug) 30 assert.Check(t, is.Equal("info", loadedConfig.LogLevel)) 31 assert.Check(t, loadedConfig.EnableSelinuxSupport) 32 assert.Check(t, is.Equal("json-file", loadedConfig.LogConfig.Type)) 33 assert.Check(t, is.Equal("1k", loadedConfig.LogConfig.Config["max-size"])) 34 } 35 36 func TestLoadDaemonConfigWithNetwork(t *testing.T) { 37 content := `{"bip": "127.0.0.2", "ip": "127.0.0.1"}` 38 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 39 defer tempFile.Remove() 40 41 opts := defaultOptions(t, tempFile.Path()) 42 loadedConfig, err := loadDaemonCliConfig(opts) 43 assert.NilError(t, err) 44 assert.Assert(t, loadedConfig != nil) 45 46 assert.Check(t, is.Equal("127.0.0.2", loadedConfig.IP)) 47 assert.Check(t, is.Equal("127.0.0.1", loadedConfig.DefaultIP.String())) 48 } 49 50 func TestLoadDaemonConfigWithMapOptions(t *testing.T) { 51 content := `{"log-opts": {"tag": "test"}}` 52 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 53 defer tempFile.Remove() 54 55 opts := defaultOptions(t, tempFile.Path()) 56 loadedConfig, err := loadDaemonCliConfig(opts) 57 assert.NilError(t, err) 58 assert.Assert(t, loadedConfig != nil) 59 assert.Check(t, loadedConfig.LogConfig.Config != nil) 60 assert.Check(t, is.Equal("test", loadedConfig.LogConfig.Config["tag"])) 61 } 62 63 func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { 64 content := `{ "userland-proxy": false }` 65 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 66 defer tempFile.Remove() 67 68 opts := defaultOptions(t, tempFile.Path()) 69 loadedConfig, err := loadDaemonCliConfig(opts) 70 assert.NilError(t, err) 71 assert.Assert(t, loadedConfig != nil) 72 73 assert.Check(t, !loadedConfig.EnableUserlandProxy) 74 75 // make sure reloading doesn't generate configuration 76 // conflicts after normalizing boolean values. 77 reload := func(reloadedConfig *config.Config) { 78 assert.Check(t, !reloadedConfig.EnableUserlandProxy) 79 } 80 assert.Check(t, config.Reload(opts.configFile, opts.flags, reload)) 81 } 82 83 func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { 84 tempFile := fs.NewFile(t, "config", fs.WithContent(`{}`)) 85 defer tempFile.Remove() 86 87 opts := defaultOptions(t, tempFile.Path()) 88 loadedConfig, err := loadDaemonCliConfig(opts) 89 assert.NilError(t, err) 90 assert.Assert(t, loadedConfig != nil) 91 92 assert.Check(t, loadedConfig.EnableUserlandProxy) 93 }