Move gating tests to a different repo

Remove the gating tests from here and use the tests from
  https://src.fedoraproject.org/tests/gcc
There's more of them there, they are are more up-to-date,
maintained by RHEL QA staff and re-used in other downstreams
(CentOS Stream, RHEL, RHIVOS).
This commit is contained in:
Václav Kadlčík 2023-11-09 10:22:15 +01:00
parent 666e815832
commit b2371a5073
99 changed files with 72 additions and 3194 deletions

View File

@ -1,10 +1,13 @@
summary: CI Gating Plan summary: CI Gating Plan
discover: discover:
how: fmf how: fmf
directory: tests url: https://src.fedoraproject.org/tests/gcc.git
prepare: filter: 'tag: Fedora-CI-gating'
- name: prepare
how: shell
script: ./plans/prepare.sh
execute: execute:
how: tmt how: tmt
adjust:
- prepare+:
- name: Add secondary architecture RPMs
how: shell
script: ./plans/provide_secondary_arch_rpms.sh
when: arch == x86_64

View File

@ -1,54 +0,0 @@
#!/bin/bash
#
# Setup task for Fedora CI system. Install the x86_64 GCC build under test
# along with its respective i686 (compat arch) bits needed for the testing.
# KOJI_TASK_ID per https://github.com/fedora-ci/dist-git-pipeline/pull/50 .
#
set -x
true "V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V"
echo "KOJI_TASK_ID=$KOJI_TASK_ID"
. /etc/os-release
if [ "$ID" == "fedora" ] && [ "$(arch)" == "x86_64" ]; then
if [ -z "${KOJI_TASK_ID}" ]; then
echo "Missing koji task ID, skipping ..."
exit 0
fi
tmpd=`mktemp -d`
pushd $tmpd
koji download-task $KOJI_TASK_ID --noprogress --arch=src
ls
VR=$(rpm -qp gcc* --queryformat='%{version}-%{release}')
popd
rm -rf $tmpd
tmpd=`mktemp -d`
pushd $tmpd
koji download-task $KOJI_TASK_ID --noprogress --arch=x86_64 --arch=noarch
rm -f *debuginfo*
ls
dnf -y install *.rpm
popd
rm -rf $tmpd
tmpd=`mktemp -d`
pushd $tmpd
koji download-task $KOJI_TASK_ID --noprogress --arch=i686
rm -f *debuginfo*
ls
yum -y install libgcc-$VR* libgfortran-$VR* libgomp-$VR* libitm-$VR* \
libstdc++-devel-$VR* libstdc++-$VR* libstdc++-static-$VR*
popd
rm -rf $tmpd
else
echo "Not Fedora x86_64, skipping..."
fi
true "^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^"

View File

@ -0,0 +1,64 @@
#!/usr/bin/env bash
# Fedora CI testing systems don't provide a repository with the i686
# RPMs of the build being tested. As a consequence, most
# dnf install -y <some-gcc-rpm>.i686
# commands (whether being run by a test or by TMT's prepare) will probably
# fail on a version mismatch with the present x86_64 gcc RPMs. To prevent
# such failures we provide this script which we recommend to include in every
# Fedora CI test plan.
#
# Implementation notes:
#
# * The gcc build being tested in Fedora CI is given via KOJI_TASK_ID. See
# https://github.com/fedora-ci/dist-git-pipeline/pull/50 for details.
#
# * Currently this script just downloads and installs the i686 RPMs. It
# would not be sufficient for tests that uninstall and reinstall those
# RPMs. If such a test appears, this script should create a repository.
#
# * Fedora CI testing systems seem to have extremely small RAM-based /tmp,
# unable to host all the downloaded RPMs, and no other "real" filesystem
# than "/". That's the reason for using
# mktemp -d --tmpdir=/
set -x
true "V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V"
echo "KOJI_TASK_ID=$KOJI_TASK_ID"
. /etc/os-release
echo "ID=$ID"
echo "arch=$(arch)"
echo "KOJI_TASK_ID=$KOJI_TASK_ID"
if [[ "$ID" = fedora ]] && [[ "$(arch)" = x86_64 ]] && [[ -n "$KOJI_TASK_ID" ]]; then
if tmpd=$(mktemp -d --tmpdir=/) && pushd "$tmpd"; then
# Download
rpm -q koji || dnf -y install koji
koji download-task "$KOJI_TASK_ID" --noprogress --arch={x86_64,i686,noarch}
# Remove conflicting RPMs
rm -f ./*debuginfo* ./*debugsource*
rm -f gcc-[0-9]*.i686.*
rm -f ./*docs*.i686.*
# Install
ls
dnf -y install ./*.rpm
# Clean up
# shellcheck disable=SC2164
popd
rm -rf "$tmpd"
fi
else
echo "Not applicable"
fi
true "^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^"

View File

@ -1,12 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
int i = 2;
if (-10 * abs (i - 1) == 10 * abs (i - 1))
return 1;
return 0;
}

View File

@ -1,26 +0,0 @@
summary: gcc optimization error for neg number * abs() [extract_muldiv]
description: |
abs() from gcc was broken so it gave wrong results.
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Regression/394271-gcc-optimization-error-for-neg-number-abs
framework: beakerlib
require:
- gcc
duration: 5m
enabled: true
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=394271
tag:
- CI-Tier-1
- DTS8-INTEROP-CI
- DTS9-INTEROP-CI
- Tier1
- dts_smoke
- dts_stable
extra-nitrate: TC#0062143
extra-summary: /tools/gcc/Regression/gcc/394271-gcc-optimization-error-for-neg-number-abs
extra-task: /tools/gcc/Regression/gcc/394271-gcc-optimization-error-for-neg-number-abs

View File

@ -1,52 +0,0 @@
#!/bin/bash
# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved.
#
# 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 3 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/>.
#
# Author: Michal Nowak <mnowak@redhat.com>
# Marek Polacek <polacek@redhat.com>
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
GCC="${GCC:-$(type -P gcc)}"
PACKAGE=$(rpm --qf '%{name}' -qf $GCC)
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v abs.c $TmpDir"
rlRun "pushd $TmpDir"
gcc -dumpversion | grep -q '^4\.4' && export OLDGCC="true"
rlPhaseEnd
rlPhaseStartTest "Testing the executable"
OPTS="-O0 -O1 -O2 -O3 -Os -Ofast -Og"
if [ "$OLDGCC" = "true" ]; then
OPTS=${OPTS/ -Ofast -Og/}
fi
for opt in "" $OPTS; do
rlRun "$GCC -g $opt -o abs$opt abs.c" 0 "Compiling the test case [ $opt ]"
rlRun "./abs$opt" 0 "Checking whether we have an working executable [ $opt ]"
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,29 +0,0 @@
summary: unzip problem with CRC error for src-4.1.0.zip file on s390x
description: |
A customer has been trying to unzip the file src-4.1.0.zip
which is contained libgcj4-src-4.1.0-18.EL4.s390x.rpm. However,
unzip command can't run correctly with the CRC errors
It seems that the src-4.1.0.zip is broken.
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
framework: beakerlib
require:
- gcc
- libgcj-src
duration: 5m
enabled: true
tag:
- CI-Tier-1
- Tier1
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=462397
adjust:
- enabled: false
when: distro != rhel-5 and distro != rhel-6
continue: false
extra-nitrate: TC#0147365
extra-summary: /tools/gcc/Sanity/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file
extra-task: /tools/gcc/Sanity/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file

View File

@ -1,53 +0,0 @@
#!/bin/bash
# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved.
#
# 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 3 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/>.
#
# Author: Michal Nowak <mnowak@redhat.com>
# Marek Polacek <polacek@redhat.com>
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(gcc libgcj-src)
rlJournalStart
rlPhaseStartSetup
for p in "${PACKAGES[@]}"; do
rlAssertRpm "$p"
done; unset p
rlRun "TmpDir=\`mktemp -d\`"
rlRun "pushd $TmpDir"
rlPhaseEnd
srclist="/usr/share/java/src-*"
for src in ${srclist}; do
rlPhaseStartTest "Try to unzip src file"
rm -rf tmp/; mkdir tmp/
rlRun "cp -fv ${src} tmp/" 0 "[${src}]: Copy the zip file to tmp/"
cd tmp/
rlRun "unzip ${src}" 0 "[${src}] Verify that is possible to unzip ${src}"
cd ..
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,22 +0,0 @@
subroutine a
INTEGER*4 a_i
common /block/a_i
a_i = 1
end subroutine a
subroutine b
INTEGER*4 b_i
common /block/b_i
a_i = 3
b_i = 2
end subroutine b
subroutine c
INTEGER*4 a_i
common /block/a_i
if (a_i .ne. 2) call abort
end subroutine c
program abc
call a
call b
call c
end program abc

View File

@ -1,38 +0,0 @@
summary: Fortran DW_TAG_common_block has incorrect placement/scope
description: |+
Problem: gcc-4.3.2 / gfortran-4.3.2 (in the forthcoming tech-preview for
RHEL5.3) appears to also have the "DW_TAG_common_block has incorrect
placement/scope" issues listed in the following gcc upstream bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37738
What gfortran is doing currently is:
(1) Merges all common blocks into a single one.
(2) Places this single common block into the first subroutine where it was
used.
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope
framework: beakerlib
require:
- gcc
- gcc-gfortran
duration: 5m
tier: '1'
enabled: true
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=465974
tag:
- CI-Tier-1
- DTS8-INTEROP-CI
- DTS9-INTEROP-CI
- Tier1
- dts_smoke
- dts_stable
extra-nitrate: TC#0062268
extra-summary: /tools/gcc/g77/465974-DW_TAG_common_block-has-incorrect-placement-scope
extra-task: /tools/gcc/g77/465974-DW_TAG_common_block-has-incorrect-placement-scope

View File

@ -1,56 +0,0 @@
#!/bin/bash
# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved.
#
# 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 3 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/>.
#
# Author: Michal Nowak <mnowak@redhat.com>
# Marek Polacek <polacek@redhat.com>
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(gcc gcc-gfortran)
GFORTRAN=${GFORTRAN:-gfortran}
rlJournalStart
rlPhaseStartSetup
if type gcc | grep -q -v toolset; then
# assert only of not devtoolset/gcc-toolset
for p in "${PACKAGES[@]}"; do
rlAssertRpm "$p"
done; unset p
fi
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v abc.f90 $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest "Testing the executable via readelf -w"
# Compile
rlRun "$GFORTRAN -g -o abc abc.f90" 0 "Compiling the test case: abc.f90"
rlRun "./abc" 0 "Checking whether we have an working executable"
rlWatchdog "readelf -w abc 2>&1 | tee gcc-readelf.log" 10
rlAssert0 "Checking if 'readelf' ends itself" $?
# Test
cb=$(grep Abbrev gcc-readelf.log | grep DW_TAG_common_block -c)
rlRun "if [ ${cb} -eq 3 ]; then true; else false; fi" 0 "Expected amount of common blocks is 3; got ${cb}"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,29 +0,0 @@
#include <stdio.h>
/* Compile flags:
* gcc -fno-builtin-isascii -fno-builtin-isalnum -o builtin builtin.c
*
* Expected output:
* Using custom isascii() function
* ret = 0
*
* Expected return value:
* 0
*/
int isascii(int c)
{
printf("Using custom isascii() function\n");
return 0;
}
main()
{
int c = 65;
int ret;
ret = isascii(c);
printf("ret = %d\n", ret);
return ret;
}

