Import a set of tests from RHEL
This commit is contained in:
parent
e503f00450
commit
23a21fde25
@ -0,0 +1,12 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
int i = 2;
|
||||||
|
if (-10 * abs (i - 1) == 10 * abs (i - 1))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
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: ./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
|
52
tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh
Executable file
52
tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,29 @@
|
|||||||
|
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: ./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
|
@ -0,0 +1,53 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,22 @@
|
|||||||
|
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
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
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: ./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
|
@ -0,0 +1,56 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,29 @@
|
|||||||
|
#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;
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
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: ./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
|
58
tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh
Executable file
58
tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,5 @@
|
|||||||
|
public class foo {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.loadLibrary("foolib");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
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
|
@ -0,0 +1,71 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,32 @@
|
|||||||
|
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: ./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
|
@ -0,0 +1,54 @@
|
|||||||
|
#!/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
|
@ -7,10 +7,21 @@ component:
|
|||||||
- gcc
|
- gcc
|
||||||
test: ./runtest.sh
|
test: ./runtest.sh
|
||||||
framework: beakerlib
|
framework: beakerlib
|
||||||
recommend:
|
require:
|
||||||
- gcc-c++
|
- gcc-c++
|
||||||
duration: 15m
|
duration: 15m
|
||||||
|
enabled: true
|
||||||
|
tag:
|
||||||
|
- CI-Tier-1
|
||||||
link:
|
link:
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1960701
|
- 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-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
|
extra-task: /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2
|
||||||
|
@ -28,6 +28,17 @@
|
|||||||
# Include Beaker environment
|
# Include Beaker environment
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
. /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)}"
|
GCC="${GCC:-$(type -P gcc)}"
|
||||||
PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1)
|
PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1)
|
||||||
PACKAGES="${PACKAGE} ${PACKAGE}-c++"
|
PACKAGES="${PACKAGE} ${PACKAGE}-c++"
|
||||||
@ -35,7 +46,7 @@ PACKAGES="${PACKAGE} ${PACKAGE}-c++"
|
|||||||
rlJournalStart
|
rlJournalStart
|
||||||
rlPhaseStartSetup
|
rlPhaseStartSetup
|
||||||
rlLogInfo "PACKAGES=$PACKAGES"
|
rlLogInfo "PACKAGES=$PACKAGES"
|
||||||
rlRun "dnf -y install $PACKAGES" 0-255
|
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
||||||
rlAssertRpm --all
|
rlAssertRpm --all
|
||||||
rlRun "TmpDir=\$(mktemp -d)"
|
rlRun "TmpDir=\$(mktemp -d)"
|
||||||
rlRun "cp reproducer.cc $TmpDir"
|
rlRun "cp reproducer.cc $TmpDir"
|
||||||
|
@ -0,0 +1,26 @@
|
|||||||
|
summary: SystemTap fails to retrieve location attribute for local variable
|
||||||
|
description: ''
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
- systemtap
|
||||||
|
test: ./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
|
@ -0,0 +1,57 @@
|
|||||||
|
#!/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
|
@ -0,0 +1,15 @@
|
|||||||
|
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;
|
@ -0,0 +1,28 @@
|
|||||||
|
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: ./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
|
@ -0,0 +1,54 @@
|
|||||||
|
#!/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
|
31
tests/Regression/unused_parameter_warning/main.fmf
Normal file
31
tests/Regression/unused_parameter_warning/main.fmf
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
summary: Check to see if g++ throws unused parameter warnings with standard libraries
|
||||||
|
with option -Wall
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
test: ./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
|
60
tests/Regression/unused_parameter_warning/runtest.sh
Executable file
60
tests/Regression/unused_parameter_warning/runtest.sh
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/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
|
2
tests/Regression/unused_parameter_warning/test.cpp
Normal file
2
tests/Regression/unused_parameter_warning/test.cpp
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
#include <sstream>
|
||||||
|
int main() {}
|
45
tests/Sanity/compile-rpm/main.fmf
Normal file
45
tests/Sanity/compile-rpm/main.fmf
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
summary: Compile a Red Hat RPM package.
|
||||||
|
description: ''
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
test: ./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
|
99
tests/Sanity/compile-rpm/runtest.sh
Executable file
99
tests/Sanity/compile-rpm/runtest.sh
Executable file
@ -0,0 +1,99 @@
|
|||||||
|
#!/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
|
BIN
tests/Sanity/libitm-smoke/bins_aarch64.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_aarch64.tar.gz
Normal file
Binary file not shown.
BIN
tests/Sanity/libitm-smoke/bins_i686.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_i686.tar.gz
Normal file
Binary file not shown.
BIN
tests/Sanity/libitm-smoke/bins_ppc64.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_ppc64.tar.gz
Normal file
Binary file not shown.
BIN
tests/Sanity/libitm-smoke/bins_ppc64le.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_ppc64le.tar.gz
Normal file
Binary file not shown.
BIN
tests/Sanity/libitm-smoke/bins_s390x.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_s390x.tar.gz
Normal file
Binary file not shown.
BIN
tests/Sanity/libitm-smoke/bins_x86_64.tar.gz
Normal file
BIN
tests/Sanity/libitm-smoke/bins_x86_64.tar.gz
Normal file
Binary file not shown.
34
tests/Sanity/libitm-smoke/main.fmf
Normal file
34
tests/Sanity/libitm-smoke/main.fmf
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
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: ./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
|
75
tests/Sanity/libitm-smoke/runtest.sh
Executable file
75
tests/Sanity/libitm-smoke/runtest.sh
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
#!/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
|
70
tests/Sanity/rebuild-binutils/main.fmf
Normal file
70
tests/Sanity/rebuild-binutils/main.fmf
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
summary: Rebuild binutils.
|
||||||
|
description: ''
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
test: ./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
|
89
tests/Sanity/rebuild-binutils/runtest.sh
Executable file
89
tests/Sanity/rebuild-binutils/runtest.sh
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
#!/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
|
76
tests/Sanity/rebuild-glibc/main.fmf
Normal file
76
tests/Sanity/rebuild-glibc/main.fmf
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
description: |
|
||||||
|
Rebuild current glibc.
|
||||||
|
summary: Rebuild glibc
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
test: ./runtest.sh
|
||||||
|
path: /tests/Sanity/rebuild-glibc
|
||||||
|
framework: beakerlib
|
||||||
|
require:
|
||||||
|
- audit-libs-devel
|
||||||
|
- binutils
|
||||||
|
- gcc
|
||||||
|
- 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
|
||||||
|
- rpm-build
|
||||||
|
- systemtap-sdt-devel
|
||||||
|
- 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
|
||||||
|
- 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
|
79
tests/Sanity/rebuild-glibc/runtest.sh
Executable file
79
tests/Sanity/rebuild-glibc/runtest.sh
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/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
|
7
tests/Sanity/test-m32-m64-options/clear_cache.c
Normal file
7
tests/Sanity/test-m32-m64-options/clear_cache.c
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
char *mem = __builtin_alloca (40);
|
||||||
|
__builtin___clear_cache (mem, mem + 40);
|
||||||
|
return 0;
|
||||||
|
}
|
78
tests/Sanity/test-m32-m64-options/cpp11.cpp
Normal file
78
tests/Sanity/test-m32-m64-options/cpp11.cpp
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
template <class T>
|
||||||
|
class X
|
||||||
|
{
|
||||||
|
T p;
|
||||||
|
public:
|
||||||
|
template <class U> auto f() -> decltype(+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;
|
||||||
|
}
|
8
tests/Sanity/test-m32-m64-options/hello.c
Normal file
8
tests/Sanity/test-m32-m64-options/hello.c
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
puts ("Hello World!");
|
||||||
|
return 0;
|
||||||
|
}
|
7
tests/Sanity/test-m32-m64-options/hello.cpp
Normal file
7
tests/Sanity/test-m32-m64-options/hello.cpp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
std::cout << "Hello, world!\n";
|
||||||
|
}
|
3
tests/Sanity/test-m32-m64-options/hello.f90
Normal file
3
tests/Sanity/test-m32-m64-options/hello.f90
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
program hello
|
||||||
|
print *, "Hello World!"
|
||||||
|
end program hello
|
41
tests/Sanity/test-m32-m64-options/lambda-template.C
Normal file
41
tests/Sanity/test-m32-m64-options/lambda-template.C
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// { 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>
|
||||||
|
T 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);
|
||||||
|
}
|
51
tests/Sanity/test-m32-m64-options/main.fmf
Normal file
51
tests/Sanity/test-m32-m64-options/main.fmf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
summary: Try -m32 and -m64 options.
|
||||||
|
description: ''
|
||||||
|
contact: mcermak@redhat.com
|
||||||
|
component:
|
||||||
|
- gcc
|
||||||
|
test: ./runtest.sh
|
||||||
|
path: /tests/Sanity/test-m32-m64-options
|
||||||
|
framework: beakerlib
|
||||||
|
require:
|
||||||
|
- gcc
|
||||||
|
- gcc-c++
|
||||||
|
- gcc-gfortran
|
||||||
|
- glibc-common
|
||||||
|
- libgcc
|
||||||
|
- libgomp
|
||||||
|
- libgfortran
|
||||||
|
- libstdc++
|
||||||
|
- libstdc++-devel
|
||||||
|
- glibc-devel
|
||||||
|
- libitm
|
||||||
|
recommend:
|
||||||
|
- libgfortran44.i686
|
||||||
|
- libgfortran44.x86_64
|
||||||
|
- libgfortran4.i686
|
||||||
|
- libgfortran4.x86_64
|
||||||
|
duration: 10m
|
||||||
|
enabled: true
|
||||||
|
link:
|
||||||
|
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1113429
|
||||||
|
adjust:
|
||||||
|
- enabled: false
|
||||||
|
when: arch == ia64, ppc64, s390, s390x
|
||||||
|
continue: false
|
||||||
|
- require+:
|
||||||
|
- glibc-devel.i686
|
||||||
|
- glibc-devel.x86_64
|
||||||
|
- libgcc.i686
|
||||||
|
- libgcc.x86_64
|
||||||
|
- libgfortran.i686
|
||||||
|
- libgfortran.x86_64
|
||||||
|
- libgomp.i686
|
||||||
|
- libgomp.x86_64
|
||||||
|
- libitm.i686
|
||||||
|
- libitm.x86_64
|
||||||
|
- libstdc++.i686
|
||||||
|
- libstdc++.x86_64
|
||||||
|
when: arch == x86_64
|
||||||
|
continue: false
|
||||||
|
extra-nitrate: TC#0197178
|
||||||
|
extra-summary: /tools/gcc/Sanity/test-m32-m64-options
|
||||||
|
extra-task: /tools/gcc/Sanity/test-m32-m64-options
|
24
tests/Sanity/test-m32-m64-options/omphello.c
Normal file
24
tests/Sanity/test-m32-m64-options/omphello.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#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;
|
||||||
|
}
|
38
tests/Sanity/test-m32-m64-options/quad.c
Normal file
38
tests/Sanity/test-m32-m64-options/quad.c
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#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;
|
||||||
|
}
|
213
tests/Sanity/test-m32-m64-options/runtest.sh
Executable file
213
tests/Sanity/test-m32-m64-options/runtest.sh
Executable file
@ -0,0 +1,213 @@
|
|||||||
|
#!/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.
|
||||||
|
#
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
# This is for Toolset.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
# Everything should be ok when running under e.g.:
|
||||||
|
# scl enable devtoolset-1.0 bash
|
||||||
|
# Note, that gfortran is not a part of 1.0 release.
|
||||||
|
|
||||||
|
# Include Beaker environment
|
||||||
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
||||||
|
|
||||||
|
PACKAGES=(gcc gcc-c++ gcc-gfortran glibc-common libgcc libgomp libgfortran glibc-devel libitm)
|
||||||
|
|
||||||
|
PACKAGES_X86_64=(libgomp libgfortran glibc-devel libgcc libitm)
|
||||||
|
|
||||||
|
# Choose the compiler.
|
||||||
|
GCC=${GCC:-gcc}
|
||||||
|
GXX=${GXX:-g++}
|
||||||
|
GFORTRAN=${GFORTRAN:-gfortran}
|
||||||
|
|
||||||
|
PACKAGE=$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
|
||||||
|
for p in "${PACKAGES[@]}"; do
|
||||||
|
rpm -q "$p" || yum install -y $p
|
||||||
|
rlAssertRpm "$p"
|
||||||
|
done; unset p
|
||||||
|
yum update -y libitm # this is a hack, since libitm is a troublemaker
|
||||||
|
if [ -n "`rlGetSecondaryArch`" ]; then
|
||||||
|
rlCheckRpm "libitm.`rlGetSecondaryArch`" || yum install -y libitm.`rlGetSecondaryArch`
|
||||||
|
rlAssertRpm "libitm.`rlGetSecondaryArch`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rlCheckRpm "libstdc++-devel.`rlGetPrimaryArch`" || yum install -y libstdc++-devel.`rlGetPrimaryArch`
|
||||||
|
rlAssertRpm "libstdc++-devel.`rlGetPrimaryArch`"
|
||||||
|
# RHEL-8 CI debugging hack (to be removed when not needed):
|
||||||
|
rlRun "rpmquery -l libstdc++-devel.`rlGetPrimaryArch` | grep -e bits/c++config"
|
||||||
|
rlRun "rpmquery -l libstdc++-devel.`rlGetPrimaryArch` | grep -e iostream"
|
||||||
|
|
||||||
|
if [ -n "`rlGetSecondaryArch`" ]; then
|
||||||
|
rlCheckRpm "libitm.`rlGetSecondaryArch`" || yum install -y libitm.`rlGetSecondaryArch`
|
||||||
|
rlAssertRpm "libitm.`rlGetSecondaryArch`"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -z ${UNDER_DTS} ]; then
|
||||||
|
rlCheckRpm "$DTS-libstdc++-devel" || yum install -y $DTS-libstdc++-devel
|
||||||
|
rlAssertRpm "$DTS-libstdc++-devel"
|
||||||
|
if [ "`arch`" = 'x86_64' ]; then
|
||||||
|
rlCheckRpm "$DTS-libquadmath-devel" || yum install -y $DTS-libquadmath-devel
|
||||||
|
rlAssertRpm "$DTS-libquadmath-devel"
|
||||||
|
fi
|
||||||
|
if rlIsRHEL '<=7'; then # no libgfortran[45] on RHEL8+
|
||||||
|
rlCheckRpm "libgfortran4" || yum install -y libgfortran4
|
||||||
|
if [ -n "`rlGetSecondaryArch`" ]; then
|
||||||
|
rlCheckRpm "libgfortran4.`rlGetSecondaryArch`" || yum install -y libgfortran4.`rlGetSecondaryArch`
|
||||||
|
rlAssertRpm "libgfortran4.`rlGetSecondaryArch`"
|
||||||
|
fi
|
||||||
|
rlCheckRpm "libgfortran5" || yum install -y libgfortran5
|
||||||
|
rlAssertRpm "libgfortran5" && yum -y update libgfortran5
|
||||||
|
if [ -n "`rlGetSecondaryArch`" ]; then
|
||||||
|
rlCheckRpm "libgfortran5.`rlGetSecondaryArch`" || yum install -y libgfortran5.`rlGetSecondaryArch`
|
||||||
|
rlAssertRpm "libgfortran5.`rlGetSecondaryArch`"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check whether on rhel6 x86_64 i686-packages are installed too.
|
||||||
|
# On rhel5 i386-packages should be already installed.
|
||||||
|
if [ "$(uname -i)" == "x86_64" ]; then
|
||||||
|
for pack in "${PACKAGES_X86_64[@]}"; do
|
||||||
|
rpm -q ${pack}.i?86 || yum install -y ${pack}.i?86
|
||||||
|
done; unset pack
|
||||||
|
|
||||||
|
if [ ! -z ${UNDER_DTS} ]; then
|
||||||
|
yum install -y $DTS-libstdc++-devel.i?86
|
||||||
|
yum install -y $DTS-libquadmath-devel.i?86
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
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 lambda-template.C cpp11.cpp $TmpDir"
|
||||||
|
rlRun "pushd $TmpDir"
|
||||||
|
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
|
||||||
|
|
||||||
|
ARCH="$(uname -i)"
|
||||||
|
case "$ARCH" in
|
||||||
|
"aarch64") export SWITCHES="-mlittle-endian" # we don't have -m64, so let's use some dummy switch that is enabled by default
|
||||||
|
;;
|
||||||
|
"i386") export SWITCHES="-m32"
|
||||||
|
;;
|
||||||
|
"ppc64") export SWITCHES="-m32 -m64"
|
||||||
|
;;
|
||||||
|
"ppc64le") export SWITCHES="-m64"
|
||||||
|
;;
|
||||||
|
"s390x") export SWITCHES="-m31 -m64"
|
||||||
|
;;
|
||||||
|
"x86_64") export SWITCHES="-m32 -m64"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Always try both -m32 and -m64.
|
||||||
|
for m in $SWITCHES; do
|
||||||
|
rlPhaseStartTest "Compile and run [$m]"
|
||||||
|
rlRun "$GCC $m hello.c -o hello_c"
|
||||||
|
rlRun "./hello_c"
|
||||||
|
|
||||||
|
rlRun "$GXX $m hello.cpp -o hello_cpp"
|
||||||
|
rlRun "./hello_cpp"
|
||||||
|
|
||||||
|
# Now try a few C++11 features.
|
||||||
|
$GXX -xc++ -std=c++11 - <<< "int main(){}"
|
||||||
|
if test $? -eq 0; then
|
||||||
|
rlRun "$GXX $m -std=c++11 lambda-template.C -o lambda"
|
||||||
|
rlRun "./lambda"
|
||||||
|
|
||||||
|
rlRun "$GXX $m -std=c++11 cpp11.cpp -o cpp11"
|
||||||
|
rlRun "./cpp11"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rlRun "$GFORTRAN $m hello.f90 -o hello_fortran"
|
||||||
|
rlRun "./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 $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).
|
||||||
|
# libquadmath is mising on RHEL machines, usually.
|
||||||
|
# But with DTS, this should be available.
|
||||||
|
if [ ! -z ${UNDER_DTS} ]; then
|
||||||
|
if [ "`arch`" = 'x86_64' ]; then
|
||||||
|
rlRun "$GCC $m quad.c -O2 -std=gnu99 -lquadmath -o quad -lm"
|
||||||
|
rlRun "./quad"
|
||||||
|
else
|
||||||
|
rlLog "quadmath test skipped (needs x86_64)"
|
||||||
|
fi
|
||||||
|
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; unset m
|
||||||
|
|
||||||
|
rlPhaseStartCleanup
|
||||||
|
rlRun "popd"
|
||||||
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
||||||
|
rlPhaseEnd
|
||||||
|
rlJournalPrintText
|
||||||
|
rlJournalEnd
|
20
tests/Sanity/test-m32-m64-options/thr-init-2.c
Normal file
20
tests/Sanity/test-m32-m64-options/thr-init-2.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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;
|
||||||
|
}
|
34
tests/Sanity/test-m32-m64-options/tm.c
Normal file
34
tests/Sanity/test-m32-m64-options/tm.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
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);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user