Blob Blame History Raw
#!/bin/bash
# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   runtest.sh of /CoreOS/initscripts/Sanity/init-scripts-LSB
#   Description: Init scripts should meet LSB specifications
#   Author: Jan Scotka <jscotka@redhat.com>,  Yulia Kopkova <ykopkova@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   Copyright (c) 2009 Red Hat, Inc. All rights reserved.
#
#   This copyrighted material is made available to anyone wishing
#   to use, modify, copy, or redistribute it subject to the terms
#   and conditions of the GNU General Public License version 2.
#
#   This program is distributed in the hope that it will be
#   useful, but WITHOUT ANY WARRANTY; without even the implied
#   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
#   PURPOSE. See the GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public
#   License along with this program; if not, write to the Free
#   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
#   Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# Include rhts environment
. /usr/bin/rhts-environment.sh
. /usr/share/rhts-library/rhtslib.sh

PACKAGE="initscripts"


SRV_NETCONSOLE=netconsole
SRV_NETFS=netfs
SRV_NETWORK=network

rlJournalStart
    
    rlPhaseStartSetup
        rlAssertRpm $PACKAGE
        rlRun "useradd testuserqa" 0 "Add test user"
        rlFileBackup /etc/sysconfig/netconsole
        if rlIsRHEL '<7'; then #there is no syslog in rhel7 and highier
            rlRun "sed -i -e 's,^# SYSLOGADDR=,SYSLOGADDR=redhat.com,' /etc/sysconfig/netconsole" 0 "Set remote syslog server address /etc/sysconfig/netconsole"
        fi
    rlPhaseEnd


    rlPhaseStartTest "netconsole service LSB compliance test" 
if ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*; then
	rlRun "ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*" 0
    if rlIsRHEL '<7'; then

        SERVICE=$SRV_NETCONSOLE
        rlServiceStop $SERVICE
        rlLog ">>>>>>>>> service start"
        rlRun "service $SERVICE start" 0 " Service must start without problem"
        rlRun "service $SERVICE status" 0 " Then Status command "
        rlRun "service $SERVICE start" 0 " Already started service "
        rlRun "service $SERVICE status" 0 " Again status command "

        rlLog ">>>>>>>>> service restart"
        rlRun "service $SERVICE restart" 0 " Restarting of service"
        rlRun "service $SERVICE status" 0 " Status command "

        rlLog ">>>>>>>>> service stop"
        rlRun "service $SERVICE stop" 0 " Stopping service "
        rlRun "service $SERVICE status" 3 " Status of stopped service "
        rlRun "service $SERVICE stop" 0 " Stopping service again "
        rlRun "service $SERVICE status" 3 " Status of stopped service "

        rlLog ">>>>>>>>> insufficient rights"
        rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user "
        rlRun "su testuserqa -c 'service $SERVICE restart'" 1 "Insufficient rights, restarting resrvice under nonprivileged user must fail"

        rlLog ">>>>>>>>> operations"
        rlServiceStop $SERVICE
        rlRun "service $SERVICE start" 0 " Service have to implement start function "
        rlRun "service $SERVICE restart" 0 " Service have to implement restart function "
        rlRun "service $SERVICE status" 0 " Service have to implement status function "
        rlRun "service $SERVICE condrestart" 0 " Service have to implement condrestart function "
        rlRun "service $SERVICE reload" 0 " Service have to implement reload function "
        rlRun "service $SERVICE force-reload" 0 " Service have to implement force-reload function "

        rlLog ">>>>>>>>> nonexist operations"
        rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function"

        rlServiceRestore $SERVICE
    fi # rhel 6 or less
else
	rlLog ">>>> no netconsole kernel module appear here"
	rlRun "ls /lib*/modules/*/kernel/drivers/net/netconsole.ko*" 1,2
