mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-06-03 03:50:08 +00:00
Add testcase test-sigint-genimage.sh
This commit is contained in:
parent
805cbdbc2c
commit
359063aa61
4
xCAT-test/autotest/testcase/signal/cases0
Normal file
4
xCAT-test/autotest/testcase/signal/cases0
Normal file
@ -0,0 +1,4 @@
|
||||
start:genimage_sigint
|
||||
cmd:/opt/xcat/share/xcat/tools/autotest/testcase/signal/test-sigint-genimage.sh
|
||||
check:rc==0
|
||||
end
|
167
xCAT-test/autotest/testcase/signal/test-sigint-genimage.sh
Executable file
167
xCAT-test/autotest/testcase/signal/test-sigint-genimage.sh
Executable file
@ -0,0 +1,167 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Author: GONG Jie <neo@linux.vnet.ibm.com>
|
||||
# Create: 2016-10-17
|
||||
# Update: 2016-10-21
|
||||
# Version: 1.3.0
|
||||
|
||||
#
|
||||
# warn_if_bad Put out warning message(s) if $1 has bad RC.
|
||||
#
|
||||
# $1 0 (pass) or non-zero (fail).
|
||||
# $2+ Remaining arguments printed only if the $1 is non-zero.
|
||||
#
|
||||
# Incoming $1 is returned unless it is 0
|
||||
#
|
||||
function warn_if_bad()
|
||||
{
|
||||
local -i rc="$1"
|
||||
local script="${0##*/}"
|
||||
|
||||
# Ignore if no problems
|
||||
[ "${rc}" -eq "0" ] && return 0
|
||||
|
||||
# Broken
|
||||
shift
|
||||
echo "${script}: $@" >&2
|
||||
return "${rc}"
|
||||
}
|
||||
|
||||
#
|
||||
# exit_if_bad Put out error message(s) if $1 has bad RC.
|
||||
#
|
||||
# $1 0 (pass) or non-zero (fail).
|
||||
# $2+ Remaining arguments printed only if the $1 is non-zero.
|
||||
#
|
||||
# Exits with 1 unless $1 is 0
|
||||
#
|
||||
function exit_if_bad()
|
||||
{
|
||||
warn_if_bad "$@" || exit 1
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# check_root_or_break
|
||||
#
|
||||
# Breaks the script if not running as root.
|
||||
#
|
||||
# If this returns 1, the invoker MUST abort the script.
|
||||
#
|
||||
# returns 0 if running as root
|
||||
# returns 1 if not (and breaks the script)
|
||||
#
|
||||
function check_root_or_exit()
|
||||
{
|
||||
[ "${UID}" -eq "0" ]
|
||||
exit_if_bad "$?" "Must be run by UID=0. Actual UID=${UID}."
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# check_executes Check for executable(s)
|
||||
#
|
||||
# Returns 0 if true.
|
||||
# Returns 1 if not.
|
||||
#
|
||||
function check_executes()
|
||||
{
|
||||
local cmd
|
||||
local all_ok="yes"
|
||||
for cmd in "$@"
|
||||
do
|
||||
if ! type "${cmd}" &>/dev/null
|
||||
then
|
||||
echo "Command \"${cmd}\" not found" >&2
|
||||
all_ok="no"
|
||||
fi
|
||||
done
|
||||
[ "${all_ok}" = "yes" ]
|
||||
}
|
||||
|
||||
#
|
||||
# check_exec_or_exit Check for required executables.
|
||||
#
|
||||
# Exits (not returns) if commands listed on command line do not exist.
|
||||
#
|
||||
# Returns 0 if true.
|
||||
# Exits with 1 if not.
|
||||
#
|
||||
function check_exec_or_exit()
|
||||
{
|
||||
check_executes "$@"
|
||||
exit_if_bad "$?" "Above listed required command(s) not found"
|
||||
return 0
|
||||
}
|
||||
|
||||
#
|
||||
# internal_setup Script setup
|
||||
#
|
||||
# Returns 0 on success.
|
||||
# Exits (not returns) with 1 on failure.
|
||||
#
|
||||
function internal_setup()
|
||||
{
|
||||
# Trap exit for internal_cleanup function.
|
||||
trap "internal_cleanup" 0
|
||||
|
||||
umask 0077
|
||||
|
||||
check_exec_or_exit cat cpio find grep tail tee touch xargs
|
||||
}
|
||||
|
||||
#
|
||||
# internal_cleanup Script cleanup (reached via trap 0)
|
||||
#
|
||||
# Destory any temporarily facility created by internal_setup.
|
||||
#
|
||||
function internal_cleanup()
|
||||
{
|
||||
custom_cleanup
|
||||
}
|
||||
|
||||
function custom_cleanup()
|
||||
{
|
||||
rm -rf "/install/netboot/testing0000"
|
||||
}
|
||||
|
||||
|
||||
PATH="/opt/xcat/bin:/opt/xcat/sbin:/bin:/sbin:/usr/bin:/usr/sbin"
|
||||
|
||||
OSIMAGE="$(lsdef -t osimage | grep -- -netboot-compute | head -n 1)"
|
||||
[ -n "${OSIMAGE}" ]
|
||||
exit_if_bad "$?" "Diskless osimage not found"
|
||||
|
||||
lsdef -t osimage "${OSIMAGE}" -z | sed -e 's/^.*:$/compute_9999z/'
|
||||
|
||||
# The new osimage name is compute_9999z
|
||||
OSIMAGE="compute_9999z"
|
||||
|
||||
lsdef -t osimage "${OSIMAGE}"
|
||||
exit_if_bad "$?" "Diskless osimage ${OSIMAGE} not created"
|
||||
|
||||
chdef -t osimage "${OSIMAGE}" "rootimgdir=/install/netboot/testing0000/${OSIMAGE}"
|
||||
exit_if_bad "$?" "Command chdef failed"
|
||||
|
||||
genimage "${OSIMAGE}" &
|
||||
CHILD="$!"
|
||||
|
||||
sleep 1
|
||||
|
||||
kill -0 "${CHILD}"
|
||||
exit_if_bad "$?" "Process not found"
|
||||
|
||||
kill -SIGINT "${CHILD}"
|
||||
exit_if_bad "$?" "Send SIGINT failed"
|
||||
|
||||
sleep 2
|
||||
|
||||
ps axo comm | grep genimage
|
||||
[ "$?" -ne "0" ]
|
||||
exit_if_bad "$?" "Still running 000"
|
||||
|
||||
ps axo pgrp | grep "${CHILD}"
|
||||
[ "$?" -ne "0" ]
|
||||
exit_if_bad "$?" "Still running 001"
|
||||
|
||||
exit 0
|
Loading…
x
Reference in New Issue
Block a user