summaryrefslogtreecommitdiff
path: root/test/panicsel_test_needreboot.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/panicsel_test_needreboot.sh')
-rw-r--r--test/panicsel_test_needreboot.sh162
1 files changed, 162 insertions, 0 deletions
diff --git a/test/panicsel_test_needreboot.sh b/test/panicsel_test_needreboot.sh
new file mode 100644
index 0000000..61a183f
--- /dev/null
+++ b/test/panicsel_test_needreboot.sh
@@ -0,0 +1,162 @@
+#!/bin/sh
+# pkg=panicsel
+# isel=showsel
+# ipef=pefconfig
+# ireset=hwreset
+pkg=ipmiutil
+isel=isel
+ipef=ilan
+ireset=ireset
+env()
+{
+ if [ -x /usr/local/bin/$isel ];then
+ PATH_EXEC="/usr/local/bin"
+ fi
+ if [ -x /usr/sbin/$isel ];then
+ PATH_EXEC="/usr/sbin"
+ fi
+}
+check_os()
+{
+ if [ -d "/etc/redhat-release" ];then
+ linux_type="redhat"
+ fi
+ if [ -d "/etc/SuSE-release" ];then
+ linux_type="suse"
+ fi
+ if [ -d "/usr/src/hardhat" ];then
+ linux_type="hardhat"
+ fi
+}
+
+check_driver()
+{
+ lsmod|grep "ipmi_comb" > /dev/null 2>&1
+ if [ $? -eq 0 ];then
+ echo "The ipmi_comb driver has been inserted already"
+ Major=`cat /proc/devices|grep imb|awk '{print $1}'`
+ if [ ! -c /dev/imb ];then
+ mknod /dev/imb c $Major 0
+ return 0
+ fi
+ fi
+
+ modprobe "ipmi_comb" > /dev/null 2>&1
+ if [ $? -eq 0 ];then
+ echo "The ipmi_comb driver be inserted corretly"
+ else
+ # echo "There are no ipmi driver or ipmi driver can not be inserted correctly"
+ return 0
+ fi
+
+ lsmod|grep "ipmi_comb" > /dev/null 2>&1
+ if [ $? -eq 0 ];then
+ Major=`cat /proc/devices|grep imb|awk '{print $1}'`
+ if [ ! -c /dev/imb ];then
+ mknod /dev/imb c $Major 0
+ fi
+ fi
+
+}
+
+prepare()
+{
+ env
+ # check_driver
+}
+Test_kernelpatch()
+{
+ oldnum=0
+ newnum=0
+ prepare
+ DIR=`pwd`
+ if [ -f /tmp/mark ];then
+ MARK=`cat /tmp/mark`
+ else
+ MARK=0
+ fi
+ $PATH_EXEC/$ipef -A $1 -C public
+ if [ $? -ne 0 ];then
+ echo "Pefconfig incorrectly,pls check your machine"
+ exit 1
+ fi
+ cd /usr/share/$pkg
+ if [ "$MARK" -ne "1" ];then
+ cd $DIR
+ cp -f ./dopanic /usr/share/$pkg/
+ echo "Init a panic for $pkg..."
+ $PATH_EXEC/$isel -s|grep -c "OS Critical Stop" > /tmp/ocs_num
+ sync
+ sleep 2
+ echo 1 > /tmp/mark
+ cd /usr/share/$pkg
+ insmod -f ./dopanic
+ fi
+ echo "check the result for $pkg..."
+ read oldnum < /tmp/ocs_num
+ $PATH_EXEC/$isel -s |grep -c "OS Critical Stop" > /tmp/ocs_num
+ read newnum < /tmp/ocs_num
+ let oldnum=oldnum+1
+ if [ $newnum -eq $oldnum ]
+ then
+ echo "PASS:KernelPactch:Panic sel insert record"
+ return 0
+ else
+ echo "FAIL: Kernel PatchPanic sel insert record"
+ return 1
+ fi
+ rm -f /tmp/mark
+
+}
+ts_hwresetr()
+{
+ prepare
+ if [ -f /tmp/count ];then
+ COUNT=`cat /tmp/count`
+ else
+ COUNT=0
+ fi
+ if [ "$COUNT" -ne "1" ];then
+ $PATH_EXEC/$isel -c >/dev/null 2>&1
+ echo 1 > /tmp/count
+ $PATH_EXEC/$ireset #reset the system
+ fi
+ $PATH_EXEC/$isel > /tmp/hwreset 2>&1
+ isevent=`cat /tmp/hwreset|grep "System Event"`
+ isboot=`cat /tmp/hwreset|grep "System Boot"`
+ if [ -n "$isevent" ] && [ -n "$isboot" ];then
+ echo "PASS: $pkg power reset"
+ return 0
+ else
+ echo "FAIL: $pkg power reset"
+ return 1
+ fi
+ rm -f /tmp/count
+}
+
+ts_hwresetc()
+{
+ prepare
+ if [ -f /tmp/hwresetc ];then
+ MARK=`cat /tmp/hwresetc`
+ else
+ MARK=0
+ fi
+ if [ "$MARK" -ne "1" ];then
+ $PATH_EXEC/$isel -c >/dev/null 2>&1
+ echo 1 > /tmp/hwresetc
+ $PATH_EXEC/$ireset -c #reset the system
+ fi
+
+ $PATH_EXEC/$isel >/tmp/hwresetc 2>&1
+ power=`cat /tmp/hwresetc|grep "Power Off/Down"`
+ if [ -n "$power" ];then
+ echo "PASS: $pkg power cycle"
+ return 0
+ else
+ echo "FAIL: $pkg power cycle"
+ return 1
+ fi
+ rm -f /tmp/hwresetc
+}
+