github.com/flavio/docker@v0.1.3-0.20170117145210-f63d1a6eec47/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 "github.com/docker/docker/daemon" 10 "github.com/docker/docker/pkg/testutil/assert" 11 "github.com/docker/docker/pkg/testutil/tempfile" 12 "testing" 13 ) 14 15 func TestLoadDaemonCliConfigWithDaemonFlags(t *testing.T) { 16 content := `{"log-opts": {"max-size": "1k"}}` 17 tempFile := tempfile.NewTempFile(t, "config", content) 18 defer tempFile.Remove() 19 20 opts := defaultOptions(tempFile.Name()) 21 opts.common.Debug = true 22 opts.common.LogLevel = "info" 23 assert.NilError(t, opts.flags.Set("selinux-enabled", "true")) 24 25 loadedConfig, err := loadDaemonCliConfig(opts) 26 assert.NilError(t, err) 27 assert.NotNil(t, loadedConfig) 28 29 assert.Equal(t, loadedConfig.Debug, true) 30 assert.Equal(t, loadedConfig.LogLevel, "info") 31 assert.Equal(t, loadedConfig.EnableSelinuxSupport, true) 32 assert.Equal(t, loadedConfig.LogConfig.Type, "json-file") 33 assert.Equal(t, loadedConfig.LogConfig.Config["max-size"], "1k") 34 } 35 36 func TestLoadDaemonConfigWithNetwork(t *testing.T) { 37 content := `{"bip": "127.0.0.2", "ip": "127.0.0.1"}` 38 tempFile := tempfile.NewTempFile(t, "config", content) 39 defer tempFile.Remove() 40 41 opts := defaultOptions(tempFile.Name()) 42 loadedConfig, err := loadDaemonCliConfig(opts) 43 assert.NilError(t, err) 44 assert.NotNil(t, loadedConfig) 45 46 assert.Equal(t, loadedConfig.IP, "127.0.0.2") 47 assert.Equal(t, loadedConfig.DefaultIP.String(), "127.0.0.1") 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 := tempfile.NewTempFile(t, "config", content) 56 defer tempFile.Remove() 57 58 opts := defaultOptions(tempFile.Name()) 59 loadedConfig, err := loadDaemonCliConfig(opts) 60 assert.NilError(t, err) 61 assert.NotNil(t, loadedConfig) 62 assert.NotNil(t, loadedConfig.ClusterOpts) 63 64 expectedPath := "/var/lib/docker/discovery_certs/ca.pem" 65 assert.Equal(t, loadedConfig.ClusterOpts["kv.cacertfile"], expectedPath) 66 assert.NotNil(t, loadedConfig.LogConfig.Config) 67 assert.Equal(t, loadedConfig.LogConfig.Config["tag"], "test") 68 } 69 70 func TestLoadDaemonConfigWithTrueDefaultValues(t *testing.T) { 71 content := `{ "userland-proxy": false }` 72 tempFile := tempfile.NewTempFile(t, "config", content) 73 defer tempFile.Remove() 74 75 opts := defaultOptions(tempFile.Name()) 76 loadedConfig, err := loadDaemonCliConfig(opts) 77 assert.NilError(t, err) 78 assert.NotNil(t, loadedConfig) 79 assert.NotNil(t, loadedConfig.ClusterOpts) 80 81 assert.Equal(t, loadedConfig.EnableUserlandProxy, false) 82 83 // make sure reloading doesn't generate configuration 84 // conflicts after normalizing boolean values. 85 reload := func(reloadedConfig *daemon.Config) { 86 assert.Equal(t, reloadedConfig.EnableUserlandProxy, false) 87 } 88 assert.NilError(t, daemon.ReloadConfiguration(opts.configFile, opts.flags, reload)) 89 } 90 91 func TestLoadDaemonConfigWithTrueDefaultValuesLeaveDefaults(t *testing.T) { 92 tempFile := tempfile.NewTempFile(t, "config", `{}`) 93 defer tempFile.Remove() 94 95 opts := defaultOptions(tempFile.Name()) 96 loadedConfig, err := loadDaemonCliConfig(opts) 97 assert.NilError(t, err) 98 assert.NotNil(t, loadedConfig) 99 assert.NotNil(t, loadedConfig.ClusterOpts) 100 101 assert.Equal(t, loadedConfig.EnableUserlandProxy, true) 102 } 103 104 func TestLoadDaemonConfigWithLegacyRegistryOptions(t *testing.T) { 105 content := `{"disable-legacy-registry": true}` 106 tempFile := tempfile.NewTempFile(t, "config", content) 107 defer tempFile.Remove() 108 109 opts := defaultOptions(tempFile.Name()) 110 loadedConfig, err := loadDaemonCliConfig(opts) 111 assert.NilError(t, err) 112 assert.NotNil(t, loadedConfig) 113 assert.Equal(t, loadedConfig.V2Only, true) 114 }