summaryrefslogtreecommitdiff
path: root/test/panicsel_apptool_test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/panicsel_apptool_test.sh')
-rw-r--r--test/panicsel_apptool_test.sh550
1 files changed, 550 insertions, 0 deletions
diff --git a/test/panicsel_apptool_test.sh b/test/panicsel_apptool_test.sh
new file mode 100644
index 0000000..475f305
--- /dev/null
+++ b/test/panicsel_apptool_test.sh
@@ -0,0 +1,550 @@
+#!/bin/sh
+linux_type="redhat"
+# pkg=panicsel
+# isel=showsel
+# ipef=pefconfig
+# iserial=tmconfig
+pkg=ipmiutil
+isel=isel
+ipef=ilan
+iserial=iserial
+iselout=/tmp/isel.out
+ipefout=/tmp/pefconfigoutput
+
+basic_test()
+{
+ $isel > /dev/null 2>&1
+ if [ "$?" -eq 0 ];then
+ echo "PASS_BASIC: The $isel tool can run correctly"
+ return 0
+ else
+ echo "FAIL_BASIC: The $isel tool can not run correctly"
+ return 1
+ fi
+}
+showsel_ov()
+{
+ $isel -v|grep version|grep -v BMC > /dev/null
+ if [ "$?" -eq "0" ];then
+ $isel -v|grep "Free" > /dev/null 2>&1
+ if [ "$?" -eq 0 ];then
+ echo "PASS: $isel option -v testing"
+ return 0
+ else
+ echo "FAIL: $isel testing -v fail"
+ fi
+ else
+ echo "FAIL: $isel testing -v fail"
+ return 1
+ fi
+}
+
+showsel_oc()
+{
+ message_original=`$isel|wc -l`
+ $isel -c > /dev/null 2>&1
+ message_now=`$isel|wc -l`
+ if [ "$message_original" -ge "$message_now" ];then
+ echo "PASS: $isel option -c testing"
+ return 0
+ else
+ echo "FAIL: $isel option -c testing"
+ return 1
+ fi
+}
+
+check_os()
+{
+ if [ -d "/usr/src/redhat" ];then
+ linux_type="redhat"
+ 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
+ fi
+ return 1
+ 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 1
+ 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
+
+}
+showsel_ow()
+{
+ cp -f /var/log/messages /tmp/tempbackup
+ if [ ! -d /usr/share/$pkg ];then
+ mkdir /usr/share/$pkg
+ fi
+ if [ -f /usr/share/$pkg/sel.idx ];then
+ rm -f sel.idx
+ fi
+ $isel -w > /dev/null 2>&1
+ idx=`cat /usr/share/$pkg/sel.idx |awk '{ print $2}'`
+ diff /var/log/messages /tmp/tempbackup > /tmp/diff_log
+ log=`cat /tmp/diff_log|grep $idx`
+ if [ -n "$idx" -a -n "$log" ];then
+ echo "PASS: $isel option w"
+ else
+ echo "FAIL: $isel option w"
+ fi
+
+}
+###########################################
+#test show OS critical message correctly###
+###########################################
+showsel_os()
+{
+ $isel > $iselout
+ osnumber=`grep "OS Critical Stop" $iselout|wc -l`
+ if [ $osnumber -eq 0 ];then
+ echo "SKIP: $isel option s - no OS critical messages"
+ return 1
+ fi
+ $isel -s >$iselout
+ osnumber=`grep "OS Critical Stop" $iselout|wc -l`
+ if [ $? -eq 0 -a $osnumber -gt 0 ];then
+ echo " PASS: $isel option s "
+ return 0
+ else
+ echo "FAIL: $isel option s"
+ return 1
+ fi
+
+}
+showsel_test()
+{
+ check_os
+ check_driver
+ basic_test
+ if [ "$?" -eq 0 ];then
+ showsel_ov
+ showsel_oc
+ showsel_ow
+ showsel_os
+ fi
+}
+#####################################################################
+#test pefconfig can read PEF entry ###
+#####################################################################
+pefconfig_basic()
+{
+ if [ -f $ipefout ];then
+ rm -rf $ipefout
+ fi;
+ $ipef -r > $ipefout 2>&1
+ pefnumber=`grep PEFilter $ipefout|wc -l`
+ lannumber=`grep Lan $ipefout|wc -l`
+ if [ $pefnumber -ge 12 ];then
+ echo "PASS: $ipef basic requirement "
+ return 0
+ else
+ echo "FAIL: $ipef basic requirement"
+ return 1
+ fi;
+ if [ -f $ipefout ];then
+ rm -rf $ipefout
+ fi;
+}
+
+#####################################################################
+#test pefconfig can enable or disable the new PEF 0x20 events ###
+#####################################################################
+pefconfig_od()
+{
+ ipefdout=/tmp/pefconfigoutputd
+ if [ -f $ipefdout ];then
+ rm $ipefdout
+ fi
+ $ipef -d > $ipefdout 2>&1
+ disable=`cat $ipefdout|grep "Access = Disabled"`
+ if [ -n "$disable" ];then
+ echo "PASS: pefconfig disable OS critical Event "
+ return 0
+ else
+ echo "FAIL: pefconfig disable OS critical Event "
+ return 1
+ fi
+}
+
+#####################################################################
+#test pefconfig can write new entry at different offset than 12 ###
+#####################################################################
+ts_pefconfign()
+{
+total=`$ipef -r | grep PEFilter | wc -l`
+total=`echo $((total))`
+PASS="PASS"
+tmp_num=$1
+num=`echo $((tmp_num))`
+peftmp=/tmp/ipefn
+if [ "$num" -le "$total" ];then
+ $ipef -n $num |grep PEFilter|tail -n $num > ${peftmp}_$num
+ $ipef -r |grep PEFilter|head -n $num > ${peftmp}_r$num
+ dif=`diff ${peftmp}_$num ${peftmp}_r$num`
+ if [ -n "$dif" ];then
+ PASS="FAIL"
+ fi
+ rm -f ${peftmp}_$num
+ rm -f ${peftmp}_r$num
+else
+ succnum=`$ipef e -x -n $num |grep SetPefEntry|awk '{print $2}'|grep "successful"|wc -l`
+ succnum=`echo $((succnum))`
+ eqnum=`expr $num \* 2 - 1`
+ if [ "$succnum" -eq "$eqnum" ];then
+ lastrecord=`$ipef -n 15 |grep PEFilter|tail -n 1|awk '{print $3}'`
+ if [ $lastrecord -ne "80" ];then
+ PASS="FAIL"
+ fi
+ fi
+fi
+ if [ $PASS == "$FAIL" ];then
+ echo "FAIL: $ipef -n" $1
+ else
+ echo "PASS: $ipef -n" $1
+ fi
+}
+#####################################################################
+#test pefconfig can output more debug information ###
+#####################################################################
+ts_pefconfigx()
+{
+ ipefxout=/tmp/pefconfigoutputx
+ if [ -f $ipefout ];then
+ rm -rf $ipefout
+ fi
+ if [ -f $ipefxout ];then
+ rm -rf $ipefxout
+ fi
+ $ipef -x >> $ipefxout
+ test=`grep "PEF record" $ipefxout`
+ if [ ! -z test ];then
+ echo "PASS: $ipef parameter x "
+ return 0
+ else
+ echo "FAIL: $ipef parameter x"
+ return 1
+ fi
+ if [ -f $ipefxout ];then
+ rm -rf $ipefxout
+ fi
+
+}
+##############################################################
+#Basic function for testing pefconfig configuration
+################################################################
+get_host_ip_address()
+{
+ ifconfig|grep "inet addr"|grep -v "127.0.0.1"|awk '{print $2}'|cut -d: -f2
+}
+get_host_mac_address()
+{
+ ifconfig|grep eth0|awk '{print $5}'
+}
+get_route_ip_address()
+{
+ netstat -rn|grep eth0|grep UG|awk '{print $2}'
+ #cat /proc/net/arp|grep -v "HW"|awk '{print $1}'
+}
+get_route_mac_address()
+{
+ routeip=`get_route_ip_address`
+ cat /proc/net/arp|grep -v "HW"|grep $routeip|awk '{print $4}'
+}
+get_subnet_mask_address()
+{
+ ifconfig|grep Mask|grep -v "127.0.0.1"|awk '{print $4}'|cut -d: -f2
+}
+get_alert_ip_address()
+{
+ cat /etc/snmp/snmpd.conf|grep trapsink|cut -f2 -d' '
+}
+get_alert_mac_address()
+{
+ routip=get_route_ip_address
+ arping -c 1 $routeip > /dev/null 2>&1
+ arping -c 2 $1|grep reply|tail -1|awk '{print $5}'|cut -c2-18
+}
+
+get_pef_ip_address()
+{
+ cat $1|grep $2|grep -v "Param"|awk '{print $2}'|cut -d= -f2
+}
+get_pef_mac_address()
+{
+ cat $1|grep $2|grep -v "Param"|awk '{print $3}'|cut -d= -f2
+}
+check_pef()
+{
+ cat $1|grep "SetLanEntry"|grep "($2"|awk '{print $4}'
+}
+upper()
+{
+ echo $1|tr 'a-z' 'A-Z'
+}
+####################################################
+#Test pefconfig set host ip and mac addresses
+###################################################
+
+ts_pefconfig_sethost()
+{
+ rm /tmp/pefconfig_host
+ ip=`get_host_ip_address`
+ mac=`get_host_mac_address`
+ ip=192.168.2.222
+ # $ipef -I $ip -M $mac > /tmp/pefconfig_host 2>&1
+ $ipef -e -I $ip > /tmp/pefconfig_host 2>&1
+ setip=`get_pef_ip_address /tmp/pefconfig_host eth0`
+ setmac=`get_pef_mac_address /tmp/pefconfig_host eth0`
+ setmac=`upper $setmac`
+ isip=`check_pef /tmp/pefconfig_host 3`
+ ismac=`check_pef /tmp/pefconfig_host 4`
+ # if [ $mac == $setmac ] && [ $ismac -eq 0 ]; then
+ if [ $ip == $setip ] && [ $isip -eq 0 ] ; then
+ echo "PASS: $ipef Set host ip address to $ip"
+ return 0
+ else
+ echo "FAIL: $ipef Set host ip address"
+ return 1
+ fi
+}
+###############################################################
+##Test pefconfig set route ip and mac addresses
+###############################################################
+ts_pefconfig_setroute()
+{
+ ip=`get_route_ip_address`
+ count=`get_route_ip_address`
+ mac=`get_route_mac_address`
+ $ipef -e -G $ip -H $mac > /tmp/pefconfig_route 2>&1
+ setip=`get_pef_ip_address /tmp/pefconfig_route gateway`
+ setmac=`get_pef_mac_address /tmp/pefconfig_route gateway`
+ setmac=`upper $setmac`
+ isip=`check_pef /tmp/pefconfig_route 12`
+ ismac=`check_pef /tmp/pefconfig_route 13`
+ if [ $ip == $setip ] && [ $mac == $setmac ] \
+ && [ $isip -eq 0 ] && [ $ismac -eq 0 ];then
+ echo "PASS: $ipef Set route ip $ip and mac address"
+ return 0
+ else
+ echo "FAIL: $ipef Set route ip and mac address"
+ return 1
+ fi
+}
+get_alert_setip_address()
+{
+ cat $1|grep $2|awk '{print $3}'|cut -d= -f2
+}
+get_alert_setmac_address()
+{
+ cat $1|grep $2|awk '{print $4}'|cut -d= -f2
+}
+ps_pefconfig_setalert()
+{
+ rm -f /tmp/pefconfig_alert > /dev/null 2>&1
+ ip=`get_host_ip_address`
+ mac=`get_host_mac_address`
+ $ipef -A $ip -B $mac > /tmp/pefconfig_alert 2>&1
+ setip=`get_alert_setip_address /tmp/pefconfig_alert alert`
+ setmac=`get_alert_setmac_address /tmp/pefconfig_alert alert`
+ setmac=`upper $setmac`
+ isip=`check_pef /tmp/pefconfig_alert 18`
+ ismac=`check_pef /tmp/pefconfig_alert 19`
+ if [ $ip == $setip ] && [ $mac == $setmac ] \
+ && [ $isip -eq 0 ] && [ $ismac -eq 0 ];then
+ echo "PASS: $ipef Set alert"
+ return 0
+ else
+ echo "FAIL: $ipef Set Alert"
+ return 1
+ fi
+}
+###########################################################
+#Test pefconfig set community
+###########################################################
+ts_pefconfig_setcommunity()
+{
+ rm -f /tmp/pefconfig_comm
+ $ipef -A 127.0.0.1 -C private > /tmp/pefconfig_comm 2>&1
+ pef_comm=`cat /tmp/pefconfig_comm|grep Community|awk '{print $5}'`
+ if [ $pef_comm == "private" ];then
+ echo "PASS: $ipef set community"
+ return 0
+ else
+ echo "FAIL: $ipef set community"
+ return 1
+ fi
+}
+get_pef_subnet()
+{
+ a=`cat $1|grep Subnet|awk '{print $5}'`
+ b=`cat $1|grep Subnet|awk '{print $6}'`
+ c=`cat $1|grep Subnet|awk '{print $7}'`
+ d=`cat $1|grep Subnet|awk '{print $8}'`
+ echo $a.$b.$c.$d
+}
+##############################################################
+#Test pefconfig set subnet mask
+###############################################################
+ts_pefconfig_setsubnet()
+{
+
+ subnet=`get_subnet_mask_address`;
+ $ipef -S $subnet > /tmp/pefconfig_subnet 2>&1
+ pef_subnet=`get_pef_subnet /tmp/pefconfig_subnet`
+ if [ $subnet == $pef_subnet ];then
+ echo "PASS: $ipef get sub net mask address"
+ return 0
+ else
+ echo "FAIL: $ipef get sub net mask address"
+ return 1
+ fi
+}
+
+pefconfig_test()
+{
+ pefconfig_basic
+ if [ "$?" -eq 0 ];then
+ ts_pefconfign 9
+ ts_pefconfign 12
+ ts_pefconfign 16
+ ts_pefconfigx
+ ts_pefconfig_sethost
+ ts_pefconfig_setroute
+ ts_pefconfig_setsubnet
+ else
+ echo "System does not support pefconfig function"
+ fi
+}
+#*****************************************************/
+#Test the tmconfig util******************************/
+#*****************************************************/
+EntryTest()
+{
+ which $iserial > /dev/null 2>&1
+ if [ $? -ne 0 ];then
+ if [ -f /usr/share/$pkg/$iserial ];then
+ cp -f /usr/share/$pkg/$iserial /usr/sbin
+ else
+ echo "$iserial: there is no $iserial util"
+ exit 1
+ fi
+ fi
+}
+TestPara()
+{
+ result=`cat $1|grep $2|awk '{print $4}'|cut -d , -f 1`
+ if [ "x$result" = "x" ]; then
+ echo "FAIL: $iserial $2, no result"
+ return 1
+ fi
+ if [ $result -eq 0 ];then
+ echo "PASS: $iserial $2"
+ return 0
+ else
+ echo "FAIL: $iserial $2"
+ return 1
+ fi
+
+}
+ts_tmconfigr()
+{
+ infoline="$iserial Test parameter r"
+ EntryTest
+ $iserial -r > /dev/null 2>&1
+ if [ $? -eq 0 ];then
+ echo "PASS: $infoline"
+ return 0
+ else
+ echo "FAIL: $infoline"
+ return 1
+ fi
+}
+
+ts_tmconfigs()
+{
+ infoline="$iserial Test parameter n"
+ EntryTest
+ $iserial -s > /tmp/tmconfigs 2>&1
+ TestPara /tmp/tmconfigs "SetChanAcc(ser)" $infoline
+}
+ts_tmconfigup()
+{
+ infoline="$iserial Test parameter u and p"
+ EntryTest
+ $iserial -u root -p password >/dev/null 2>&1
+ if [ $? -eq 0 ];then
+ echo PASS: $infoline
+ else
+ echo FAIL: $infoline
+ fi
+}
+LanTest()
+{
+ infoline="$iserial Test parameter l"
+ $iserial -l > /tmp/tmconfigl
+ line=`cat /tmp/tmconfigl|grep "Lan Param"|wc -l`
+ if [ $line -ge 22 ];then
+ echo "PASS: $infoline"
+ else
+ echo "FAIL: $infoline"
+ fi
+}
+ts_tmconfigl()
+{
+ EntryTest
+ LanTest
+}
+
+ts_tmconfign()
+{
+ infoline="$iserial Test parameter m0"
+ EntryTest
+ $iserial -m0 >/tmp/tmconfign 2>&1
+ TestPara /tmp/tmconfign "SetSerialMux(System)" $infoline
+}
+ts_tmconfigt()
+{
+ infoline="$iserial Test parameter m1"
+ EntryTest
+ $iserial -m1 >/tmp/tmconfigt 2>&1
+ TestPara /tmp/tmconfigt "SetSerialMux(BMC)" $infoline
+}
+
+tmconfig_test()
+{
+ ts_tmconfigr
+ if [ $? -eq 0 ];then
+ ts_tmconfigs
+ ts_tmconfigl
+ ts_tmconfign
+ ts_tmconfigup
+ ts_tmconfigt
+ else
+ echo "FAIL:Basic tmconfig testing"
+ fi
+}
+showsel_test
+pefconfig_test
+tmconfig_test