mirror of
https://github.com/containers/podman.git
synced 2025-09-12 01:38:59 +08:00

Instead of manually merging the configs, use the built-in features of TOMP to merge/extend the fields of a data type when encoding a file. This erases the need for the merge code in libpod/config and also addresses issues when merging booleans. Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
59 lines
1.8 KiB
Go
59 lines
1.8 KiB
Go
package config
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/containers/libpod/libpod/define"
|
|
"github.com/containers/storage"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestEmptyConfig(t *testing.T) {
|
|
// Make sure that we can read empty configs
|
|
config, err := readConfigFromFile("testdata/empty.conf", &Config{})
|
|
assert.NotNil(t, config)
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestDefaultLibpodConf(t *testing.T) {
|
|
// Make sure that we can read the default libpod.conf
|
|
config, err := readConfigFromFile("testdata/libpod.conf", &Config{})
|
|
assert.NotNil(t, config)
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestMergeEmptyAndDefaultMemoryConfig(t *testing.T) {
|
|
// Make sure that when we merge the default config into an empty one that we
|
|
// effectively get the default config.
|
|
defaultConfig, err := defaultConfigFromMemory()
|
|
assert.NotNil(t, defaultConfig)
|
|
assert.Nil(t, err)
|
|
defaultConfig.StateType = define.InvalidStateStore
|
|
defaultConfig.StorageConfig = storage.StoreOptions{}
|
|
|
|
emptyConfig, err := readConfigFromFile("testdata/empty.conf", defaultConfig)
|
|
assert.NotNil(t, emptyConfig)
|
|
assert.Nil(t, err)
|
|
|
|
equal := reflect.DeepEqual(emptyConfig, defaultConfig)
|
|
assert.True(t, equal)
|
|
}
|
|
|
|
func TestMergeEmptyAndLibpodConfig(t *testing.T) {
|
|
// Make sure that when we merge the default config into an empty one that we
|
|
// effectively get the default config.
|
|
libpodConfig, err := readConfigFromFile("testdata/libpod.conf", &Config{})
|
|
assert.NotNil(t, libpodConfig)
|
|
assert.Nil(t, err)
|
|
libpodConfig.StateType = define.InvalidStateStore
|
|
libpodConfig.StorageConfig = storage.StoreOptions{}
|
|
|
|
emptyConfig, err := readConfigFromFile("testdata/empty.conf", libpodConfig)
|
|
assert.NotNil(t, emptyConfig)
|
|
assert.Nil(t, err)
|
|
|
|
equal := reflect.DeepEqual(emptyConfig, libpodConfig)
|
|
assert.True(t, equal)
|
|
}
|