2017-11-12 21:54:34 +00:00
|
|
|
package server
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
2017-11-30 15:46:11 +00:00
|
|
|
"github.com/kubernetes-incubator/cri-o/lib"
|
2017-11-12 21:54:34 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
const fixturePath = "fixtures/crio.conf"
|
|
|
|
|
|
|
|
func must(t *testing.T, err error) {
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func assertAllFieldsEquality(t *testing.T, c Config) {
|
|
|
|
testCases := []struct {
|
|
|
|
fieldValue, expected interface{}
|
|
|
|
}{
|
|
|
|
{c.RootConfig.Root, "/var/lib/containers/storage"},
|
|
|
|
{c.RootConfig.RunRoot, "/var/run/containers/storage"},
|
|
|
|
{c.RootConfig.Storage, "overlay"},
|
|
|
|
{c.RootConfig.StorageOptions[0], "overlay.override_kernel_check=1"},
|
|
|
|
|
|
|
|
{c.APIConfig.Listen, "/var/run/crio.sock"},
|
|
|
|
{c.APIConfig.StreamPort, "10010"},
|
|
|
|
{c.APIConfig.StreamAddress, "localhost"},
|
|
|
|
|
|
|
|
{c.RuntimeConfig.Runtime, "/usr/local/bin/runc"},
|
|
|
|
{c.RuntimeConfig.RuntimeUntrustedWorkload, "untrusted"},
|
|
|
|
{c.RuntimeConfig.DefaultWorkloadTrust, "trusted"},
|
|
|
|
{c.RuntimeConfig.Conmon, "/usr/local/libexec/crio/conmon"},
|
|
|
|
{c.RuntimeConfig.ConmonEnv[0], "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"},
|
|
|
|
{c.RuntimeConfig.SELinux, true},
|
|
|
|
{c.RuntimeConfig.SeccompProfile, "/etc/crio/seccomp.json"},
|
|
|
|
{c.RuntimeConfig.ApparmorProfile, "crio-default"},
|
|
|
|
{c.RuntimeConfig.CgroupManager, "cgroupfs"},
|
|
|
|
{c.RuntimeConfig.PidsLimit, int64(1024)},
|
|
|
|
|
|
|
|
{c.ImageConfig.DefaultTransport, "docker://"},
|
|
|
|
{c.ImageConfig.PauseImage, "kubernetes/pause"},
|
|
|
|
{c.ImageConfig.PauseCommand, "/pause"},
|
|
|
|
{c.ImageConfig.SignaturePolicyPath, "/tmp"},
|
2017-11-30 15:46:11 +00:00
|
|
|
{c.ImageConfig.ImageVolumes, lib.ImageVolumesType("mkdir")},
|
2017-11-12 21:54:34 +00:00
|
|
|
{c.ImageConfig.InsecureRegistries[0], "insecure-registry:1234"},
|
|
|
|
{c.ImageConfig.Registries[0], "registry:4321"},
|
|
|
|
|
|
|
|
{c.NetworkConfig.NetworkDir, "/etc/cni/net.d/"},
|
|
|
|
{c.NetworkConfig.PluginDir, "/opt/cni/bin/"},
|
|
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
|
|
if tc.fieldValue != tc.expected {
|
|
|
|
t.Errorf(`Expecting: "%s", got: "%s"`, tc.expected, tc.fieldValue)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestUpdateFromFile(t *testing.T) {
|
|
|
|
c := Config{}
|
|
|
|
|
|
|
|
must(t, c.UpdateFromFile(fixturePath))
|
|
|
|
|
|
|
|
assertAllFieldsEquality(t, c)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestToFile(t *testing.T) {
|
|
|
|
configFromFixture := Config{}
|
|
|
|
|
|
|
|
must(t, configFromFixture.UpdateFromFile(fixturePath))
|
|
|
|
|
|
|
|
f, err := ioutil.TempFile("", "crio.conf")
|
|
|
|
if err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
defer os.Remove(f.Name())
|
|
|
|
|
|
|
|
must(t, configFromFixture.ToFile(f.Name()))
|
|
|
|
|
|
|
|
writtenConfig := Config{}
|
|
|
|
err = writtenConfig.UpdateFromFile(f.Name())
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
assertAllFieldsEquality(t, writtenConfig)
|
|
|
|
}
|