From 5bfca6e38e9ad49be0ddd2bb062a8872b3fa330f Mon Sep 17 00:00:00 2001 From: Marco Vedovati Date: Fri, 23 Aug 2019 11:47:51 +0200 Subject: [PATCH] test: add arch required kernel modules Add a test for the checkKernelModules returned error count value. Signed-off-by: Marco Vedovati --- cli/kata-check_test.go | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/cli/kata-check_test.go b/cli/kata-check_test.go index 87605ef123..306fc6410e 100644 --- a/cli/kata-check_test.go +++ b/cli/kata-check_test.go @@ -763,3 +763,54 @@ func TestCheckKernelParamHandler(t *testing.T) { // single error (due to "param1"'s value being different) checkKernelParamHandler(assert, testDataToCreate, testDataToExpect, nil, false, uint32(1)) } + +func TestArchRequiredKernelModules(t *testing.T) { + assert := assert.New(t) + + tmpdir, err := ioutil.TempDir("", "") + assert.NoError(err) + defer os.RemoveAll(tmpdir) + + _, config, err := makeRuntimeConfig(tmpdir) + assert.NoError(err) + + err = setCPUtype(config.HypervisorType) + assert.NoError(err) + + if len(archRequiredKernelModules) == 0 { + // No modules to check + return + } + + dir, err := ioutil.TempDir("", "") + if err != nil { + t.Fatal(err) + } + defer os.RemoveAll(dir) + + savedModProbeCmd := modProbeCmd + savedSysModuleDir := sysModuleDir + + // XXX: override + sysModuleDir = filepath.Join(dir, "sys/module") + modProbeCmd = "false" + + defer func() { + sysModuleDir = savedSysModuleDir + modProbeCmd = savedModProbeCmd + }() + + // Running check with no modules + count, err := checkKernelModules(archRequiredKernelModules, nil) + assert.NoError(err) + + // Test that count returned matches the # of modules with required set. + expectedCount := 0 + for _, module := range archRequiredKernelModules { + if module.required { + expectedCount++ + } + } + + assert.EqualValues(count, expectedCount) +}