View File

@ -1,33 +0,0 @@
summary: 'Test for bz515799 ([RHEL5] gcc: if more than one -fno-builtin-*)'
description: |
Bug summary: [RHEL5] gcc: if more than one -fno-builtin-* options are specified, only the last one is effective
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=515799
This test compiles builtin.c with the flags '-fno-builtin-isascii
-fno-builtin-isalnum'. This program contains a custom isascii() function
that always returns 0. If gcc honors the -fno-builtin-isascii flag, it
will return 0. If not, it will use the built-in isascii() function which
will return 1.
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin
framework: beakerlib
require:
- gcc
duration: 5m
enabled: true
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=515799
tag:
- CI-Tier-1
- DTS8-INTEROP-CI
- DTS9-INTEROP-CI
- Tier1
- dts_smoke
- dts_stable
extra-nitrate: TC#0063259
extra-summary: /tools/gcc/Regression/gcc/515799-RHEL5-gcc-if-more-than-one-fno-builtin
extra-task: /tools/gcc/Regression/gcc/515799-RHEL5-gcc-if-more-than-one-fno-builtin

View File

@ -1,58 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/gcc/515799-RHEL5-gcc-if-more-than-one-fno-builtin
# Description: Test for bz515799 ([RHEL5] gcc: if more than one -fno-builtin-*)
# Author: Jeffrey Bastian <jbastian@redhat.com>
# Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2009, 2012 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
PACKAGES=(gcc)
GCC=${GCC:-gcc}
rlJournalStart
rlPhaseStartSetup
for p in "${PACKAGES[@]}"; do
rlAssertRpm "$p"
done; unset p
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v builtin.c $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "$GCC -fno-builtin-isascii -fno-builtin-isalnum -o builtin builtin.c"
rlAssertExists "builtin"
rlRun "./builtin"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,5 +0,0 @@
public class foo {
public static void main(String[] args) {
System.loadLibrary("foolib");
}
}

View File

@ -1,39 +0,0 @@
summary: 'CVE-2009-3736 libtool: libltdl may load and execute code from a library
in the current directory'
description: |
cat > ~/foo.java <\EOF public class foo { public static void main(String[] args) { System.loadLibrary("foolib"); } } EOF
cd
gcj -C foo.java
cd /tmp
strace -f -v -s1024 gij -cp ~/ foo 2>&1 | grep foolib
(resp. s/gcj/gcj4/g;s/gij/gij4/ for gcc4 testing).
If any relative path is seen, it is wrong. Bad examples are
{lib,}foolib.la
{hwcap,0,nosegneg}/{lib,}foolib.{so,la}
contact: mcermak@redhat.com
component:
- gcc
test: ./runtest.sh
framework: beakerlib
require:
- gcc
- gcc-java
- libgcj
- strace
duration: 5m
enabled: false
tag:
- CI-Tier-1
- Tier1
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=537941
adjust:
- enabled: true
when: distro == rhel-6 or distro == rhel-5
extra-nitrate: TC#0062145
extra-summary: /tools/gcc/Regression/gcj/537941-libltdl-may-load-library-in-current-directory
extra-task: /tools/gcc/Regression/gcj/537941-libltdl-may-load-library-in-current-directory

View File

@ -1,71 +0,0 @@
#!/bin/bash
# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved.
#
# 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 3 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/>.
#
# Author: Michal Nowak <mnowak@redhat.com>
# Marek Polacek <polacek@redhat.com>
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(gcc libgcj strace gcc-java)
rlJournalStart
rlPhaseStartSetup
for p in "${PACKAGES[@]}"; do
rlAssertRpm "$p"
done; unset p
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v foo.java $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
# I weeded out the if (isRHEL 3) support.
for gj in "" "4"; do
gcj_name="/usr/bin/gcj${gj}"
gij_name="/usr/bin/gij${gj}"
if [ -x ${gcj_name} ] && [ -x ${gij_name} ]; then
gcj_basename=$(basename ${gcj_name})
gij_basename=$(basename ${gij_name})
rlPhaseStartTest "[${gij_basename}] Interpreting and compiling via java"
rlRun "${gcj_name} -C foo.java" 0 "[${gcj_basename}] Creating bytecode"
mv foo.class ~
pushd /tmp
echo "Dry run w/o strace"
${gij_basename} -cp ~/ foo
echo "=== Dry run end ==="
strace -f -v -s1024 ${gij_basename} -cp ~/ foo 2>&1 | tee out.${gij_basename}
echo
grep foolib out.${gij_basename}
foolib_cnt="$(grep foolib out.${gij_basename} -c)"
echo
rlRun "if [ ${foolib_cnt} -ne 0 ]; then egrep '\"libfoolib.la|\"foolib.la' out.${gij_basename}; else echo \"Zero lines w/ foolib\"; true; fi" 1 "[${gij_basename}] Interpreting test case" # use 'true' (sic!)
popd
rm -f ~/foo.class
rlPhaseEnd
fi
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,32 +0,0 @@
summary: Test for BZ#1611637 (devtoolset-8-gcc includes avx512vbmi2intrin.h but)
description: |
Bug summary: devtoolset-8-gcc includes avx512vbmi2intrin.h but does not contain it
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1611637
The list of intrinsic headers keeps changing every release, sometimes
even on the release branch, and %files needs to be in sync with what has
been changed in gcc/config.gcc. immintrin.h is one of those headers and
this test makes sure that we can #include it.
contact: Vaclav Kadlcik <vkadlcik@redhat.com>
component:
- gcc
test: bash ./runtest.sh
framework: beakerlib
require:
- gcc
duration: 5m
enabled: true
tag:
- CI-Tier-1
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1611637
adjust:
- enabled: false
when: arch != x86_64
continue: false
- enabled: false
when: distro == rhel-5
continue: false
extra-nitrate: TC#0575308
extra-summary: /tools/gcc/Regression/bz1611637-immintrin_h_include_list_does_not_match_release
extra-task: /tools/gcc/Regression/bz1611637-immintrin_h_include_list_does_not_match_release

View File

@ -1,54 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1611637-immintrin_h_include_list_does_not_match_release
# Description: Test for BZ#1611637 (devtoolset-8-gcc includes avx512vbmi2intrin.h but)
# Author: Michael Petlan <mpetlan@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 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
GCC=${GCC:-gcc}
rlJournalStart
rlPhaseStartSetup
cat > a.c <<EOF
#include <immintrin.h>
int main(void)
{
return 0;
}
EOF
rlAssertExists "a.c"
rlPhaseEnd
rlPhaseStartTest
rlRun "$GCC -o a a.c"
rlAssertExists "a"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f a a.c"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,12 +0,0 @@
summary: Test for BZ#1815504 (Regression in the line information debug)
description: |
Bug summary: Regression in the line information debug information generated by gcc
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1815504
recommend:
- gcc
- valgrind
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1815504
extra-summary: /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug
extra-task: /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug

