bgoncalv / rpms / httpd

Forked from rpms/httpd 5 years ago
Clone
Blob Blame History Raw
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   runtest.sh of /CoreOS/httpd/Sanity/httpd-php-mysql-sanity-test
#   Description: test fetching data from mysqldb/mariadb through php
#   Author: Karel Srot <ksrot@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#   Copyright (c) 2013 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 Beaker environment
[ -e /usr/bin/rhts-environment.sh ] && . /usr/bin/rhts-environment.sh
. /usr/share/beakerlib/beakerlib.sh || exit 1

PACKAGES="${PACKAGES:-httpd}"
REQUIRES="${REQUIRES:-php $DB}"

rlJournalStart
    rlPhaseStartSetup
        rlRun "rlImport httpd/http" 0 "Import httpd library"
        if rlIsRHEL 5 6 && [ $httpCOLLECTION = 0 ]; then
            DB="mysql-server"
            rlRun "rlImport mysql/basic" 0 "Import mysqld library"
            SERVICE=${mysqlServiceName}
        else
            DB="mariadb-server"
            rlRun "rlImport mariadb55/basic" 0 "Import mariadb library"
            SERVICE=${mariadbServiceName}
        fi
	# install also php-mysql on rhel-6 (instead of php-mysqlnd on rhel-7)
        rlRun "rlImport php/utils"
        phpPdoPhpMysqlSetup
        rlAssertRpm --all
        rlRun "rlServiceStart $SERVICE" 0
        rlRun "echo DROP DATABASE php_mysql_test | mysql -u root" 0,1
        rlRun "mysql --verbose -u root < php_mysql_test.sql"
        rlRun "httpStop" 0 "Stop httpd if running"
        rlRun "> $httpLOGDIR/error_log"
        rlRun "rm -rvf $httpROOTDIR/php_mysql_test"
        rlRun "mkdir -v $httpROOTDIR/php_mysql_test"
        rlRun "cp -v php_mysql_test.conf $httpCONFDIR/conf.d/"
        php_version=`rlCheckRpm php`
        if [[ $php_version =~ php-7* ]] || [[ $php_version =~ php-5.[5-6]* ]]; then
            rlRun "cp -v new_mysql.php $httpROOTDIR/php_mysql_test/mysql.php"
        else
            rlRun "cp -v old_mysql.php $httpROOTDIR/php_mysql_test/mysql.php"
        fi
        rlRun "sed -i 's|/var/www|$httpROOTDIR|' $httpCONFDIR/conf.d/php_mysql_test.conf"
        rlRun "chown -R apache:  $httpROOTDIR/php_mysql_test"
        #rlRun "restorecon  $httpROOTDIR/php_mysql_test"
        selinuxenabled && rlRun "chcon -Rv -t httpd_sys_content_t $httpROOTDIR/php_mysql_test"
        rlRun "httpStart" 0 "Start httpd"
    rlPhaseEnd

    rlPhaseStartTest
        URL="http://localhost/php_mysql_test/"
        RETVAL=0
        tries=`seq 1 10`

        for n in ${tries}; do
            output=`curl -s $URL/mysql.php`
            rv=$?
            echo "PHP output ${n}: ${rv} x${output}y"
            [ ${rv} -ne 0 -o "x${output}y" != "xfish is 42y" ] && RETVAL=66
        done

        if [ $RETVAL -ne 0 ]; then
            rlFail
        else
            rlPass
        fi
    rlPhaseEnd

    rlPhaseStartCleanup
        rlRun "rm -f $httpCONFDIR/conf.d/php_mysql_test.conf"
        rlRun "rm -rf $httpROOTDIR/php_mysql_test"
        rlRun "echo DROP DATABASE php_mysql_test | mysql -u root"
        rlRun "rlServiceRestore ${SERVICE}" 0
        rlRun "httpStop" 0 "Stop httpd if running"
	# uninstall php-mysql on rhel-6 if it was installed during setup
        phpPdoPhpMysqlCleanup
    rlPhaseEnd
rlJournalPrintText
rlJournalEnd