github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/engine/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 := `{ 52 "cluster-store-opts": {"kv.cacertfile": "/var/lib/docker/discovery_certs/ca.pem"}, 53 "log-opts": {"tag": "test"} 54 }` 55 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 56 defer tempFile.Remove() 57 58 opts := defaultOptions(t, tempFile.Path()) 59 loadedConfig, err := loadDaemonCliConfig(opts) 60 assert.NilError(t, err) 61 assert.Assert(t, loadedConfig != nil) 62 assert.Check(t, loadedConfig.ClusterOpts != nil) 63 64 expectedPath := "/var/lib/docker/discovery_certs/ca.pem" 65 assert.Check(t, is.Equal(expectedPath, loadedConfig.ClusterOpts["kv.cacertfile"])) 66 assert.Check(t, loadedConfig.LogConfig.Config != nil) 67 assert.Check(t, is.Equal("test", loadedConfig.LogConfig.Config["tag"])) 68 } 69 70 func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { 71 content := `{ "userland-proxy": false }` 72 tempFile := fs.NewFile(t, "config", fs.WithContent(content)) 73 defer tempFile.Remove() 74 75 opts := defaultOptions(t, tempFile.Path()) 76 loadedConfig, err := loadDaemonCliConfig(opts) 77 assert.NilError(t, err) 78 assert.Assert(t, loadedConfig != nil) 79 80 assert.Check(t, !loadedConfig.EnableUserlandProxy) 81 82 // make sure reloading doesn't generate configuration 83 // conflicts after normalizing boolean values. 84 reload := func(reloadedConfig *config.Config) { 85 assert.Check(t, !reloadedConfig.EnableUserlandProxy) 86 } 87 assert.Check(t, config.Reload(opts.configFile, opts.flags, reload)) 88 } 89 90 func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { 91 tempFile := fs.NewFile(t, "config", fs.WithContent(`{}`)) 92 defer tempFile.Remove() 93 94 opts := defaultOptions(t, tempFile.Path()) 95 loadedConfig, err := loadDaemonCliConfig(opts) 96 assert.NilError(t, err) 97 assert.Assert(t, loadedConfig != nil) 98 99 assert.Check(t, loadedConfig.EnableUserlandProxy) 100 }