systemtap/tests/Regression/RHEL6Feature-cpp-backtraces/runtest.sh
Martin Cermak 8ea2489c53 CI Testing: Extend test coverage on Fedora
Enable most of the tests on Fedora.  Port some of them to Fedora.
Annotate expected failures with respective bugzilla IDs.
2023-03-10 15:27:23 +01:00

122 lines
4.2 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
. /etc/os-release || 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
if [ "$ID" == "fedora" ] && test "0$VERSION_ID" -ge 39; then
rlRun "cat golden.fc39.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