HdrHistogram_c/tests/Sanity/sanity-test/runtest.sh
DistroBaker d61fd8e532 Merged update from upstream sources
This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/HdrHistogram_c.git#01a7e08d4d79b6eec90109f2a03c13b1fd00c970
2021-02-04 02:03:58 +01:00

90 lines
3.4 KiB
Bash
Executable File

#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/HdrHistogram_c/Sanity/sanity-test
# Description: Installs and builds HdrHistogram_c, then runs minimal upstream testsuite.
# Author: Jan Kuřík <jkurik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# 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, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="HdrHistogram_c"
BUILD_USER=${BUILD_USER:-hdrbuild}
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest "Get source code and setup build environment"
rlFetchSrcForInstalled "${PACKAGE}" \
|| rlDie "Can not download SRPM of ${PACKAGE} - giving up"
rlRun "yum-builddep -y \
$(rpm -q --qf '%{name}-%{version}-%{release}.src.rpm' ${PACKAGE}.$(arch))" \
|| rlDie "Can not install build dependencies - giving up"
rlRun "useradd -m -N $BUILD_USER" 0,9 && del="yes"
rlPhaseEnd
rlPhaseStartTest "Build ${PACKAGE}'s upstream testsuite"
rlRun "rpm -D \"_topdir ${TmpDir}\" -U \
$(rpm -q --qf '%{name}-%{version}-%{release}.src.rpm' ${PACKAGE}.$(arch))"
rlRun "chown -R ${BUILD_USER}:users ${TmpDir}"
rlRun -s "su -c \
'rpmbuild -D \"_topdir ${TmpDir}\" -bc ${TmpDir}/SPECS/${PACKAGE}.spec' \
${BUILD_USER}" 0-255
rlFileSubmit "${rlRun_LOG}" "rpmbuild-${PACKAGE}.log"
rlPhaseEnd
rlPhaseStartTest "Run upstream testsuite"
BDIR=$(rpm -q --qf '%{name}-%{version}' ${PACKAGE}.$(arch))
ARCHDIR="$(arch)-redhat-linux-gnu"
if [[ -d "${TmpDir}/BUILD/${BDIR}/${ARCHDIR}" ]]; then
# RHEL-9 builds
WD="${TmpDir}/BUILD/${BDIR}/${ARCHDIR}/test"
else
# RHEL-8 builds
WD="${TmpDir}/BUILD/${BDIR}/test"
fi
HDRLIB="$(ls -1 /usr/lib64/libhdr_histogram.so.[0-9]|head -1)"
if rlRun "pushd ${WD}"; then
rlRun "sed -i \
's#\s\S*libhdr_histogram\S*\.a# ${HDRLIB}#g' \
\$(find . -name link.txt)"
rlRun -s "make clean all test"
rlAssertGrep "100% tests passed" "${rlRun_LOG}"
rlRun "popd"
else
rlFail "Error accessing ${WD} directory"
fi
rlPhaseEnd
rlPhaseStartCleanup
[[ "${del}" == "yes" ]] && rlRun "userdel -r ${BUILD_USER}"
rlRun "popd"
rlRun "rm -r ${TmpDir}" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd