github.com/fabiokung/docker@v0.11.2-0.20170222101415-4534dcd49497/cmd/dockerd/daemon_unix_test.go (about) 1 // +build !windows,!solaris 2 3 // TODO: Create new file for Solaris which tests config parameters 4 // as described in daemon/config_solaris.go 5 6 package main 7 8 import ( 9 "testing" 10 11 "github.com/docker/docker/daemon/config" 12 "github.com/docker/docker/pkg/testutil/assert" 13 "github.com/docker/docker/pkg/testutil/tempfile" 14 ) 15 16 func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { 17 content := `{"log-opts": {"max-size": "1k"}}` 18 tempFile := tempfile.NewTempFile(t, "config", content) 19 defer tempFile.Remove() 20 21 opts := defaultOptions(tempFile.Name()) 22 opts.common.Debug = true 23 opts.common.LogLevel = "info" 24 assert.NilError(t, opts.flags.Set("selinux-enabled", "true")) 25 26 loadedConfig, err := loadDaemonCliConfig(opts) 27 assert.NilError(t, err) 28 assert.NotNil(t, loadedConfig) 29 30 assert.Equal(t, loadedConfig.Debug, true) 31 assert.Equal(t, loadedConfig.LogLevel, "info") 32 assert.Equal(t, loadedConfig.EnableSelinuxSupport, true) 33 assert.Equal(t, loadedConfig.LogConfig.Type, "json-file") 34 assert.Equal(t, loadedConfig.LogConfig.Config["max-size"], "1k") 35 } 36 37 func TestLoadDaemonConfigWithNetwork(t *testing.T) { 38 content := `{"bip": "127.0.0.2", "ip": "127.0.0.1"}` 39 tempFile := tempfile.NewTempFile(t, "config", content) 40 defer tempFile.Remove() 41 42 opts := defaultOptions(tempFile.Name()) 43 loadedConfig, err := loadDaemonCliConfig(opts) 44 assert.NilError(t, err) 45 assert.NotNil(t, loadedConfig) 46 47 assert.Equal(t, loadedConfig.IP, "127.0.0.2") 48 assert.Equal(t, loadedConfig.DefaultIP.String(), "127.0.0.1") 49 } 50 51 func TestLoadDaemonConfigWithMapOptions(t *testing.T) { 52 content := `{ 53 "cluster-store-opts": {"kv.cacertfile": "/var/lib/docker/discovery_certs/ca.pem"}, 54 "log-opts": {"tag": "test"} 55 }` 56 tempFile := tempfile.NewTempFile(t, "config", content) 57 defer tempFile.Remove() 58 59 opts := defaultOptions(tempFile.Name()) 60 loadedConfig, err := loadDaemonCliConfig(opts) 61 assert.NilError(t, err) 62 assert.NotNil(t, loadedConfig) 63 assert.NotNil(t, loadedConfig.ClusterOpts) 64 65 expectedPath := "/var/lib/docker/discovery_certs/ca.pem" 66 assert.Equal(t, loadedConfig.ClusterOpts["kv.cacertfile"], expectedPath) 67 assert.NotNil(t, loadedConfig.LogConfig.Config) 68 assert.Equal(t, loadedConfig.LogConfig.Config["tag"], "test") 69 } 70 71 func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { 72 content := `{ "userland-proxy": false }` 73 tempFile := tempfile.NewTempFile(t, "config", content) 74 defer tempFile.Remove() 75 76 opts := defaultOptions(tempFile.Name()) 77 loadedConfig, err := loadDaemonCliConfig(opts) 78 assert.NilError(t, err) 79 assert.NotNil(t, loadedConfig) 80 assert.NotNil(t, loadedConfig.ClusterOpts) 81 82 assert.Equal(t, loadedConfig.EnableUserlandProxy, false) 83 84 // make sure reloading doesn't generate configuration 85 // conflicts after normalizing boolean values. 86 reload := func(reloadedConfig *config.Config) { 87 assert.Equal(t, reloadedConfig.EnableUserlandProxy, false) 88 } 89 assert.NilError(t, config.Reload(opts.configFile, opts.flags, reload)) 90 } 91 92 func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { 93 tempFile := tempfile.NewTempFile(t, "config", `{}`) 94 defer tempFile.Remove() 95 96 opts := defaultOptions(tempFile.Name()) 97 loadedConfig, err := loadDaemonCliConfig(opts) 98 assert.NilError(t, err) 99 assert.NotNil(t, loadedConfig) 100 assert.NotNil(t, loadedConfig.ClusterOpts) 101 102 assert.Equal(t, loadedConfig.EnableUserlandProxy, true) 103 } 104 105 func TestLoadDaemonConfigWithLegacyRegistryOptions(t *testing.T) { 106 content := `{"disable-legacy-registry": true}` 107 tempFile := tempfile.NewTempFile(t, "config", content) 108 defer tempFile.Remove() 109 110 opts := defaultOptions(tempFile.Name()) 111 loadedConfig, err := loadDaemonCliConfig(opts) 112 assert.NilError(t, err) 113 assert.NotNil(t, loadedConfig) 114 assert.Equal(t, loadedConfig.V2Only, true) 115 }