View File

@ -1,50 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug
# Description: Test for BZ#1815504 (Regression in the line information debug)
# Author: Alexandra Hájková <ahajkova@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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="gcc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "valgrind -q date &> log" 0
rlAssertNotGrep "Can't handle inlined call info entry with line number" log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,17 +0,0 @@
summary: Test for BZ#1852781 (Compiling with -flto and -g removes CET support)
description: |
Bug summary: Compiling with -flto and -g removes CET support
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1852781
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- binutils
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1852781
extra-summary: /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support
extra-task: /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support

View File

@ -1,55 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support
# Description: Test for BZ#1852781 (Compiling with -flto and -g removes CET support)
# Author: Alexandra Hájková <ahajkova@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="gcc"
TESTPROG="x"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp $TESTPROG.c $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "gcc -flto -c -fcf-protection -g $TESTPROG.c"
rlRun "gcc -flto -Wl,-z,cet-report=error -fcf-protection -g $TESTPROG.o &> log"
rlAssertNotGrep " missing IBT and SHSTK properties" log
rlRun "readelf --wide --notes a.out | grep IBT &> log"
rlAsserGrep "IBT, SHSTK" log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,8 +0,0 @@
#include <stdio.h>
int
main ()
{
printf ("hello\n");
return 0;
}

View File

@ -1,17 +0,0 @@
summary: Test for BZ#1853900 (typeinfo for stdcodecvt_utf8<wchar_t, 1114111ul,)
description: |
Bug summary: typeinfo for std::codecvt_utf8<wchar_t, 1114111ul, (std::codecvt_mode)0> not found
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1853900
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- gcc-c++
duration: 10m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1853900
extra-summary: /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul
extra-task: /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul

View File

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul
# Description: Test for BZ#1853900 (typeinfo for stdcodecvt_utf8<wchar_t, 1114111ul,)
# Author: Alexandra Hájková <ahajkova@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="gcc"
TESTPROG="test.cc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp $TESTPROG $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "g++ -std=c++17 $TESTPROG &> log"
rlAssertNotGrep "hidden symbol " log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,7 +0,0 @@
#include <filesystem>
namespace fs = std::filesystem;
int main() {
fs::create_directory("sandbox");
fs::remove_all("sandbox");
}

View File

@ -1,16 +0,0 @@
summary: Test for BZ#1878841 (GOMP_parallel_loop_nonmonotonic_dynamic and)
description: |
Bug summary: GOMP_parallel_loop_nonmonotonic_dynamic and GOMP_loop_nonmonotonic_dynamic_next missing
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1878841
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1878841
extra-summary: /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and
extra-task: /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and

View File

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and
# Description: Test for BZ#1878841 (GOMP_parallel_loop_nonmonotonic_dynamic and)
# Author: Alexandra Hájková <ahajkova@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="gcc"
TESTPROG="tst"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp $TESTPROG.c $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "gcc -fopenmp $TESTPROG.c &> log"
rlAssertNotGrep "undefined reference to `GOMP_parallel_loop_nonmonotonic_dynamic`" log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,6 +0,0 @@
#include <omp.h>
int main ()
{
#pragma omp parallel for schedule(dynamic)
for (int i = 0; i < 10; i++);
}

View File

@ -1,17 +0,0 @@
summary: Test for BZ#1893340 (Variadic arguments are missing from debugging data)
description: |
Bug summary: Variadic arguments are missing from debugging data when building with -flto
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1893340
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- gdb
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1893340
extra-summary: /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data
extra-task: /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data

View File

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data
# Description: Test for BZ#1893340 (Variadic arguments are missing from debugging data)
# Author: Alexandra Hájková <ahajkova@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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="gcc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp test.c b.gdb $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "gcc -fPIC -shared -o libtest.so -O0 -g test.c"
rlRun "gdb -x b.gdb libtest.so > gdb.log"
rlAssertGrep "void foo(int, ...);" gdb.log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,6 +0,0 @@
#include <stdarg.h>
void foo(int args, ...) {
va_list ap;
va_start(ap, args);
va_end(ap);
}

View File

@ -1,16 +0,0 @@
summary: Test for BZ#1896093 (Compiling with -flto=auto fails if make is not)
description: |
Bug summary: Compiling with -flto=auto fails if make is not installed
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1896093
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1896093
extra-summary: /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not
extra-task: /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not

View File

@ -1,56 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not
# Description: Test for BZ#1896093 (Compiling with -flto=auto fails if make is not)
# Author: Alexandra Hájková <ahajkova@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="gcc"
rlJournalStart
rlPhaseStartSetup
MAKE_WAS_PRESENT=false
rpm -q make &>/dev/null && MAKE_WAS_PRESENT=true
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlRun "rpm -e --nodeps make" 0,1
rlPhaseEnd
rlPhaseStartTest
echo "void main() { }" | gcc -x c -flto=auto - &> log
rlAssertNotGrep "lto-wrapper: fatal error: execvp: No such file or directory" log
rlPhaseEnd
rlPhaseStartCleanup
if $MAKE_WAS_PRESENT; then
rpm -q make &>/dev/null || rlRun "yum -y install make"
fi
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,5 +0,0 @@
program test_allocated
integer :: i = 4
real(4), allocatable :: x(:)
if (.not. allocated(x)) allocate(x(i))
end program test_allocated

View File

@ -1,17 +0,0 @@
summary: Test for BZ#1927579 (libgfortran seems to be missing)
description: |
Bug summary: libgfortran seems to be missing _gfortran_os_error_at
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1927579
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- gcc-gfortran
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1927579
extra-summary: /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing
extra-task: /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing

View File

@ -1,51 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing
# Description: Test for BZ#1927579 (libgfortran seems to be missing)
# Author: Alexandra Hájková <ahajkova@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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="gcc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "cp alloc1.f90 $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "gfortran alloc1.f90" &> log
rlAssertNotGrep "alloc1.f90:(.text+0x131): undefined reference" log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,17 +0,0 @@
summary: Test for BZ#1939638 (gcc-toolset-10-libasan-devel depends on the wrong)
description: |
Bug summary: gcc-toolset-10-libasan-devel depends on the wrong libasan
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1939638
contact: Alexandra Hájková <ahajkova@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- libasan
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1939638
extra-summary: /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong
extra-task: /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong

View File

@ -1,50 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong
# Description: Test for BZ#1939638 (gcc-toolset-10-libasan-devel depends on the wrong)
# Author: Alexandra Hájková <ahajkova@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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="gcc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "echo 'int main () { return 0; }' | gcc -xc -fsanitize=address -" &> log
rlAssertNotGrep "cannot find /usr/lib64/libasan" log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,27 +0,0 @@
summary: Test for BZ#1960701 (Wrong-code regression starting with gcc 8.2)
description: |
Bug summary: Wrong-code regression starting with gcc 8.2
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1960701
contact: Vaclav Kadlcik <vkadlcik@redhat.com>
component:
- gcc
test: bash ./runtest.sh
framework: beakerlib
require:
- gcc-c++
duration: 15m
enabled: true
tag:
- CI-Tier-1
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1960701
adjust:
- enabled: false
when: distro < rhel-8 and collection is not defined
continue: false
- enabled: false
when: distro ~< rhel-8.5 and collection is not defined
continue: false
extra-nitrate: TC#0610780
extra-summary: /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2
extra-task: /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2

View File

@ -1,14 +0,0 @@
#include <vector>
struct T {
unsigned a;
float b {8.};
};
int main()
{
T t = {1};
std::vector<T> tt = {{1}, {2}};
if (t.a != 1 || t.b != 8.0f || tt[0].a != 1 || tt[0].b != 8.0f || tt[1].a != 2 || tt[1].b != 8.0f)
__builtin_abort ();
}

View File

@ -1,66 +0,0 @@
#!/usr/bin/env bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2
# Description: Test for BZ#1960701 (Wrong-code regression starting with gcc 8.2)
# Author: Vaclav Kadlcik <vkadlcik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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
# Notes on relevancy
#
# The test is applicable to GCCs supporting -std=c++17. In practice,
# * any supported toolset GCC
# * system GCC of RHEL 8+; however the respective fix landed in 8.5
# and isn't planned for backporting.
#
# Suggested TCMS relevancy:
# distro < rhel-8 && collection !defined: False
# distro < rhel-8.5 && collection !defined: False
GCC="${GCC:-$(type -P gcc)}"
PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1)
PACKAGES="${PACKAGE} ${PACKAGE}-c++"
rlJournalStart
rlPhaseStartSetup
rlLogInfo "PACKAGES=$PACKAGES"
rlLogInfo "COLLECTIONS=$COLLECTIONS"
rlAssertRpm --all
rlRun "TmpDir=\$(mktemp -d)"
rlRun "cp reproducer.cc $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun 'g++ -o reproducer -Wall -Wextra -std=c++17 reproducer.cc'
rlRun './reproducer'
rlPhaseEnd
rlPhaseStartCleanup
rlRun 'popd'
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,16 +0,0 @@
summary: Test for BZ#1965951 (Wrong-code regression starting with gcc 8.5)
description: |
Bug summary: Wrong-code regression starting with gcc 8.5
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1965951
contact: Vaclav Kadlcik <vkadlcik@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc-c++
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1965951
extra-summary: /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5
extra-task: /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5

