systemtap/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh
Martin Cermak 8d5d041590 Include downstream/RHEL tests
Find new home for downstream RHEL tests.  Upstream them.  The set of
tests used for fedora gating stays intact:  The gating tests are only
those having the tier1 tag set in their main.fmf file.  The testplan
plans/ci.fmf filters the others out from gating.

The set of Fedora gating tests stays the same as it was before this
change.
2022-05-10 09:56:18 +02:00

117 lines
4.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
# Description: Tests backtracking in C++ programs
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 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/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
inputAs_rlLog(){
while read line
do
rlLog "$line"
done
}
compareAndLog(){
rlAssertNotDiffer "$1" "$2"
if [ "$?" != "0" ]
then
rlLog "Difference:"
diff -u "$1" "$2" | inputAs_rlLog
fi
}
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp main.cpp -g -o classes"
rlAssertRpm glibc # show NVR
rlAssertRpm glibc-debuginfo
rlRun "stap-prep" 0-255
rlPhaseEnd
rlPhaseStartTest
rlRun "stap --ldd backtrackator.stp -c ./classes > output.out"
rlRun "cp output.out unprocessed.out"
rlLog "Processing output"
rlRun "sed -i -r -e 's/0x[0-9a-f]+/ADDRESS/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA2[A-Za-z0-9]*/privateA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out"
rlRun "sed -i -r -e 's!\[((.*\/.*)|(classes))\]!\[PATH\]!g' output.out"
# http://stackoverflow.com/questions/13963150/what-does-the-gcc-function-suffix-isra-mean
rlIsRHEL '>=' 7 && arch | grep -q ppc && \
rlRun "sed -i 's/generic_start_main.isra.0/generic_start_main/' output.out"
if rlIsRHEL '>=' 9; then
[[ "`uname -m`" =~ "ppc64" ]] && \
rlRun "cat golden.el9.`arch`.out > golden-ppc64-17.out" || \
rlRun "cat golden.el9.`arch`.out > golden.out"
fi
# RHEL-9 s390x runtime/stack-s390.c:63:52: error: ASYNC_SIZE undeclared
# (PAGE_SIZE << 1) on stap side seems to work it around
if [ "`uname -m`" == "s390x" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
then
rlLog "Detected we are running on: s390x && RHEL <= 5"
rlLog "Using special expected output"
compareAndLog golden-s390x.out output.out
elif [ "`uname -m`" == "ppc64" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
then
rlLog "Detected we are running on: ppc64 && RHEL <= 5"
rlLog "Using special expected output"
compareAndLog golden-ppc64.out output.out
elif [[ "`uname -m`" =~ "ppc64" ]]
then
rlLog "Detected we are running on: ppc64"
rlLog "Using special expected output"
compareAndLog golden-ppc64-17.out output.out
else
rlLog "Detected we are running on: nothing special"
rlLog "Using generic expected output"
compareAndLog golden.out output.out
fi
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit output.out
rlFileSubmit golden.out
rlFileSubmit unprocessed.out
rlRun "rm -f classes output.out unprocessed.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd