unit tests: prepare for kdumpctl and kdump-lib.sh to be unit-tested
Currently there are two issues with unit-testing the functions defined in kdumpctl and other shell scripts after sourcing them, - kdumpctl would call main which requires root permission and would create single instance lock (/var/lock/kdump) - kdumpctl and other shell scripts directly source files under /usr/lib/kdump/ When ShellSpec load a script via "Include", it defines the__SOURCED__ variable. By making use of __SOURCED__, we can 1. let kdumpctl not call main when kdumpctl is "Include"d by ShellSpec 2. instruct kdumpctl and kdump-lib.sh to source the files in the repo when running ShelSpec tests Note coverage/ is added to .gitignore because ShellSpec generates code coverage results in this folder. Reviewed-by: Philipp Rudo <prudo@redhat.com> Signed-off-by: Coiby Xu <coxu@redhat.com>
This commit is contained in:
parent
11140c28a2
commit
b97310428f
1
.gitignore
vendored
1
.gitignore
vendored
@ -21,3 +21,4 @@
|
|||||||
/kexec-tools-2.0.11.tar.xz
|
/kexec-tools-2.0.11.tar.xz
|
||||||
/makedumpfile-1.5.9.tar.gz
|
/makedumpfile-1.5.9.tar.gz
|
||||||
/kexec-tools-2.0.12.tar.xz
|
/kexec-tools-2.0.12.tar.xz
|
||||||
|
coverage/
|
||||||
|
@ -2,8 +2,11 @@
|
|||||||
#
|
#
|
||||||
# Kdump common variables and functions
|
# Kdump common variables and functions
|
||||||
#
|
#
|
||||||
|
if [[ ${__SOURCED__:+x} ]]; then
|
||||||
. /usr/lib/kdump/kdump-lib-initramfs.sh
|
. ./kdump-lib-initramfs.sh
|
||||||
|
else
|
||||||
|
. /lib/kdump/kdump-lib-initramfs.sh
|
||||||
|
fi
|
||||||
|
|
||||||
FADUMP_ENABLED_SYS_NODE="/sys/kernel/fadump_enabled"
|
FADUMP_ENABLED_SYS_NODE="/sys/kernel/fadump_enabled"
|
||||||
|
|
||||||
|
24
kdumpctl
24
kdumpctl
@ -32,8 +32,14 @@ fi
|
|||||||
|
|
||||||
[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
|
[[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
|
||||||
. $dracutbasedir/dracut-functions.sh
|
. $dracutbasedir/dracut-functions.sh
|
||||||
. /lib/kdump/kdump-lib.sh
|
|
||||||
. /lib/kdump/kdump-logger.sh
|
if [[ ${__SOURCED__:+x} ]]; then
|
||||||
|
KDUMP_LIB_PATH=.
|
||||||
|
else
|
||||||
|
KDUMP_LIB_PATH=/lib/kdump
|
||||||
|
fi
|
||||||
|
. $KDUMP_LIB_PATH/kdump-lib.sh
|
||||||
|
. $KDUMP_LIB_PATH/kdump-logger.sh
|
||||||
|
|
||||||
#initiate the kdump logger
|
#initiate the kdump logger
|
||||||
if ! dlog_init; then
|
if ! dlog_init; then
|
||||||
@ -1676,11 +1682,6 @@ reset_crashkernel_for_installed_kernel()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ ! -f $KDUMP_CONFIG_FILE ]]; then
|
|
||||||
derror "Error: No kdump config file found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
# Determine if the dump mode is kdump or fadump
|
# Determine if the dump mode is kdump or fadump
|
||||||
@ -1753,6 +1754,15 @@ main()
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [[ ${__SOURCED__:+x} ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f $KDUMP_CONFIG_FILE ]]; then
|
||||||
|
derror "Error: No kdump config file found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Other kdumpctl instances will block in queue, until this one exits
|
# Other kdumpctl instances will block in queue, until this one exits
|
||||||
single_instance_lock
|
single_instance_lock
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user