#26 Please do not merge
Closed 2 years ago by vkadlcik. Opened 2 years ago by vkadlcik.
Unknown source rawhide  into  rawhide

@@ -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

@@ -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

@@ -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 @@

  - 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 @@

  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

@@ -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

@@ -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

@@ -0,0 +1,2 @@

+ #include <sstream>

+ int main() {}

@@ -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

@@ -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

empty or binary file added
empty or binary file added
empty or binary file added
empty or binary file added
empty or binary file added
empty or binary file added
@@ -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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -0,0 +1,7 @@

+ int

+ main (void)

+ {

+   char *mem = __builtin_alloca (40);

+   __builtin___clear_cache (mem, mem + 40);

+   return 0;

+ }

@@ -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;

+ }

@@ -0,0 +1,8 @@

+ #include <stdio.h>

+ 

+ int

+ main (void)

+ {

+   puts ("Hello World!");

+   return 0;

+ }

@@ -0,0 +1,7 @@

+ #include <iostream>

+ 

+ int

+ main (void)

+ {

+  std::cout << "Hello, world!\n";

+ }

@@ -0,0 +1,3 @@

+        program hello

+           print *, "Hello World!"

+        end program hello

@@ -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);

+ }

@@ -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

@@ -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;

+ }

@@ -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;

+ }

@@ -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

@@ -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;

+ }

@@ -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);

+ }

Preliminary attempt to upstream some RHEL tests. At the moment
my focus is just on how they will look like in Fedora CI, not merging them.

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

1 new commit added

  • Make 32-bit test requirements on x86_64 more precise
2 years ago

Build succeeded.

Pull-Request has been closed by vkadlcik

2 years ago
Metadata
Changes Summary 52
+12
file added
tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/abs.c
+26
file added
tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/main.fmf
+52
file added
tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh
+29
file added
tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/main.fmf
+53
file added
tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/runtest.sh
+22
file added
tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/abc.f90
+38
file added
tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/main.fmf
+56
file added
tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/runtest.sh
+29
file added
tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/builtin.c
+33
file added
tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/main.fmf
+58
file added
tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh
+5
file added
tests/Regression/537941-libltdl-may-load-library-in-current-directory/foo.java
+39
file added
tests/Regression/537941-libltdl-may-load-library-in-current-directory/main.fmf
+71
file added
tests/Regression/537941-libltdl-may-load-library-in-current-directory/runtest.sh
+32
file added
tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/main.fmf
+54
file added
tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/runtest.sh
+12 -1
file changed
tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/main.fmf
+12 -1
file changed
tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/runtest.sh
+26
file added
tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/main.fmf
+57
file added
tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/runtest.sh
+15
file added
tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/f.cc
+28
file added
tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/main.fmf
+54
file added
tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/runtest.sh
+31
file added
tests/Regression/unused_parameter_warning/main.fmf
+60
file added
tests/Regression/unused_parameter_warning/runtest.sh
+2
file added
tests/Regression/unused_parameter_warning/test.cpp
+45
file added
tests/Sanity/compile-rpm/main.fmf
+99
file added
tests/Sanity/compile-rpm/runtest.sh
+0
file added
tests/Sanity/libitm-smoke/bins_aarch64.tar.gz
+0
file added
tests/Sanity/libitm-smoke/bins_i686.tar.gz
+0
file added
tests/Sanity/libitm-smoke/bins_ppc64.tar.gz
+0
file added
tests/Sanity/libitm-smoke/bins_ppc64le.tar.gz
+0
file added
tests/Sanity/libitm-smoke/bins_s390x.tar.gz
+0
file added
tests/Sanity/libitm-smoke/bins_x86_64.tar.gz
+34
file added
tests/Sanity/libitm-smoke/main.fmf
+75
file added
tests/Sanity/libitm-smoke/runtest.sh
+70
file added
tests/Sanity/rebuild-binutils/main.fmf
+89
file added
tests/Sanity/rebuild-binutils/runtest.sh
+76
file added
tests/Sanity/rebuild-glibc/main.fmf
+79
file added
tests/Sanity/rebuild-glibc/runtest.sh
+7
file added
tests/Sanity/test-m32-m64-options/clear_cache.c
+78
file added
tests/Sanity/test-m32-m64-options/cpp11.cpp
+8
file added
tests/Sanity/test-m32-m64-options/hello.c
+7
file added
tests/Sanity/test-m32-m64-options/hello.cpp
+3
file added
tests/Sanity/test-m32-m64-options/hello.f90
+41
file added
tests/Sanity/test-m32-m64-options/lambda-template.C
+51
file added
tests/Sanity/test-m32-m64-options/main.fmf
+24
file added
tests/Sanity/test-m32-m64-options/omphello.c
+38
file added
tests/Sanity/test-m32-m64-options/quad.c
+213
file added
tests/Sanity/test-m32-m64-options/runtest.sh
+20
file added
tests/Sanity/test-m32-m64-options/thr-init-2.c
+34
file added
tests/Sanity/test-m32-m64-options/tm.c