View File

@ -1,12 +0,0 @@
#include <iostream>
struct S1 { virtual ~S1() = default; };
struct S2 { virtual void f1() = 0; };
struct S3: S1, S2 {
void f1() { f2(); }
virtual void f2() = 0;
};
struct S4: S3 {
void f2() { std::cout << "called\n"; }
using S2::f1;
};
int main() { S4().f1(); }

View File

@ -1,55 +0,0 @@
#!/usr/bin/env bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5
# Description: Test for BZ#1965951 (Wrong-code regression starting with gcc 8.5)
# Author: Vaclav Kadlcik <vkadlcik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2021 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
GCC="${GCC:-$(type -P gcc)}"
PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1)
PACKAGES="${PACKAGE} ${PACKAGE}-c++"
rlJournalStart
rlPhaseStartSetup
rlLogInfo "PACKAGES=$PACKAGES"
rlRun "dnf -y install $PACKAGES" 0-255
rlAssertRpm --all
rlRun "TmpDir=\$(mktemp -d)"
rlRun "cp reproducer.cc $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun 'g++ -o reproducer reproducer.cc'
rlRun './reproducer'
rlPhaseEnd
rlPhaseStartCleanup
rlRun 'popd'
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,26 +0,0 @@
summary: SystemTap fails to retrieve location attribute for local variable
description: ''
contact: mcermak@redhat.com
component:
- gcc
- systemtap
test: bash ./runtest.sh
framework: beakerlib
require:
- gcc
- systemtap
- kernel-devel
- kernel-headers
duration: 50m
enabled: true
tag:
- CI-Tier-1
- STAP-EWA
- mcu_stap
- mcu_stap_6g
- mcu_stap_7g
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=576287
extra-nitrate: TC#0062256
extra-summary: /tools/gcc/Regression/gcc/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable
extra-task: /tools/gcc/Regression/gcc/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable

View File

@ -1,57 +0,0 @@
#!/bin/bash
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# 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 3 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 rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="gcc"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
kernel_uname="$(uname -a | awk '{ print $3 }')"
kernel_arch="$(uname -a | awk '{ print $12 }')"
echo kernel_arch: $kernel_arch
kernel_version="$(echo ${kernel_uname} | sed 's/-/ /' | awk '{ print $1 }')"
echo kernel_version: $kernel_version
kernel_release="$(echo ${kernel_uname} | sed 's/-/ /' | awk '{ print $2 }' | sed 's/\./ /g' | awk '{ print $1,".",$2 }' | sed 's/ //g')"
echo kernel_release_1: $kernel_release
if $(echo ${kernel_release} | grep -iq PAE); then
kernel_release="$(echo ${kernel_release} | sed 's/PAE//g' | sed 's/pae//g')"
PAE="PAE-"
fi
echo kernel_release_2: $kernel_release
if rlIsRHEL 6; then
arch="${kernel_arch}-"
fi
kernel_debug="http://download.devel.redhat.com/brewroot/packages/kernel/${kernel_version}/${kernel_release}/${kernel_arch}/kernel-${PAE}debuginfo-${kernel_version}-${kernel_release}.${kernel_arch}.rpm"
kernel_debug_common="http://download.devel.redhat.com/brewroot/packages/kernel/${kernel_version}/${kernel_release}/${kernel_arch}/kernel-debuginfo-common-${arch}${kernel_version}-${kernel_release}.${kernel_arch}.rpm"
echo ">>> $kernel_debug $kernel_debug_common"
debuginfo-install -y kernel
rpmquery kernel-debuginfo || rpm -ivh ${kernel_debug} ${kernel_debug_common}
rlPhaseEnd
rlPhaseStartTest opt-O$opt
rlRun "stap -vvvv -p2 -e 'probe kernel.function(\"sig_ignored\") {println($$parms)}' 2>&1 | grep 'variable location problem'" 1 "gcc produced good enough debuginfo w/o 'variable location problem'"
rlPhaseEnd
rlPhaseStartCleanup
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,15 +0,0 @@
template <bool C> int func (void);
template <class T> struct Foo
{
static const unsigned int a = sizeof (T);
//enum { b = a };
enum
{
c = sizeof (func < (a == 0) > ())
};
};
Foo <int> x;

View File

@ -1,28 +0,0 @@
summary: Try to compile a program that has a template parameter with a boolean expression
involving a templated static constant
description: ''
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template
framework: beakerlib
require:
- gcc
- gcc-c++
- file
duration: 5m
enabled: true
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=703059
tag:
- CI-Tier-1
- DTS8-INTEROP-CI
- DTS9-INTEROP-CI
- Tier1
- dts_smoke
- dts_stable
extra-nitrate: TC#0111110
extra-summary: /tools/gcc/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template
extra-task: /tools/gcc/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template

View File

@ -1,54 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template
# Description: Try to compile a program that has a template parameter with a boolean expression involving a templated static constant
# Author: Marek Polacek <mpolacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011, 2012 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
GXX=${GXX:-g++}
rlJournalStart
rlPhaseStartSetup
rlLog "GXX = $GXX"
rlLog "Installed within `rpmquery -f $(which $GXX)`"
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v f.cc $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "$GXX -c f.cc"
rlAssertExists "f.o"
rlRun "file f.o | grep ELF" # Basic obj file sanity check
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,31 +0,0 @@
summary: Check to see if g++ throws unused parameter warnings with standard libraries
with option -Wall
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Regression/unused_parameter_warning
framework: beakerlib
require:
- gcc-c++
- glibc-devel
- libstdc++-devel
recommend:
- gcc44-c++
- glibc-devel.ppc64
- glibc-devel.ppc
- libstdc++43-devel.ppc
- libstdc++44-devel.ppc
- libstdc++-devel.ppc
duration: 10m
enabled: true
tier: '1'
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=201342
tag:
- CI-Tier-1
- Tier1
- dts_stable
extra-nitrate: TC#0062265
extra-summary: /tools/gcc/c++/unused_parameter_warning
extra-task: /tools/gcc/c++/unused_parameter_warning

View File

@ -1,60 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2009, 2012 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# g++ - check for unused parameter warning
# expected exit code is 0
#
# Author: Sachin Prabhu <sprabhu@redhat.com>
# Maintainer: Marek Polacek <polacek@redhat.com>
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(gcc gcc-c++ grep)
GXX=${GXX:-g++}
rlJournalStart
rlPhaseStartSetup
for p in "${PACKAGES[@]}"; do
rlAssertRpm "$p"
done; unset p
rlLog "GXX = $GXX"
rlLog "Installed within `rpmquery -f $(which $GXX)`"
rlRun "TmpDir=\`mktemp -d\`"
rlRun "cp -v test.cpp $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest
rlRun "$GXX -W -Wall -o test.bin test.cpp &> output"
cat output
rlRun "grep -E 'warning:\W+unused\W+parameter' -q output" 1 "'warning: unused parameter' not present"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,2 +0,0 @@
#include <sstream>
int main() {}

View File

@ -1,45 +0,0 @@
summary: Compile a Red Hat RPM package.
description: ''
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Sanity/compile-rpm
framework: beakerlib
require:
- autoconf
- bison
- dejagnu
- elfutils-libelf-devel
- expat-devel
- flex
- gcc
- gdb
- glibc-devel
- grep
- libselinux-devel
- make
- mpfr-devel
- ncurses-devel
- python-devel
- readline-devel
- rpm-build
- rpm-devel
- texinfo
- xz-devel
- yum-utils
- zlib-devel
duration: 240m
adjust:
- require+:
- ncurses-devel.i686
- ncurses-devel.x86_64
when: arch == x86_64
- enabled: false
# Too "heavy" for Fedora CI (for now)
when: distro == fedora and trigger is defined
continue: false
enabled: true
extra-nitrate: TC#0142522
extra-summary: /tools/gcc/Sanity/compile-rpm
extra-task: /tools/gcc/Sanity/compile-rpm

View File

