kdumpctl: Fix the matching of plus symbol by grep's EREs
After introducing 64k variant kernel on aarch64, an example kernel name looks like "vmlinuz-5.14.0-316.el9.aarch64+64k". To match the plus symbol, it demands an escape charater. Signed-off-by: Pingfan Liu <piliu@redhat.com> Reviewed-by: Philipp Rudo <prudo@redhat.com> Reviewed-by: Coiby Xu <coxu@redhat.com>
This commit is contained in:
parent
7a2c4cbc3b
commit
64d93c886f
3
kdumpctl
3
kdumpctl
@ -1406,6 +1406,9 @@ _filter_grubby_kernel_str()
|
||||
_find_kernel_path_by_release()
|
||||
{
|
||||
local _release="$1" _grubby_kernel_str _kernel_path
|
||||
|
||||
# Insert '/' before '+' to cope with grep's EREs
|
||||
_release=${_release//+/\\+}
|
||||
_grubby_kernel_str=$(grubby --info ALL | grep -E "^kernel=.*$_release(\/\w+)?\"$")
|
||||
_kernel_path=$(_filter_grubby_kernel_str "$_grubby_kernel_str")
|
||||
if [[ -z $_kernel_path ]]; then
|
||||
|
@ -222,6 +222,23 @@ Describe 'kdumpctl'
|
||||
End
|
||||
End
|
||||
|
||||
Describe '_find_kernel_path_by_release()'
|
||||
grubby() {
|
||||
echo -e 'kernel="/boot/vmlinuz-6.2.11-200.fc37.x86_64"\nkernel="/boot/vmlinuz-5.14.0-322.el9.aarch64"\nkernel="/boot/vmlinuz-5.14.0-316.el9.aarch64+64k"'
|
||||
}
|
||||
|
||||
Parameters
|
||||
# parameter answer
|
||||
vmlinuz-6.2.11-200.fc37.x86_64 /boot/vmlinuz-6.2.11-200.fc37.x86_64
|
||||
vmlinuz-5.14.0-322.el9.aarch64 /boot/vmlinuz-5.14.0-322.el9.aarch64
|
||||
vmlinuz-5.14.0-316.el9.aarch64+64k /boot/vmlinuz-5.14.0-316.el9.aarch64+64k
|
||||
End
|
||||
It 'returns the kernel path for the given release'
|
||||
When call _find_kernel_path_by_release "$1"
|
||||
The output should equal "$2"
|
||||
End
|
||||
End
|
||||
|
||||
Describe 'parse_config()'
|
||||
bad_kdump_conf=$(mktemp -t bad_kdump_conf.XXXXXXXXXX)
|
||||
cleanup() {
|
||||
|
Loading…
Reference in New Issue
Block a user