kdump-anaconda-addon/fix-test-failed-due-to-default-value-change.patch
yangl777 0800a41061 add crashkernel auto for arm and fix test
(cherry picked from commit 36be1117ea0a536bf03c09dceee3c3a4339c5ea4)
2024-06-12 15:56:51 +08:00

129 lines
4.5 KiB
Diff

From bdbe716c042bac9fd7c4cfb422403ef61884b86e Mon Sep 17 00:00:00 2001
From: sun_hai_10 <sunhai10@huawei.com>
Date: Tue, 4 Apr 2023 12:39:06 +0800
Subject: [PATCH] fix test failed due to default value change
---
test/unit_tests/test_common.py | 2 +-
test/unit_tests/test_installation.py | 6 ++-
test/unit_tests/test_kickstart.py | 60 ++++++++++++++++++++++++++--
3 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/test/unit_tests/test_common.py b/test/unit_tests/test_common.py
index 16c973c..92a2ba3 100644
--- a/test/unit_tests/test_common.py
+++ b/test/unit_tests/test_common.py
@@ -54,7 +54,7 @@ class KdumpCommonTestCase(TestCase):
@patch("builtins.open", MockFileRead(AARCH64_INFO_FIXTURE))
@patch("blivet.arch.get_arch", return_value="aarch64")
def test_memory_bound_aarch64(self, _mock_read):
- self.assertEqual((128, 64 * 1024 - 256, 1), common.getMemoryBounds())
+ self.assertEqual((512, 64 * 1024 - 768, 1), common.getMemoryBounds())
@patch("builtins.open", MockFileRead(PPC64_INFO_FIXTURE))
@patch("blivet.arch.get_arch", return_value="ppc64")
diff --git a/test/unit_tests/test_installation.py b/test/unit_tests/test_installation.py
index b2deb4b..92c0954 100644
--- a/test/unit_tests/test_installation.py
+++ b/test/unit_tests/test_installation.py
@@ -69,7 +69,11 @@ class KdumpInstallationTestCase(TestCase):
kdump_enabled=False
)
task.run()
- mock_util.execWithRedirect.assert_not_called()
+ mock_util.execWithRedirect.assert_called_once_with(
+ "systemctl",
+ ["disable", "kdump.service"],
+ root="/mnt/sysroot"
+ )
@patch("com_redhat_kdump.service.installation.util")
def test_installation_kdump_enabled(self, mock_util):
diff --git a/test/unit_tests/test_kickstart.py b/test/unit_tests/test_kickstart.py
index 0dd78ed..69b57d0 100644
--- a/test/unit_tests/test_kickstart.py
+++ b/test/unit_tests/test_kickstart.py
@@ -1,8 +1,45 @@
from textwrap import dedent
from unittest.case import TestCase
+from unittest.mock import patch, MagicMock
from com_redhat_kdump import common
from com_redhat_kdump.service.kdump import KdumpService
+SYS_CRASH_SIZE = '/sys/kernel/kexec_crash_size'
+PROC_MEMINFO = '/proc/meminfo'
+
+X86_INFO_FIXTURE = {
+ SYS_CRASH_SIZE: "167772160", # 160MB
+ PROC_MEMINFO:"""MemTotal: 4030464 kB
+""" # 4GB - 160MB
+}
+
+AARCH64_INFO_FIXTURE = {
+ SYS_CRASH_SIZE: "536870912", # 512MB
+ PROC_MEMINFO:"""MemTotal: 66584576 kB
+""" # 64GB - 512MB
+}
+
+PPC64_INFO_FIXTURE = {
+ SYS_CRASH_SIZE: "1073741824", # 1024MB
+ PROC_MEMINFO:"""MemTotal: 66060288 kB
+""" # 64GB - 1GB
+}
+
+class MockFileRead(MagicMock):
+ def __init__(self, file_read_map):
+ MagicMock.__init__(self, name=open, spec=open)
+ self.file_read_map = file_read_map
+
+ handle = MagicMock()
+ handle.__enter__.return_value = handle
+ handle.read.return_value = None
+
+ def reset_choose_file(filename, *args, **kwargs):
+ handle.read.return_value = self.file_read_map[filename]
+ return handle
+
+ self.side_effect = reset_choose_file
+
class KdumpKickstartTestCase(TestCase):
@@ -25,13 +62,28 @@ class KdumpKickstartTestCase(TestCase):
output = self._service.generate_kickstart()
self.assertEqual(output.strip(), dedent(ks_out).strip())
- def test_ks_default(self):
- self.assertEqual(self._service.kdump_enabled, False)
+ @patch("builtins.open", MockFileRead(X86_INFO_FIXTURE))
+ @patch("blivet.arch.get_arch", return_value="x86_64")
+ def test_ks_default_x86(self, _mock_read):
+ self.assertEqual(self._service.kdump_enabled, True)
self.assertEqual(self._service.fadump_enabled, False)
- self.assertEqual(self._service.reserved_memory, "128")
+ self.assertEqual(self._service.reserved_memory, "512")
self._check_ks_output("""
- %addon com_redhat_kdump --disable
+ %addon com_redhat_kdump --enable --reserve-mb='512'
+
+ %end
+ """)
+
+ @patch("builtins.open", MockFileRead(AARCH64_INFO_FIXTURE))
+ @patch("blivet.arch.get_arch", return_value="aarch64")
+ def test_ks_default_arrch64(self, _mock_read):
+ self.assertEqual(self._service.kdump_enabled, True)
+ self.assertEqual(self._service.fadump_enabled, False)
+ self.assertEqual(self._service.reserved_memory, "512")
+
+ self._check_ks_output("""
+ %addon com_redhat_kdump --enable --reserve-mb='512'
%end
""")
--
2.19.1