@ -1,99 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Sanity/compile-rpm
# Description: Compile a Red Hat RPM package.
# Author: Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 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
. /usr/share/beakerlib/beakerlib.sh || exit 1
GCC=${GCC:-gcc}
# Set the variabile UNDER_DTS on non-empty string, when run under devtoolset.
if $( echo `which gcc` | grep -qE '/opt/rh/' ); then
UNDER_DTS="true"
# Set the actual version of DTS
DTS=`which gcc | awk 'BEGIN { FS="/" } { print $4 }'`
fi
rlJournalStart
rlPhaseStartSetup
# Work around troubles with buildroot packages being out-of-sync
if rlIsRHEL; then
rlMountRedhat
for i in libipt source-highlight libbabeltrace; do
rpm -q $i &>/dev/null || rlRun "yum -y install $i" 0-255
rpm -q ${i}-devel &>/dev/null || rlRun "yum -y install ${i}-devel" 0-255
d=/mnt/redhat/brewroot/packages/$i
if rpm -q $i &>/dev/null && ! rpm -q ${i}-devel &>/dev/null; then
if [[ -e /mnt/redhat/brewroot/packages/$i ]]; then
d=/mnt/redhat/brewroot/packages/$i
else
d=/mnt/redhat/brewroot/packages/${i#lib}
fi
rlRun "yum -y install $d/$(rpm -q --qf='%{VERSION}/%{RELEASE}/%{ARCH}' $i)/${i}-devel-$(rpm -q --qf='%{VERSION}-%{RELEASE}.%{ARCH}' $i).rpm"
fi
done
fi
rlRun "TmpDir=\$(mktemp -d)"
rlRun "pushd $TmpDir"
if [ -z ${UNDER_DTS} ]; then
rlFetchSrcForInstalled gdb || yumdownloader --source gdb
else
rlFetchSrcForInstalled $DTS-gdb || yumdownloader --source $DTS-gdb
fi
if [ -z ${UNDER_DTS} ]; then
srpm=$(rpmquery gdb --queryformat=%{NAME}-%{VERSION}-%{RELEASE})".src.rpm"
else
srpm=$(rpmquery $DTS-gdb --queryformat=%{NAME}-%{VERSION}-%{RELEASE})".src.rpm"
fi
rlRun "rpm -Uvh $srpm"
spec_dir=$(rpm --eval=%_specdir)
build_dir=$(rpm --eval=%_builddir)
if [ -z ${UNDER_DTS} ]; then
pkg_dir=$(rpmquery gdb} --queryformat=%{NAME}-%{VERSION})
else
pkg_dir=$(rpmquery $DTS-gdb} --queryformat=%{NAME}-%{VERSION})
fi
yum-builddep -y $spec_dir/gdb.spec
rlPhaseEnd
rlPhaseStartTest
rlRun "CC=$GCC rpmbuild -bb $spec_dir/gdb.spec &> BUILD_LOG"
test $? -eq 0 || tail -n 20 BUILD_LOG
rlPhaseEnd
rlPhaseStartCleanup
rlBundleLogs "Build-log" BUILD_LOG
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,34 +0,0 @@
summary: Just runs prebuilt binaries
description: |
Just running prebuilt binaries that require libitm.
This test is designed to run in gcc-libraries CI. we
cannot build anything on our own, since we don't have
devtoolset's gcc and -devel libraries.
This should run OK on RHEL-6 and RHEL-7, currently all
arches.
The sources of the tests are in Sanity/libitm-sanity.
!!! THIS TEST IS INTENTIONALLY NOT IN gcc General PLAN !!!
contact: Michael Petlan <mpetlan@redhat.com>
component:
- gcc
- gcc-libraries
test: bash ./runtest.sh
framework: beakerlib
require:
- gcc
- libitm
recommend:
- gcc-libraries
duration: 5m
enabled: true
tag:
- CI-Tier-1
adjust:
- enabled: false
when: distro == rhel-6 and arch == s390x
continue: false
extra-nitrate: TC#0539542
extra-summary: /tools/gcc/Sanity/libitm-smoke
extra-task: /tools/gcc/Sanity/libitm-smoke

View File

@ -1,75 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Sanity/libitm-smoke
# Description: Just runs prebuilt binaries
# Author: Michael Petlan <mpetlan@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2016 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
# Relevant for any system with libitm binary compatible with the attached
# binaries.
# Suggested TCMS relevancy:
# distro = rhel-6 && arch = s390x: False
PACKAGE="gcc"
REALLY_WANT_TO_RUN="true"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
if [ "$BASEOS_CI" = "true" ]; then
# in CI, we need to be able to skip this testcase
# in case libitm is not a part of gcc-libraries
rlCheckRpm "libitm" || REALLY_WANT_TO_RUN="false"
else
rlCheckRpm "libitm" || rlRun "yum install -y libitm" 0 "Installing missing libitm"
rlAssertRpm "libitm"
fi
TARBALL="bins_`arch`.tar.gz"
if [ ! -f $TARBALL ]; then
rlDie "We do not have binaries for your arch (`arch`)"
fi
rlRun "zcat $TARBALL | tar x"
rlRun "pushd bins"
rlPhaseEnd
if [ "$REALLY_WANT_TO_RUN" = "true" ]; then
rlPhaseStartTest
for i in T_*; do
rlRun "./$i"
done
rlPhaseEnd
else
rlPhaseStartTest
rlPass "SKIPPING THIS TEST -- libitm is probably not shipped within current gcc-libraries"
rlPhaseEnd
fi
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -rf bins" 0 "Removing the stuff we created"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,70 +0,0 @@
summary: Rebuild binutils.
description: ''
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Sanity/rebuild-binutils
framework: beakerlib
require:
- autoconf
- automake
- binutils
- gcc
- glibc
- glibc-devel
- glibc-static
- libstdc++
- libstdc++-devel
- libstdc++-static
- perl
- rpm-build
- sharutils
- texinfo
- yum-utils
- zlib-devel
- zlib-static
recommend:
- glibc-devel.ppc
- glibc-devel.s390
- glibc-static.ppc
- glibc-static.s390
- libgcc.ppc
- libgcc.s390
- libstdc++-devel.ppc
- libstdc++-devel.s390
- libstdc++.ppc
- libstdc++.s390
- libstdc++-static.ppc
- libstdc++-static.s390
- zlib-devel.ppc
- zlib-static.ppc
- dnf-utils
- yum-utils
duration: 3h
enabled: true
adjust:
- require+:
- glibc-devel.i686
- glibc-devel.x86_64
- glibc-static.i686
- glibc-static.x86_64
- libgcc.i686
- libgcc.x86_64
- libstdc++-devel.i686
- libstdc++-devel.x86_64
- libstdc++.i686
- libstdc++.x86_64
- libstdc++-static.i686
- libstdc++-static.x86_64
when: arch == x86_64
- enabled: false
when: distro == rhel-6 and collection is defined
continue: false
- enabled: false
# Too "heavy" for Fedora CI (for now)
when: distro == fedora and trigger is defined
continue: false
extra-nitrate: TC#0147459
extra-summary: /tools/gcc/Sanity/rebuild-binutils
extra-task: /tools/gcc/Sanity/rebuild-binutils

View File

@ -1,89 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Sanity/rebuild-binutils
# Description: Rebuild binutils.
# Author: Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 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
. /usr/share/beakerlib/beakerlib.sh || exit 1
# The test is expected to fail in devtoolset-* on RHEL-6 because of
# the "Unresolvable `R_X86_64_NONE` relocation" family of bugs, e.g.
# https://bugzilla.redhat.com/show_bug.cgi?id=1545386
# They have been fixed for both the base and devtoolset binutils
# on RHEL-7 but on RHEL-6, it was just the base binutils.
GCC=${GCC:-gcc}
# Set the variabile UNDER_DTS on non-empty string, when run under devtoolset.
if $( echo `which gcc` | grep -qE '/opt/rh/' ); then
UNDER_DTS="true"
# Set the actual version of DTS
DTS=`which gcc | awk 'BEGIN { FS="/" } { print $4 }'`
fi
rlJournalStart
rlPhaseStartSetup
rlLog "Using GCC: `rpmquery -f $(which $GCC)`"
rlRun "rpmquery -a | grep -e yum-utils -e dnf-utils" 0 "YUM or DNF utils are installed"
rlRun "TmpDir=\$(mktemp -d)"
rlRun "pushd $TmpDir"
if [ -z ${UNDER_DTS} ]; then
rlFetchSrcForInstalled binutils || yumdownloader --source binutils
srpm=$(find binutils*.src.rpm | tail -n1)
else
rlFetchSrcForInstalled $DTS-binutils || yumdownloader --source $DTS-binutils
srpm=$(find $DTS-binutils*.src.rpm | tail -n1)
fi
rlRun "rpm -Uvh $srpm"
spec_dir=$(rpm --eval=%_specdir)
yum-builddep -y $spec_dir/binutils.spec
rlPhaseEnd
rlPhaseStartTest
if [ "$(uname -i)" == "ppc64" ]; then
if rlIsRHEL 6; then
target='--target=ppc64'
else
target='--target=ppc'
fi
fi
if [ "$(uname -i)" == "i386" ]; then
target='--target=i686'
fi
rlRun "setsebool allow_execmod 1"
rlRun "CC=$GCC rpmbuild -bb $target --clean $spec_dir/binutils.spec &> BUILD_LOG" || ( echo "========== BUILD_LOG tail ==========" ; tail -n 20 BUILD_LOG )
rlRun "setsebool allow_execmod 0"
rlPhaseEnd
rlPhaseStartCleanup
rlBundleLogs "Build-log" BUILD_LOG
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,84 +0,0 @@
description: |
Rebuild current glibc.
summary: Rebuild glibc
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Sanity/rebuild-glibc
framework: beakerlib
require:
- audit-libs-devel
- binutils
- bison
- gcc
- gcc-c++
- gd-devel
- glibc-devel
- glibc-static
- glibc-utils
- libcap-devel
- libgcc
- libpng-devel
- libstdc++
- libstdc++-devel
- libstdc++-static
- libXpm-devel
- nspr-devel
- nss-devel
- nss-softokn-devel
- nss-util-devel
- python3-devel
- rpm-build
- systemtap-sdt-devel
- texinfo
- valgrind
- yum-utils
recommend:
- glibc-devel.ppc
- glibc-devel.s390
- glibc-static.ppc
- glibc-static.s390
- libgcc.ppc
- libgcc.s390
- libstdc++-devel.ppc
- libstdc++-devel.s390
- libstdc++.ppc
- libstdc++.s390
- libstdc++-static.ppc
- libstdc++-static.s390
- dnf-utils
- yum-utils
duration: 18h
enabled: true
tag:
- NoDTS
- rhel8-buildroot
adjust:
- require+:
- glibc-devel.i686
- glibc-devel.x86_64
- glibc-static.i686
- glibc-static.x86_64
- libgcc.i686
- libgcc.x86_64
- libstdc++-devel.i686
- libstdc++-devel.x86_64
- libstdc++.i686
- libstdc++.x86_64
- libstdc++-static.i686
- libstdc++-static.x86_64
when: arch == x86_64
- require-:
- python3-devel
when: distro < rhel-8
- enabled: false
when: collection is defined
continue: false
- enabled: false
# Too "heavy" for Fedora CI (for now)
when: distro == fedora and trigger is defined
continue: false
extra-nitrate: TC#0035677
extra-summary: /tools/gcc/Sanity/rebuild-glibc
extra-task: /tools/gcc/Sanity/rebuild-glibc

