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
|
||||
test: ./runtest.sh
|
||||
framework: beakerlib
|
||||
recommend:
|
||||
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
|
||||
|
@ -28,6 +28,17 @@
|
||||
# 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++"
|
||||
@ -35,7 +46,7 @@ PACKAGES="${PACKAGE} ${PACKAGE}-c++"
|
||||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlLogInfo "PACKAGES=$PACKAGES"
|
||||
rlRun "dnf -y install $PACKAGES" 0-255
|
||||
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
||||
rlAssertRpm --all
|
||||
rlRun "TmpDir=\$(mktemp -d)"
|
||||
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