Skip to content

Commit

Permalink
check 'reserve-mb' number with kickstart
Browse files Browse the repository at this point in the history
  • Loading branch information
iasunsea committed Jul 25, 2023
1 parent 84baed2 commit 2edacf4
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 8 deletions.
2 changes: 1 addition & 1 deletion com_redhat_kdump/gui/spokes/kdump.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def apply(self):
if self._autoButton.get_active():
self._proxy.ReservedMemory = "auto"
else:
self._proxy.ReservedMemory = "%dM" % self._toBeReservedSpin.get_value_as_int()
self._proxy.ReservedMemory = "%d" % self._toBeReservedSpin.get_value_as_int()
self._proxy.FadumpEnabled = self._fadumpButton.get_active()

# This hub have been visited, use should now be aware of the crypted devices issue
Expand Down
6 changes: 6 additions & 0 deletions com_redhat_kdump/service/kdump.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ def __init__(self):

self._reserved_memory = "auto"
self.reserved_memory_changed = Signal()
self._lower, self._upper, self._step = getMemoryBounds()

def publish(self):
"""Publish the DBus objects."""
Expand Down Expand Up @@ -85,6 +86,11 @@ def reserved_memory(self):

@reserved_memory.setter
def reserved_memory(self, value):
if value != "auto":
if int(value) > self._upper:
value = str(self._upper)
if int(value) < self._lower:
value = str(self._lower)
self._reserved_memory = value
self.reserved_memory_changed.emit()
log.debug("Reserved memory is set to '%s'.", value)
Expand Down
21 changes: 18 additions & 3 deletions test/unit_tests/test_interface.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
from unittest.case import TestCase
from unittest.mock import patch
from unittest.mock import Mock

from com_redhat_kdump import common
from .mock import MockBuiltinRead
from com_redhat_kdump.constants import KDUMP
from com_redhat_kdump.service.kdump import KdumpService
from com_redhat_kdump.service.kdump_interface import KdumpInterface

SYS_CRASH_SIZE = '/sys/kernel/kexec_crash_size'
PROC_MEMINFO = '/proc/meminfo'

AARCH64_NFO_FIXTURE = {
SYS_CRASH_SIZE: "536870912", # 512MB
PROC_MEMINFO:"""MemTotal: 2097152 kB
""" # 2GB - 512MB
}


class PropertiesChangedCallback(Mock):

Expand Down Expand Up @@ -48,7 +59,11 @@ def test_fadump_enabled(self):
self._check_properties_changed("FadumpEnabled", True)
self.assertEqual(self._interface.FadumpEnabled, True)

def test_reserved_memory(self):
@patch("builtins.open", MockBuiltinRead(AARCH64_NFO_FIXTURE))
@patch("blivet.arch.get_arch", return_value="aarch64")
def test_reserved_memory_aarch64(self):
self._service.__init__()
self._interface.ReservedMemory = "256"
self._check_properties_changed("ReservedMemory", "256")
self.assertEqual(self._interface.ReservedMemory, "256")
self._check_properties_changed("ReservedMemory", "512")
self.assertEqual(self._interface.ReservedMemory, "512")

22 changes: 18 additions & 4 deletions test/unit_tests/test_kickstart.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,19 @@
from textwrap import dedent
from unittest.case import TestCase
from unittest.mock import patch
from com_redhat_kdump import common
from .mock import MockBuiltinRead
from com_redhat_kdump.service.kdump import KdumpService

SYS_CRASH_SIZE = '/sys/kernel/kexec_crash_size'
PROC_MEMINFO = '/proc/meminfo'

X86_LOWER_INFO_FIXTURE = {
SYS_CRASH_SIZE: "167772160", # 160MB
PROC_MEMINFO:"""MemTotal: 1048576 kB
""" # 1GB - 160MB
}


class KdumpKickstartTestCase(TestCase):

Expand Down Expand Up @@ -68,18 +79,21 @@ def test_ks_disable(self):
%end
""")

def test_ks_reserve_mb(self):
@patch("builtins.open", MockBuiltinRead(X86_LOWER_INFO_FIXTURE))
@patch("blivet.arch.get_arch", return_value="x86_64")
def test_ks_reserve_mb_x86_with_up(self, _mock_read):
self._service.__init__()
self._check_ks_input("""
%addon com_redhat_kdump --enable --reserve-mb=256
%addon com_redhat_kdump --enable --reserve-mb=600
%end
""")

self.assertEqual(self._service.kdump_enabled, True)
self.assertEqual(self._service.fadump_enabled, False)
self.assertEqual(self._service.reserved_memory, "256")
self.assertEqual(self._service.reserved_memory, "512") # upper = 1024M - 512M

self._check_ks_output("""
%addon com_redhat_kdump --enable --reserve-mb='256'
%addon com_redhat_kdump --enable --reserve-mb='512'
%end
""")
Expand Down

0 comments on commit 2edacf4

Please sign in to comment.