View File

@ -1,79 +0,0 @@
#!/bin/bash
# Copyright (c) 2009, 2012 Red Hat, Inc. All rights reserved.
#
# 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 3 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/>.
#
# Author: Michal Nowak <mnowak@redhat.com>
# Rewrite: Marek Polacek <polacek@redhat.com>
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
cpu_good_for_make_check () {
# glibc can create several alternative CPU-specific bits that are selected
# in runtime. However the "make check" phase tries to test all of them and
# fails when testing a more "advanced" binary than the SUT's CPU. In such
# case we'd want to skip "make check" to prevent "rpmbuild" from a certain
# failure.
if rlIsRHEL '>=8' && [[ $(arch) = ppc64le ]] && grep -q 'POWER[2-8]' /proc/cpuinfo; then
rlLogInfo 'RHEL8+ on <POWER9, make check will be skipped'
return 1
fi
return 0
}
GCC=${GCC:-gcc}
rlJournalStart
rlPhaseStartSetup
cpu_good_for_make_check && CHECK_PARAM='' || CHECK_PARAM='--nocheck'
rlRun "rpmquery -a | grep -e yum-utils -e dnf-utils" 0 "YUM or DNF utils are installed"
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
rlRun "pushd $TmpDir"
rlLogInfo "Running kernel: `uname -r`"
rlLogInfo "Installed kernel(s): `rpm -q kernel`"
rlLogInfo "Installed headers: `rpm -q kernel-headers`"
rlFetchSrcForInstalled glibc || yumdownloader --source glibc
srpm=$(find glibc*.src.rpm | tail -n1)
rlRun "rpm -Uvh $srpm"
spec_dir=$(rpm --eval=%_specdir)
yum-builddep -y $spec_dir/glibc.spec
rlPhaseEnd
rlPhaseStartTest
if [ "$(uname -i)" == "ppc64" ]; then
if rlIsRHEL 7 || rlIsRHEL 6; then
target='--target=ppc64'
else
target='--target=ppc'
fi
fi
rlRun "CC=$GCC rpmbuild -bb $target $CHECK_PARAM --clean $spec_dir/glibc.spec &> BUILD_LOG"
test $? -eq 0 || tail -n 20 BUILD_LOG
rlPhaseEnd
rlPhaseStartCleanup
rlBundleLogs "Build-log" BUILD_LOG
rlRun "popd"
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,7 +0,0 @@
int
main (void)
{
char *mem = __builtin_alloca (40);
__builtin___clear_cache (mem, mem + 40);
return 0;
}

View File

@ -1,78 +0,0 @@
template <class T>
class X
{
T p;
public:
template <class U> auto f() -> decltype(+p) { return p; }
};
struct A
{
int i = 42;
};
struct B
{
int i = 42;
B() { }
B(int i): i(i) { }
};
template <class T, T t>
struct C
{
T m = t;
};
template <class T, T t>
struct D
{
T m = t;
D() { }
D(T m):m(m) { }
};
struct complex
{
typedef float value_type;
typedef __complex__ float _ComplexT;
constexpr complex(_ComplexT __z) : _M_value(__z) { }
constexpr complex(float __r = 0.0f, float __i = 0.0f)
: _M_value(__r + __i * 1.0f) { }
private:
_ComplexT _M_value;
};
constexpr complex c1;
int
main (void)
{
X<int>().f<int>();
A a1;
if (a1.i != 42) return 1;
A a2{};
if (a2.i != 42) return 2;
A a3[1];
if (a3[0].i != 42) return 3;
B b1;
if (b1.i != 42) return 3;
B b2 (24);
if (b2.i != 24) return 4;
C<int,3> c1;
if (c1.m != 3) return 5;
C<int,5> c2 {};
if (c2.m != 5) return 6;
D<int,3> d1;
if (d1.m != 3) return 7;
D<int,3> d2 (5) ;
if (d2.m != 5) return 8;
return 0;
}

View File

@ -1,8 +0,0 @@
#include <stdio.h>
int
main (void)
{
puts ("Hello World!");
return 0;
}

View File

@ -1,7 +0,0 @@
#include <iostream>
int
main (void)
{
std::cout << "Hello, world!\n";
}

View File

@ -1,3 +0,0 @@
program hello
print *, "Hello World!"
end program hello

View File

@ -1,41 +0,0 @@
// { dg-options -std=c++0x }
// { dg-do run }
extern "C" void abort();
template <class T>
auto apply (T t) -> decltype (t())
{
return t();
}
template <class T>
void f(T t)
{
T t2 = t;
if (t != [=]()->T { return t; }())
abort ();
if (t != [=] { return t; }())
abort ();
if (t != [=] { return t2; }())
abort ();
if (t != [&] { return t; }())
abort ();
if (t != apply([=]{return t;}))
abort ();
int i;
[&] (int a) { return a+i+t; } (0);
[&] (int a) -> decltype(a) { return a+i+t; } (0);
[&] (int a) -> decltype(i) { return a+i+t; } (0);
[&] (int a) -> decltype(t) { return a+i+t; } (0);
[&] (int a) -> decltype(a+i) { return a+i+t; } (0);
[&] (int a) -> decltype(a+t) { return a+i+t; } (0);
[&] (int a) -> decltype(i+t) { return a+i+t; } (0);
[&] (int a) -> decltype(a+i+t) { return a+i+t; } (0);
}
int main()
{
f(0xbeef);
}

View File

@ -1,58 +0,0 @@
summary: Try -m32 and -m64 options.
description: Try -m32 and -m64 options
contact: mcermak@redhat.com
component:
- gcc
test: bash ./runtest.sh
path: /tests/Sanity/test-m32-m64-options
framework: beakerlib
require:
- gcc
- gcc-c++
- gcc-gfortran
- glibc-devel
- libgfortran
- libgomp
- libstdc++-devel
- libitm
recommend:
- libgfortran5
- libitm-devel
- libquadmath-devel
duration: 20m
enabled: true
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1113429
adjust:
- enabled: false
when: arch == ia64, ppc64, s390, s390x
continue: false
- enabled: false
when: arch == aarch64
continue: false
because: no -m64 nor -m32 there
- require+:
- glibc-devel.x86_64
- glibc-devel.i686
- libgfortran.x86_64
- libgfortran.i686
- libstdc++-devel.x86_64
- libstdc++-devel.i686
- libitm.x86_64
- libitm.i686
- libgomp.x86_64
- libgomp.i686
- libquadmath.x86_64
- libquadmath.i686
when: arch == x86_64
- recommend+:
- libgfortran5.x86_64
- libgfortran5.i686
- libitm-devel.x86_64
- libitm-devel.i686
- libquadmath-devel.x86_64
- libquadmath-devel.i686
when: arch == x86_64
extra-nitrate: TC#0197178
extra-summary: /tools/gcc/Sanity/test-m32-m64-options
extra-task: /tools/gcc/Sanity/test-m32-m64-options

View File

@ -1,24 +0,0 @@
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int
main (void)
{
int th_id;
int nthreads;
#pragma omp parallel private(th_id)
{
th_id = omp_get_thread_num ();
printf ("Hello World from thread %d\n", th_id);
#pragma omp barrier
if (th_id == 0)
{
nthreads = omp_get_num_threads ();
printf ("There are %d threads\n", nthreads);
}
}
return EXIT_SUCCESS;
}

View File