fi
	rlLog "NIC should support polling, NETPOLL should be compliled in kernel and netconsole module should be loaded"
	rlLog "`cat /usr/src/kernels/$(uname -r)/.config | grep -i poll`"	
	rlLog "netconsole module: `lsmod | grep -i netconsole && echo true || echo false`"
	rlLog "`cat /var/log/messages | grep -i netconsole | tail -n 10`"
    rlPhaseEnd

    # for RHEL6 and lower
    if rlIsRHEL '<7'; then
        rlPhaseStartTest "netfs service LSB compliance test" 
    
            SERVICE=$SRV_NETFS
            rlServiceStop $SERVICE
            rlLog ">>>>>>>>> service start"
            rlRun "service $SERVICE start" 0 " Service must start without problem"
            rlRun "service $SERVICE status" 0 " Then Status command "
            rlRun "service $SERVICE start" 0 " Already started service "
            rlRun "service $SERVICE status" 0 " Again status command "
    
            rlLog ">>>>>>>>> service restart"
            rlRun "service $SERVICE restart" 0 " Restarting of service"
            rlRun "service $SERVICE status" 0 " Status command "
    
            rlLog ">>>>>>>>> service stop"
            rlRun "service $SERVICE stop" 0 " Stopping service "
            rlRun "service $SERVICE status" 3 " Status of stopped service "
            rlRun "service $SERVICE stop" 0 " Stopping service again "
            rlRun "service $SERVICE status" 3 " Status of stopped service "
    
            rlLog ">>>>>>>>> insufficient rights"
            rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user "
            rlRun "su testuserqa -c 'service $SERVICE restart'" 4 "Insufficient rights, restarting resrvice under nonprivileged user must fail"
    
            rlLog ">>>>>>>>> operations"
            rlServiceStop $SERVICE
            rlRun "service $SERVICE start" 0 " Service have to implement start function "
            rlRun "service $SERVICE restart" 0 " Service have to implement restart function "
            rlRun "service $SERVICE status" 0 " Service have to implement status function "
    
            rlLog ">>>>>>>>> nonexist operations"
            rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function"
    
            rlServiceRestore $SERVICE
	fi #RHEL6 and lower
    
        rlPhaseEnd


#    rlPhaseStartTest "$SRV_NETWORK service LSB compliance test" 
#
#        SERVICE=$SRV_NETWORK
#        rlServiceStop $SERVICE
#        rlLog ">>>>>>>>> service start"
#        rlRun "service $SERVICE start" 0 " Service must start without problem"
#        rlRun "service $SERVICE status" 0 " Then Status command "
#        rlRun "service $SERVICE start" 1,0 " Already started service "
#        rlRun "service $SERVICE status" 0 " Again status command "

#        rlLog ">>>>>>>>> service restart"
#        rlRun "service $SERVICE restart" 0 " Restarting of service"
#        rlRun "service $SERVICE status" 0 " Status command "

#        rlLog ">>>>>>>>> service stop"
#        rlRun "service $SERVICE stop" 0 " Stopping service "
#        rlRun "service $SERVICE status" 0 " Status of stopped service "
#        rlRun "service $SERVICE stop" 0 " Stopping service again "
#        rlRun "service $SERVICE status" 0 " Status of stopped service "

#        rlLog ">>>>>>>>> insufficient rights"
#        rlRun "service $SERVICE start " 0 " Starting service for restarting under nonpriv user "
#        rlRun "su testuserqa -c 'service $SERVICE restart'" 4 "Insufficient rights, restarting resrvice under nonprivileged user must fail"

#        rlLog ">>>>>>>>> operations"
#        rlServiceStop $SERVICE
#        rlRun "service $SERVICE start" 0 " Service have to implement start function "
#        rlRun "service $SERVICE restart" 0 " Service have to implement restart function "
#        rlRun "service $SERVICE status" 0 " Service have to implement status function "
#        rlRun "service $SERVICE reload" 0 " Service have to implement reload function "
#        rlRun "service $SERVICE force-reload" 0 " Service have to implement force-reload function "

#        rlLog ">>>>>>>>> nonexist operations"
#        rlRun "service $SERVICE noexistop" 2 " Testing proper return code when nonexisting function"

#        rlServiceRestore $SERVICE
#        service $SERVICE start
    rlPhaseEnd


    rlPhaseStartCleanup
        rlRun "userdel -fr testuserqa" 0 "Remove test user"
        rlFileRestore
    rlPhaseEnd

rlJournalPrintText
rlJournalEnd