From ea9ecd738668b352d743e1a02533ab07c52e835d Mon Sep 17 00:00:00 2001 From: Peng Tao Date: Tue, 16 Oct 2018 09:30:33 +0800 Subject: [PATCH] kata-check: modprobe missing kernel modules So that we can possibly verify its parameter later on. Signed-off-by: Peng Tao --- cli/kata-check.go | 7 ++++--- cli/kata-check_test.go | 34 +++++++++++++++++----------------- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/cli/kata-check.go b/cli/kata-check.go index 8f6b1057c1..87246affce 100644 --- a/cli/kata-check.go +++ b/cli/kata-check.go @@ -60,7 +60,7 @@ const ( var ( procCPUInfo = "/proc/cpuinfo" sysModuleDir = "/sys/module" - modInfoCmd = "modinfo" + modProbeCmd = "modprobe" ) // variables rather than consts to allow tests to modify them @@ -120,8 +120,9 @@ func haveKernelModule(module string) bool { return true } - // Now, check if the module is unloaded, but available - cmd := exec.Command(modInfoCmd, module) + // Now, check if the module is unloaded, but available. + // And modprobe it if so. + cmd := exec.Command(modProbeCmd, module) err := cmd.Run() return err == nil } diff --git a/cli/kata-check_test.go b/cli/kata-check_test.go index 502f280c65..4d84a75280 100644 --- a/cli/kata-check_test.go +++ b/cli/kata-check_test.go @@ -448,15 +448,15 @@ func TestCheckHaveKernelModule(t *testing.T) { } defer os.RemoveAll(dir) - savedModInfoCmd := modInfoCmd + savedModProbeCmd := modProbeCmd savedSysModuleDir := sysModuleDir // XXX: override (fake the modprobe command failing) - modInfoCmd = "false" + modProbeCmd = "false" sysModuleDir = filepath.Join(dir, "sys/module") defer func() { - modInfoCmd = savedModInfoCmd + modProbeCmd = savedModProbeCmd sysModuleDir = savedSysModuleDir }() @@ -471,13 +471,13 @@ func TestCheckHaveKernelModule(t *testing.T) { assert.False(result) // XXX: override - make our fake "modprobe" succeed - modInfoCmd = "true" + modProbeCmd = "true" result = haveKernelModule(module) assert.True(result) // disable "modprobe" again - modInfoCmd = "false" + modProbeCmd = "false" fooDir := filepath.Join(sysModuleDir, module) err = os.MkdirAll(fooDir, testDirMode) @@ -498,15 +498,15 @@ func TestCheckCheckKernelModules(t *testing.T) { } defer os.RemoveAll(dir) - savedModInfoCmd := modInfoCmd + savedModProbeCmd := modProbeCmd savedSysModuleDir := sysModuleDir // XXX: override (fake the modprobe command failing) - modInfoCmd = "false" + modProbeCmd = "false" sysModuleDir = filepath.Join(dir, "sys/module") defer func() { - modInfoCmd = savedModInfoCmd + modProbeCmd = savedModProbeCmd sysModuleDir = savedSysModuleDir }() @@ -590,15 +590,15 @@ func TestCheckCheckKernelModulesUnreadableFile(t *testing.T) { }, } - savedModInfoCmd := modInfoCmd + savedModProbeCmd := modProbeCmd savedSysModuleDir := sysModuleDir // XXX: override (fake the modprobe command failing) - modInfoCmd = "false" + modProbeCmd = "false" sysModuleDir = filepath.Join(dir, "sys/module") defer func() { - modInfoCmd = savedModInfoCmd + modProbeCmd = savedModProbeCmd sysModuleDir = savedSysModuleDir }() @@ -637,15 +637,15 @@ func TestCheckCheckKernelModulesInvalidFileContents(t *testing.T) { }, } - savedModInfoCmd := modInfoCmd + savedModProbeCmd := modProbeCmd savedSysModuleDir := sysModuleDir // XXX: override (fake the modprobe command failing) - modInfoCmd = "false" + modProbeCmd = "false" sysModuleDir = filepath.Join(dir, "sys/module") defer func() { - modInfoCmd = savedModInfoCmd + modProbeCmd = savedModProbeCmd sysModuleDir = savedSysModuleDir }() @@ -700,15 +700,15 @@ func TestCheckKernelParamHandler(t *testing.T) { } defer os.RemoveAll(dir) - savedModInfoCmd := modInfoCmd + savedModProbeCmd := modProbeCmd savedSysModuleDir := sysModuleDir // XXX: override (fake the modprobe command failing) - modInfoCmd = "false" + modProbeCmd = "false" sysModuleDir = filepath.Join(dir, "sys/module") defer func() { - modInfoCmd = savedModInfoCmd + modProbeCmd = savedModProbeCmd sysModuleDir = savedSysModuleDir }()