@ -1,38 +0,0 @@
#include <quadmath.h>
#include <stdlib.h>
#include <stdio.h>
int
main (void)
{
__float128 r = strtoflt128 ("1.23456789", NULL);
int prec = 20;
int width = 46;
char buf[128];
r = 2.0q;
r = sqrtq (r);
int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
if ((size_t) n < sizeof buf)
/* Prints: +1.41421356237309504880e+00. */
printf ("%s\n", buf);
quadmath_snprintf (buf, sizeof buf, "%Qa", r);
if ((size_t) n < sizeof buf)
/* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0. */
printf ("%s\n", buf);
n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
if (n > -1)
{
char *str = malloc (n + 1);
if (str)
{
quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
/* Prints: +1.41421356237309504880e+00. */
printf ("%s\n", str);
}
free (str);
}
return 0;
}

View File

@ -1,167 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Sanity/test-m32-m64-options
# Description: Try -m32 and -m64 options.
# Author: Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# In this test, we try to compile and run programs using -m32 and -m64.
# We compile C, C++ and Fortran Hello World programs. Also, there are two
# proglets which are exercising some C++11 features. Furthermore, we try
# -fgnu-tm, -fopenmp options. We also use libquadmath a little bit.
# We call a function from libgcc. We also use the __thread keyword.
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
GCC=${GCC:-$(type -P gcc)}
GCC_RPM_NAME=$(rpm --qf '%{name}' -qf $GCC)
[[ "$GCC_RPM_NAME" == *toolset* ]] && TOOLSET=${GCC_RPM_NAME%-gcc} || TOOLSET=''
if [ -n "`rlGetPrimaryArch`" ]; then
PRI_ARCH=$(rlGetPrimaryArch)
else
PRI_ARCH="$(uname -i)"
fi
# State applicable -m<bits> switches
SWITCHES='-m64 -m32'
case "$PRI_ARCH" in
i686)
SWITCHES=-m32 # just base RHEL-6/i386
;;
ppc64le) # we never had 32 support there
SWITCHES=-m64
;;
aarch64)
# Not only we never had 32-bit support there, GCC on this architecture
# doesn't accept the -m64 switch either. This test isn't applicable
# at all and should be excluded by its relevancy, e.g. in TCMS:
# arch = aarch64: False
exit 1
;;
ppc64|s390x) # 32-bit support present only in system GCC of RHEL <8
if [[ -z "$TOOLSET" ]] && rlIsRHEL '<8'; then
if [[ "$PRI_ARCH" != s390x ]]; then
SWITCHES='-m64 -m32'
else
SWITCHES='-m64 -m31'
fi
else
SWITCHES=-m64
fi
;;
esac
rlJournalStart
rlPhaseStartSetup
rlLogInfo "COLLECTIONS=$COLLECTIONS"
rlLogInfo "GCC=$GCC"
rlLogInfo "SKIP_COLLECTION_METAPACKAGE_CHECK=$SKIP_COLLECTION_METAPACKAGE_CHECK"
# We optionally need to skip checking for the presence of the metapackage
# because that would pull in all the dependent toolset subrpms. We do not
# always want that, especially in CI.
_COLLECTIONS="$COLLECTIONS"
if ! test -z $SKIP_COLLECTION_METAPACKAGE_CHECK; then
for c in $SKIP_COLLECTION_METAPACKAGE_CHECK; do
rlLogInfo "ignoring metapackage check for collection $c"
export COLLECTIONS=$(shopt -s extglob && echo ${COLLECTIONS//$c/})
done
fi
rlLogInfo "(without skipped) COLLECTIONS=$COLLECTIONS"
export COLLECTIONS="$_COLLECTIONS"
rlRun "TmpDir=\$(mktemp -d)"
rlRun "cp -v hello.{c,cpp,f90} tm.c quad.c thr-init-2.c clear_cache.c omphello.c lambda-template.C cpp11.cpp $TmpDir"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartSetup "Showing compiler versions"
for compiler in gcc g++ gfortran; do
rlLogInfo "Version of compiler: $compiler"
eval "$compiler --version 2>&1" | while read line; do
rlLogInfo " $line"
done
done
rlPhaseEnd
for m in $SWITCHES; do
rlPhaseStartTest "Compile and run [$m]"
# Test C
rlRun "gcc $m hello.c -o hello_c"
rlRun ./hello_c
# Test C++
rlRun "g++ $m hello.cpp -o hello_cpp"
rlRun ./hello_cpp
# C++11 features. Not available in system GCC of RHEL-6
if ! rlIsRHEL 6 || [[ -n "$TOOLSET" ]]; then
rlRun "g++ $m -std=c++11 lambda-template.C -o lambda"
rlRun ./lambda
rlRun "g++ $m -std=c++11 cpp11.cpp -o cpp11"
rlRun ./cpp11
fi
# Test Fortran
rlRun "gfortran $m hello.f90 -o hello_fortran"
rlRun "./hello_fortran"
# Test TM. Not available in system GCC of RHEL-6
if ! rlIsRHEL 6 || [[ -n "$TOOLSET" ]]; then
rlRun "gcc $m -O2 -std=gnu99 -fgnu-tm tm.c -o tm"
rlRun ./tm
fi
# Test OpenMP
rlRun "gcc $m omphello.c -O2 -std=gnu99 -fopenmp -o omp"
rlRun ./omp
# Test __thread
rlRun "gcc $m thr-init-2.c -O2 -std=gnu99 -ftls-model=initial-exec -o thr"
rlRun ./thr
# Now test some libquadmath stuff (__float128 support).
if rpm -q ${GCC_RPM_NAME%%gcc}libquadmath-devel &>/dev/null; then
rlRun "gcc $m quad.c -O2 -std=gnu99 -lquadmath -o quad -lm"
rlRun ./quad
fi
# And now something from libgcc, e.g. __builtin___clear_cache.
rlRun "gcc $m clear_cache.c -O2 -std=gnu99 -o cache"
rlRun ./cache
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun popd
rlRun "rm -r $TmpDir"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,20 +0,0 @@
extern void abort() ;
static __thread int fstat ;
static __thread int fstat = 1;
int test_code(int b)
{
fstat += b ;
return fstat;
}
int main (int ac, char *av[])
{
int a = test_code(1);
if ((a != 2) || (fstat != 2))
abort () ;
return 0;
}

View File

@ -1,34 +0,0 @@
extern void *malloc (__SIZE_TYPE__) __attribute__((malloc,transaction_safe));
static int __attribute__((transaction_safe))
something (void)
{
return 0;
}
struct large { int foo[500]; };
int
main (void)
{
int *p;
struct large *lp;
__transaction_atomic {
p = malloc (sizeof (*p) * 100);
lp = malloc (sizeof (*lp) * 100);
/* No instrumentation necessary; P and LP are transaction local. */
p[5] = 123;
lp->foo[66] = 123;
if (something ())
__transaction_cancel;
}
__transaction_relaxed {
++p[5];
}
return ((p[5] == 124) ? 0 : 1);
}

View File

@ -1,5 +0,0 @@
#include <stdio.h>
void hello() {
printf("Hello World\n");
}

View File

@ -1,5 +0,0 @@
#include <iostream>
void hello() {
std::cout << "Hello World\n";
}

View File

@ -1,6 +0,0 @@
void hello();
int main(int argc, char **argv) {
hello();
return 0;
}

View File

@ -1,6 +0,0 @@
void hello();
int main(int argc, char **argv) {
hello();
return 0;
}

View File

@ -1,10 +0,0 @@
summary: Test compiling with the Fedora C/CXX flags.
description: ''
component:
- gcc
test: ./runtest.sh
require:
- annobin-annocheck
- gcc
- gcc-c++
- redhat-rpm-config

View File

@ -1,29 +0,0 @@
#!/bin/bash
set -ex
default_cflags=$(rpm -E '%{build_cflags}')
default_cxxflags=$(rpm -E '%{build_cxxflags}')
default_ldflags=$(rpm -E '%{build_ldflags}')
cflags=$(rpm -D '%toolchain gcc' -E '%{build_cflags}')
cxxflags=$(rpm -D '%toolchain gcc' -E '%{build_cxxflags}')
ldflags=$(rpm -D '%toolchain gcc' -E '%{build_ldflags}')
test "$default_cflags" = "$cflags"
test "$default_cxxflags" = "$cxxflags"
test "$default_ldflags" = "$ldflags"
gcc $cflags -o hello.o -c hello.c
annocheck hello.o
gcc $cflags -o main.o -c main.c
gcc $ldflags -o hello main.o hello.o
annocheck hello
./hello | grep "Hello World"
g++ $cxxflags -o hello-cpp.o -c hello.cpp
annocheck hello-cpp.o
g++ $cxxflags -o main-cpp.o -c main.cpp
g++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o
annocheck hello-cpp
./hello-cpp | grep "Hello World"

View File

@ -1,65 +0,0 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Makefile of /tools/gcc/Sanity/smoke-test
# Description: Basic smoke test.
# Author: Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
export TEST=/tools/gcc/Sanity/smoke-test
export TESTVERSION=1.0
BUILT_FILES=
FILES=$(METADATA) runtest.sh Makefile PURPOSE hello.c hello.f90 hello.cpp tm.c quad.c omphello.c thr-init-2.c clear_cache.c
.PHONY: all install download clean
run: $(FILES) build
./runtest.sh
build: $(BUILT_FILES)
test -x runtest.sh || chmod a+x runtest.sh
clean:
rm -f *~ $(BUILT_FILES)
include /usr/share/rhts/lib/rhts-make.include
$(METADATA): Makefile
@echo "Owner: Marek Polacek <mpolacek@redhat.com>" > $(METADATA)
@echo "Name: $(TEST)" >> $(METADATA)
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
@echo "Path: $(TEST_DIR)" >> $(METADATA)
@echo "Description: Basic smoke test." >> $(METADATA)
@echo "Type: Sanity" >> $(METADATA)
@echo "TestTime: 10m" >> $(METADATA)
@echo "RunFor: gcc" >> $(METADATA)
@echo "RunFor: devtoolset-1.0-gcc" >> $(METADATA)
@echo "Requires: gcc gcc-c++ gcc-gfortran glibc-common glibc-devel" >> $(METADATA)
@echo "Requires: libquadmath libquadmath-devel libgomp libgcc libstdc++-devel" >> $(METADATA)
@echo "Priority: Normal" >> $(METADATA)
@echo "License: GPLv2" >> $(METADATA)
@echo "Confidential: no" >> $(METADATA)
@echo "Destructive: no" >> $(METADATA)
rhts-lint $(METADATA)

View File

@ -1,3 +0,0 @@
PURPOSE of /tools/gcc/Sanity/smoke-test
Description: Basic smoke test.
Author: Marek Polacek <polacek@redhat.com>

View File

@ -1,7 +0,0 @@
int
main (void)
{
char *mem = __builtin_alloca (40);
__builtin___clear_cache (mem, mem + 40);
return 0;
}

View File

@ -1,7 +0,0 @@
#include <stdio.h>
int
main (void)
{
puts ("Hello World!");
}

View File

@ -1,7 +0,0 @@
#include <iostream>
int
main (void)
{
std::cout << "Hello, world!\n";
}

View File

@ -1,3 +0,0 @@
program hello
print *, "Hello World!"
end program hello

View File

@ -1,22 +0,0 @@
summary: Basic smoke test.
description: ''
contact:
- Marek Polacek <mpolacek@redhat.com>
component:
- gcc
test: ./runtest.sh
framework: beakerlib
recommend:
- gcc
- gcc-c++
- gcc-gfortran
- glibc-common
- glibc-devel
- libquadmath
- libquadmath-devel
- libgomp
- libgcc
- libstdc++-devel
duration: 10m
extra-summary: /tools/gcc/Sanity/smoke-test
extra-task: /tools/gcc/Sanity/smoke-test

View File

@ -1,24 +0,0 @@
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
int
main (void)
{
int th_id;
int nthreads;
#pragma omp parallel private(th_id)
{
th_id = omp_get_thread_num ();
printf ("Hello World from thread %d\n", th_id);
#pragma omp barrier
if (th_id == 0)
{
nthreads = omp_get_num_threads ();
printf ("There are %d threads\n", nthreads);
}
}
return EXIT_SUCCESS;
}

View File

@ -1,38 +0,0 @@
#include <quadmath.h>
#include <stdlib.h>
#include <stdio.h>
int
main (void)
{
__float128 r = strtoflt128 ("1.23456789", NULL);
int prec = 20;
int width = 46;
char buf[128];
r = 2.0q;
r = sqrtq (r);
int n = quadmath_snprintf (buf, sizeof buf, "%+-#*.20Qe", width, r);
if ((size_t) n < sizeof buf)
/* Prints: +1.41421356237309504880e+00 */
printf ("%s\n", buf);
quadmath_snprintf (buf, sizeof buf, "%Qa", r);
if ((size_t) n < sizeof buf)
/* Prints: 0x1.6a09e667f3bcc908b2fb1366ea96p+0 */
printf ("%s\n", buf);
n = quadmath_snprintf (NULL, 0, "%+-#46.*Qe", prec, r);
if (n > -1)
{
char *str = malloc (n + 1);
if (str)
{
quadmath_snprintf (str, n + 1, "%+-#46.*Qe", prec, r);
/* Prints: +1.41421356237309504880e+00 */
printf ("%s\n", str);
}
free (str);
}
return 0;
}

View File

@ -1,127 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/gcc/Sanity/smoke-test
# Description: Basic smoke test.
# Author: Marek Polacek <polacek@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2012 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.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# A testing change.
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGES=(gcc gcc-c++ gcc-gfortran glibc-common libgomp libgcc glibc-devel libstdc++ libstdc++-devel)
# Choose the compiler.
GCC=${GCC:-gcc}
GXX=${GXX:-g++}
GFORTRAN=${GFORTRAN:-gfortran}
PACKAGE=gcc
rlJournalStart
rlPhaseStartSetup
export PRI_ARCH=`rlGetPrimaryArch`
export SEC_ARCH=`rlGetSecondaryArch`
# don't assert anything under devtoolset
if type gcc | grep -q -v devtoolset
then
for p in "${PACKAGES[@]}"; do
rpm -q "$p.$PRI_ARCH" || yum install -y "$p.$PRI_ARCH"
rlAssertRpm "$p.$PRI_ARCH"
done; unset p
fi
rlLog "GCC = $GCC"
rlLog "Installed within `rpmquery -f $(which $GCC)`"
rlLog "GXX = $GXX"
rlLog "Installed within `rpmquery -f $(which $GXX)`"
rlLog "GFORTRAN = $GFORTRAN"
rlLog "Installed within `rpmquery -f $(which $GFORTRAN)`"
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
# We need some files.
rlRun "cp -v hello.{c,cpp,f90} tm.c quad.c thr-init-2.c clear_cache.c omphello.c $TmpDir"
rlRun "pushd $TmpDir"
rlRun "rpmquery -l libstdc++-devel.$PRI_ARCH"
test -n "$SEC_ARCH" && rpmquery "libstdc++-devel.$SEC_ARCH" && rlRun "rpmquery -l libstdc++-devel.$SEC_ARCH"
rlPhaseEnd
rlPhaseStartSetup "Showing compiler versions"
for compiler in $GCC $GXX $GFORTRAN
do
rlLog "Version of compiler: $compiler"
eval "$compiler --version 2>&1" | while read line
do
rlLog " $line"
done
done
rlPhaseEnd
rlPhaseStartTest "Compile"
rlRun "$GCC hello.c -o hello_c"
rlRun "$GXX hello.cpp -o hello_cpp"
rlRun "$GFORTRAN hello.f90 -o hello_fortran"
# TM support is GCC >=4.7 only.
$GCC -xc -O2 -std=gnu99 -fgnu-tm - <<< "int main(){}"
if test $? -eq 0; then
rlRun "$GCC -O2 -std=gnu99 -fgnu-tm tm.c -o tm"
rlRun "./tm"
fi
# Test OpenMP.
rlRun "$GCC omphello.c -O2 -std=gnu99 -fopenmp -o omp"
rlRun "./omp"
# Test __thread.
rlRun "$GCC thr-init-2.c -O2 -std=gnu99 -ftls-model=initial-exec -o thr"
rlRun "./thr"
# Now test some libquadmath stuff (__float128 support).
# libquadmath is mising on RHEL machines, usually.
test "`rpmquery --qf '%{version}-%{release}' libquadmath`" = "`rpmquery --qf '%{version}-%{release}' $GCC`"
if test $? -eq 0 -a "$GCC" = "gcc"; then
rlRun "$GCC quad.c -O2 -std=gnu99 -lquadmath -lm -o quad"
rlRun "./quad"
fi
# And now something from libgcc, e.g. __builtin___clear_cache.
# But not on RHEL5.
if ! rlIsRHEL 5; then
rlRun "$GCC clear_cache.c -O2 -std=gnu99 -o cache"
rlRun "./cache"
fi
rlPhaseEnd
rlPhaseStartTest "Check dependant libraries"
rlRun "ldd hello_{c,cpp,fortran} &> ldd.out"
# Nothing should be linked against anything in /opt.
rlAssertNotGrep "/opt" ldd.out
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View File

@ -1,24 +0,0 @@
/* { dg-do run } */
/* { dg-require-effective-target tls_runtime } */
/* { dg-add-options tls } */
extern void abort() ;
static __thread int fstat ;
static __thread int fstat = 1;
int test_code(int b)
{
fstat += b ;
return fstat;
}
int main (int ac, char *av[])
{
int a = test_code(1);
if ((a != 2) || (fstat != 2))
abort () ;
return 0;
}

View File

@ -1,34 +0,0 @@
extern void *malloc (__SIZE_TYPE__) __attribute__((malloc,transaction_safe));
static int __attribute__((transaction_safe))
something (void)
{
return 0;
}
struct large { int foo[500]; };
int
main (void)
{
int *p;
struct large *lp;
__transaction_atomic {
p = malloc (sizeof (*p) * 100);
lp = malloc (sizeof (*lp) * 100);
/* No instrumentation necessary; P and LP are transaction local. */
p[5] = 123;
lp->foo[66] = 123;
if (something ())
__transaction_cancel;
}
__transaction_relaxed {
++p[5];
}
return ( (p[5] == 124) ? 0 : 1 );
}