From 7afb8ded69596f9c6b122a16d4baa300786aeb2d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 8 May 2023 21:18:00 +0200 Subject: [PATCH 1/3] 12.3.1-1 --- gcc.spec | 105 +++++++++++++++++++++++++++++-- gcc12-libstdc++-docs.patch | 4 +- gcc12-pr107468.patch | 124 ------------------------------------- update-gcc.sh | 2 +- 4 files changed, 102 insertions(+), 133 deletions(-) delete mode 100644 gcc12-pr107468.patch diff --git a/gcc.spec b/gcc.spec index 4877961..aad0b43 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,10 +1,10 @@ -%global DATE 20221121 -%global gitrev b3f5a0d53b84ed27cf00cfa2b9c3e2c78935c07d -%global gcc_version 12.2.1 +%global DATE 20230508 +%global gitrev ee1368149014a803a1835e029794a922f6c132f6 +%global gcc_version 12.3.1 %global gcc_major 12 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 4 +%global gcc_release 1 %global nvptx_tools_gitrev 472b6e78b3ba918d727698f79911360b7c808247 %global newlib_cygwin_gitrev a8526cb52bedabd4d6ba4b227a5185627f871aa1 %global _unpackaged_files_terminate_build 0 @@ -275,7 +275,6 @@ Patch8: gcc12-no-add-needed.patch Patch9: gcc12-Wno-format-security.patch Patch10: gcc12-rh1574936.patch Patch11: gcc12-d-shared-libphobos.patch -Patch12: gcc12-pr107468.patch Patch100: gcc12-fortran-fdec-duplicates.patch Patch101: gcc12-fortran-flogical-as-integer.patch @@ -803,7 +802,6 @@ so that there cannot be any synchronization problems. %patch10 -p0 -b .rh1574936~ %endif %patch11 -p0 -b .d-shared-libphobos~ -%patch12 -p0 -b .pr107468~ %if 0%{?rhel} >= 9 %patch100 -p1 -b .fortran-fdec-duplicates~ @@ -3215,6 +3213,101 @@ end %endif %changelog +* Mon May 8 2023 Jakub Jelinek 12.3.1-1 +- update from releases/gcc-12 branch + - GCC 12.3 release + - PRs analyzer/105784, analyzer/106325, analyzer/106573, analyzer/107345, + eanalyzer/107582, analyzer/107948, analyzer/108704, analyzer/108733, + analyzer/108968, analyzer/109094, bootstrap/90543, bootstrap/106482, + c++/53932, c++/69410, c++/98056, c++/100295, c++/101118, c++/101869, + c++/103081, c++/103871, c++/105406, c++/105481, c++/105593, + c++/105809, c++/105996, c++/106188, c++/106259, c++/106675, + c++/106713, c++/106890, c++/106969, c++/107065, c++/107079, + c++/107154, c++/107163, c++/107179, c++/107280, c++/107310, + c++/107417, c++/107461, c++/107542, c++/107558, c++/107574, + c++/107579, c++/107593, c++/107755, c++/107768, c++/107853, + c++/107864, c++/107938, c++/107939, c++/108099, c++/108104, + c++/108116, c++/108180, c++/108206, c++/108218, c++/108219, + c++/108242, c++/108282, c++/108286, c++/108365, c++/108468, + c++/108474, c++/108550, c++/108566, c++/108597, c++/108607, + c++/108795, c++/108829, c++/108934, c++/108975, c++/108998, + c++/109039, c++/109096, c++/109164, c++/109319, c++/109357, c/98487, + c/105972, c/107127, c/107465, c/108079, c/108880, c/108986, c/109151, + d/104749, d/105659, d/107592, d/108050, d/108055, d/108877, d/109108, + d/109144, debug/106719, debug/108573, debug/108716, debug/108967, + driver/106624, fortran/61615, fortran/85877, fortran/87127, + fortran/95107, fortran/96024, fortran/96025, fortran/99036, + fortran/99982, fortran/102331, fortran/103259, fortran/103506, + fortran/104332, fortran/104554, fortran/106209, fortran/106731, + fortran/106856, fortran/106945, fortran/107576, fortran/107872, + fortran/108010, fortran/108025, fortran/108131, fortran/108349, + fortran/108420, fortran/108421, fortran/108434, fortran/108450, + fortran/108451, fortran/108453, fortran/108501, fortran/108502, + fortran/108527, fortran/108529, fortran/108558, fortran/108609, + fortran/108923, fortran/108937, fortran/109186, fortran/109511, + ipa/105676, ipa/105685, ipa/106124, ipa/107769, ipa/107925, + ipa/107944, ipa/109318, libfortran/108056, libquadmath/87204, + libquadmath/94756, libstdc++/91456, libstdc++/100366, + libstdc++/103387, libstdc++/103755, libstdc++/103934, + libstdc++/105730, libstdc++/106183, libstdc++/106199, + libstdc++/106201, libstdc++/107466, libstdc++/107801, + libstdc++/107814, libstdc++/107850, libstdc++/107852, + libstdc++/108030, libstdc++/108097, libstdc++/108118, + libstdc++/108265, libstdc++/108362, libstdc++/108413, + libstdc++/108554, libstdc++/108636, libstdc++/108952, + libstdc++/109064, libstdc++/109165, libstdc++/109182, + libstdc++/109242, libstdc++/109299, libstdc++/109339, + libstdc++/109703, lto/109263, middle-end/102633, middle-end/106057, + middle-end/106080, middle-end/106190, middle-end/107317, + middle-end/107994, middle-end/108237, middle-end/108264, + middle-end/108435, middle-end/108459, middle-end/108500, + middle-end/108543, middle-end/108546, middle-end/108625, + middle-end/108685, middle-end/108854, other/108560, other/109293, + other/109306, rtl-optimization/106421, rtl-optimization/106751, + rtl-optimization/107482, rtl-optimization/108086, + rtl-optimization/108193, rtl-optimization/108508, + rtl-optimization/108596, rtl-optimization/108681, + rtl-optimization/109585, sanitizer/108060, sanitizer/108834, + sanitizer/109050, target/90458, target/96373, target/98776, + target/100758, target/104921, target/105554, target/105980, + target/106101, target/106736, target/106875, target/107714, + target/107863, target/107987, target/108140, target/108272, + target/108348, target/108396, target/108429, target/108589, + target/108599, target/108699, target/108807, target/108812, + target/108881, target/108910, target/109000, target/109067, + target/109072, target/109137, target/109140, target/109178, + target/109276, target/109478, target/109566, testsuite/108151, + testsuite/108973, testsuite/108985, testsuite/109560, + tree-optimization/96373, tree-optimization/105532, + tree-optimization/106523, tree-optimization/106868, + tree-optimization/106904, tree-optimization/107407, + tree-optimization/107451, tree-optimization/107554, + tree-optimization/107647, tree-optimization/107686, + tree-optimization/107766, tree-optimization/107833, + tree-optimization/107839, tree-optimization/107865, + tree-optimization/107898, tree-optimization/107956, + tree-optimization/107997, tree-optimization/108068, + tree-optimization/108076, tree-optimization/108095, + tree-optimization/108137, tree-optimization/108164, + tree-optimization/108166, tree-optimization/108199, + tree-optimization/108306, tree-optimization/108430, + tree-optimization/108440, tree-optimization/108498, + tree-optimization/108522, tree-optimization/108571, + tree-optimization/108582, tree-optimization/108603, + tree-optimization/108608, tree-optimization/108684, + tree-optimization/108688, tree-optimization/108692, + tree-optimization/108724, tree-optimization/108791, + tree-optimization/108793, tree-optimization/108816, + tree-optimization/108819, tree-optimization/108821, + tree-optimization/108950, tree-optimization/108979, + tree-optimization/109176, tree-optimization/109219, + tree-optimization/109392, tree-optimization/109410, + tree-optimization/109427, tree-optimization/109434, + tree-optimization/109469, tree-optimization/109473, + tree-optimization/109491, tree-optimization/109502, + tree-optimization/109573, tree-optimization/109609, + tree-optimization/109724 + * Mon Nov 21 2022 Jakub Jelinek 12.2.1-4 - update from releases/gcc-12 branch - PRs c++/104066, c++/105774, c++/106829, c++/107358, c/41041, c/106981, diff --git a/gcc12-libstdc++-docs.patch b/gcc12-libstdc++-docs.patch index b6c2d50..5781c12 100644 --- a/gcc12-libstdc++-docs.patch +++ b/gcc12-libstdc++-docs.patch @@ -4,7 +4,7 @@ FSF

-+ Release 12.2.1 ++ Release 12.3.1 +

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation @@ -17,7 +17,7 @@

- The API documentation, rendered into HTML, can be viewed online + The API documentation, rendered into HTML, can be viewed locally -+ for the 12.2.1 release, ++ for the 12.3.1 release, + online for each GCC release and diff --git a/gcc12-pr107468.patch b/gcc12-pr107468.patch deleted file mode 100644 index 0949b11..0000000 --- a/gcc12-pr107468.patch +++ /dev/null @@ -1,124 +0,0 @@ -libstdc++: Update from latest fast_float [PR107468] - -The following patch is a cherry-pick from -https://github.com/fastfloat/fast_float/pull/153 -to restrict fast_float Clinger's fast path to when rounding mode -is FE_TONEAREST. -Using std::fegetround showed in benchmarks too slow, so instead -it uses a check with 2 float additions and comparison to verify -if rounding is FE_TONEAREST. - -2022-11-20 Jakub Jelinek - - PR libstdc++/107468 - * src/c++17/fast_float/fast_float.h (detail::rounds_to_nearest): New - function, taken from https://github.com/fastfloat/fast_float/pull/153. - (from_chars_advanced): Only use Clinger's fast path if - detail::rounds_to_nearest(). - * testsuite/20_util/from_chars/pr107468.cc: New test. - ---- libstdc++-v3/src/c++17/fast_float/fast_float.h.jj 2022-04-28 15:56:18.315632888 +0200 -+++ libstdc++-v3/src/c++17/fast_float/fast_float.h 2022-11-20 18:53:49.570830249 +0100 -@@ -2842,6 +2842,48 @@ from_chars_result parse_infnan(const cha - return answer; - } - -+/** -+ * Returns true if the floating-pointing rounding mode is to 'nearest'. -+ * It is the default on most system. This function is meant to be inexpensive. -+ * Credit : @mwalcott3 -+ */ -+fastfloat_really_inline bool rounds_to_nearest() noexcept { -+ // See -+ // A fast function to check your floating-point rounding mode -+ // https://lemire.me/blog/2022/11/16/a-fast-function-to-check-your-floating-point-rounding-mode/ -+ // -+ // This function is meant to be equivalent to : -+ // prior: #include -+ // return fegetround() == FE_TONEAREST; -+ // However, it is expected to be much faster than the fegetround() -+ // function call. -+ // -+ // The volatile keywoard prevents the compiler from computing the function -+ // at compile-time. -+ // There might be other ways to prevent compile-time optimizations (e.g., asm). -+ // The value does not need to be std::numeric_limits::min(), any small -+ // value so that 1 + x should round to 1 would do (after accounting for excess -+ // precision, as in 387 instructions). -+ static volatile float fmin = std::numeric_limits::min(); -+ float fmini = fmin; // we copy it so that it gets loaded at most once. -+ // -+ // Explanation: -+ // Only when fegetround() == FE_TONEAREST do we have that -+ // fmin + 1.0f == 1.0f - fmin. -+ // -+ // FE_UPWARD: -+ // fmin + 1.0f > 1 -+ // 1.0f - fmin == 1 -+ // -+ // FE_DOWNWARD or FE_TOWARDZERO: -+ // fmin + 1.0f == 1 -+ // 1.0f - fmin < 1 -+ // -+ // Note: This may fail to be accurate if fast-math has been -+ // enabled, as rounding conventions may not apply. -+ return (fmini + 1.0f == 1.0f - fmini); -+} -+ - } // namespace detail - - template -@@ -2870,7 +2912,7 @@ from_chars_result from_chars_advanced(co - answer.ec = std::errc(); // be optimistic - answer.ptr = pns.lastmatch; - // Next is Clinger's fast path. -- if (binary_format::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format::max_exponent_fast_path() && pns.mantissa <=binary_format::max_mantissa_fast_path() && !pns.too_many_digits) { -+ if (binary_format::min_exponent_fast_path() <= pns.exponent && pns.exponent <= binary_format::max_exponent_fast_path() && pns.mantissa <=binary_format::max_mantissa_fast_path() && !pns.too_many_digits && detail::rounds_to_nearest()) { - value = T(pns.mantissa); - if (pns.exponent < 0) { value = value / binary_format::exact_power_of_ten(-pns.exponent); } - else { value = value * binary_format::exact_power_of_ten(pns.exponent); } ---- libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc.jj -+++ libstdc++-v3/testsuite/20_util/from_chars/pr107468.cc -@@ -0,0 +1,42 @@ -+// Copyright (C) 2022 Free Software Foundation, Inc. -+// -+// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -+// any later version. -+ -+// This library 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 library; see the file COPYING3. If not see -+// . -+ -+// { dg-do run { target c++17 } } -+// { dg-add-options ieee } -+ -+#include -+#include -+#include -+#include -+ -+int -+main() -+{ -+ // FP from_char not available otherwise. -+#if __cpp_lib_to_chars >= 201611L \ -+ && _GLIBCXX_USE_C99_FENV_TR1 \ -+ && defined(FE_DOWNWARD) \ -+ && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32) -+ // PR libstdc++/107468 -+ float f; -+ char buf[] = "3.355447e+07"; -+ std::fesetround(FE_DOWNWARD); -+ auto [ptr, ec] = std::from_chars(buf, buf + sizeof(buf) - 1, f, std::chars_format::scientific); -+ VERIFY( ec == std::errc() && ptr == buf + sizeof(buf) - 1 ); -+ VERIFY( f == 33554472.0f ); -+#endif -+} diff --git a/update-gcc.sh b/update-gcc.sh index d34d6ce..9a73b78 100755 --- a/update-gcc.sh +++ b/update-gcc.sh @@ -3,5 +3,5 @@ git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1 d=`date --iso | sed 's/-//g'` -git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-12.2.1-$d/ $1 | xz -9e > gcc-12.2.1-$d.tar.xz +git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-12.3.1-$d/ $1 | xz -9e > gcc-12.3.1-$d.tar.xz rm -rf gcc-dir.tmp From c791a1ad807cf804673808e8f59594f9ee755051 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 8 May 2023 21:48:26 +0200 Subject: [PATCH 2/3] 12.3.1-1 --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a02dee0..dd94dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -80,3 +80,4 @@ /newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz /nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz /gcc-12.2.1-20221121.tar.xz +/gcc-12.3.1-20230508.tar.xz diff --git a/sources b/sources index 4f41efa..27ce190 100644 --- a/sources +++ b/sources @@ -1,4 +1,4 @@ -SHA512 (gcc-12.2.1-20221121.tar.xz) = 6fef1438e77d8b7e7aeddea6d2d6a82c37d2e93f65ad9007f04206e1a368dd70597cef01188de4ee9bbfe1811a129303ce10b49cb9758a2b44abe4f0312d073a +SHA512 (gcc-12.3.1-20230508.tar.xz) = 6e9458f85a081d5ab5bdb4acd988b7c1d877870069d853310e5d64fd678f1420ff6db8c096aeb1a4349de6881949040bcef70b670daa603fdd0e06a7a8e03829 SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95 SHA512 (newlib-cygwin-a8526cb52bedabd4d6ba4b227a5185627f871aa1.tar.xz) = b099246fe4a5d0a372cdaee5da49083df5b2f4440a4e83961600cdf22d37da50c99ce9ae46b769f188a67034ee038cf863260988fc9d594e8e5fb3905a381dec SHA512 (nvptx-tools-472b6e78b3ba918d727698f79911360b7c808247.tar.xz) = 91690321bf96460c3b3e229199a6f752ed1c27c6933d4345dc7e237dc068f604ad211bb3a0373e14d4f332bee05b6227d6933e14e0b475ffdfea8b511ab735e6 From 7a9035cbb4a22f480f718765b5568277025d9790 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Thu, 9 Nov 2023 11:23:01 +0100 Subject: [PATCH 3/3] Move gating tests to a different repo Remove the gating tests from here and use the tests from https://src.fedoraproject.org/tests/gcc There's more of them there, they are are more up-to-date, maintained by RHEL QA staff and re-used in other downstreams (CentOS Stream, RHEL, RHIVOS). --- plans/ci.fmf | 9 +- plans/provide_secondary_arch_rpms.sh | 64 ++++++ .../abs.c | 12 - .../main.fmf | 26 --- .../runtest.sh | 52 ----- .../main.fmf | 29 --- .../runtest.sh | 53 ----- .../abc.f90 | 22 -- .../main.fmf | 38 ---- .../runtest.sh | 56 ----- .../builtin.c | 29 --- .../main.fmf | 33 --- .../runtest.sh | 58 ----- .../foo.java | 5 - .../main.fmf | 39 ---- .../runtest.sh | 71 ------ .../main.fmf | 32 --- .../runtest.sh | 54 ----- .../main.fmf | 12 - .../runtest.sh | 50 ---- .../main.fmf | 17 -- .../runtest.sh | 55 ----- .../x.c | 8 - .../main.fmf | 17 -- .../runtest.sh | 52 ----- .../test.cc | 7 - .../main.fmf | 16 -- .../runtest.sh | 52 ----- .../tst.c | 6 - .../b.gdb | 2 - .../main.fmf | 17 -- .../runtest.sh | 52 ----- .../test.c | 6 - .../main.fmf | 16 -- .../runtest.sh | 56 ----- .../alloc1.f90 | 5 - .../main.fmf | 17 -- .../runtest.sh | 51 ----- .../main.fmf | 17 -- .../runtest.sh | 50 ---- .../main.fmf | 27 --- .../reproducer.cc | 14 -- .../runtest.sh | 66 ------ .../main.fmf | 16 -- .../reproducer.cc | 12 - .../runtest.sh | 55 ----- .../main.fmf | 26 --- .../runtest.sh | 57 ----- .../f.cc | 15 -- .../main.fmf | 28 --- .../runtest.sh | 54 ----- .../unused_parameter_warning/main.fmf | 31 --- .../unused_parameter_warning/runtest.sh | 60 ----- .../unused_parameter_warning/test.cpp | 2 - tests/Sanity/compile-rpm/main.fmf | 45 ---- tests/Sanity/compile-rpm/runtest.sh | 99 -------- tests/Sanity/libitm-smoke/bins_aarch64.tar.gz | Bin 42861 -> 0 bytes tests/Sanity/libitm-smoke/bins_i686.tar.gz | Bin 18165 -> 0 bytes tests/Sanity/libitm-smoke/bins_ppc64.tar.gz | Bin 42218 -> 0 bytes tests/Sanity/libitm-smoke/bins_ppc64le.tar.gz | Bin 41583 -> 0 bytes tests/Sanity/libitm-smoke/bins_s390x.tar.gz | Bin 20507 -> 0 bytes tests/Sanity/libitm-smoke/bins_x86_64.tar.gz | Bin 19693 -> 0 bytes tests/Sanity/libitm-smoke/main.fmf | 34 --- tests/Sanity/libitm-smoke/runtest.sh | 75 ------ tests/Sanity/rebuild-binutils/main.fmf | 70 ------ tests/Sanity/rebuild-binutils/runtest.sh | 89 -------- tests/Sanity/rebuild-glibc/main.fmf | 76 ------- tests/Sanity/rebuild-glibc/runtest.sh | 79 ------- .../Sanity/test-m32-m64-options/clear_cache.c | 7 - tests/Sanity/test-m32-m64-options/cpp11.cpp | 78 ------- tests/Sanity/test-m32-m64-options/hello.c | 8 - tests/Sanity/test-m32-m64-options/hello.cpp | 7 - tests/Sanity/test-m32-m64-options/hello.f90 | 3 - .../test-m32-m64-options/lambda-template.C | 41 ---- tests/Sanity/test-m32-m64-options/main.fmf | 51 ----- tests/Sanity/test-m32-m64-options/omphello.c | 24 -- tests/Sanity/test-m32-m64-options/quad.c | 38 ---- tests/Sanity/test-m32-m64-options/runtest.sh | 213 ------------------ .../Sanity/test-m32-m64-options/thr-init-2.c | 20 -- tests/Sanity/test-m32-m64-options/tm.c | 34 --- tests/fedora-flags/hello.c | 5 - tests/fedora-flags/hello.cpp | 5 - tests/fedora-flags/main.c | 6 - tests/fedora-flags/main.cpp | 6 - tests/fedora-flags/main.fmf | 10 - tests/fedora-flags/runtest.sh | 29 --- tests/smoke-test/Makefile | 65 ------ tests/smoke-test/PURPOSE | 3 - tests/smoke-test/clear_cache.c | 7 - tests/smoke-test/hello.c | 7 - tests/smoke-test/hello.cpp | 7 - tests/smoke-test/hello.f90 | 3 - tests/smoke-test/main.fmf | 22 -- tests/smoke-test/omphello.c | 24 -- tests/smoke-test/quad.c | 38 ---- tests/smoke-test/runtest.sh | 125 ---------- tests/smoke-test/thr-init-2.c | 24 -- tests/smoke-test/tm.c | 34 --- 98 files changed, 72 insertions(+), 3165 deletions(-) create mode 100755 plans/provide_secondary_arch_rpms.sh delete mode 100644 tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/abs.c delete mode 100644 tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/main.fmf delete mode 100755 tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh delete mode 100644 tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/main.fmf delete mode 100755 tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/runtest.sh delete mode 100644 tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/abc.f90 delete mode 100644 tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/main.fmf delete mode 100755 tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/runtest.sh delete mode 100644 tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/builtin.c delete mode 100644 tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/main.fmf delete mode 100755 tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh delete mode 100644 tests/Regression/537941-libltdl-may-load-library-in-current-directory/foo.java delete mode 100644 tests/Regression/537941-libltdl-may-load-library-in-current-directory/main.fmf delete mode 100755 tests/Regression/537941-libltdl-may-load-library-in-current-directory/runtest.sh delete mode 100644 tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/main.fmf delete mode 100755 tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/runtest.sh delete mode 100644 tests/Regression/bz1815504-Regression-in-the-line-information-debug/main.fmf delete mode 100755 tests/Regression/bz1815504-Regression-in-the-line-information-debug/runtest.sh delete mode 100644 tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/main.fmf delete mode 100755 tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/runtest.sh delete mode 100644 tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/x.c delete mode 100644 tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/main.fmf delete mode 100755 tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/runtest.sh delete mode 100644 tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/test.cc delete mode 100644 tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/main.fmf delete mode 100755 tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/runtest.sh delete mode 100644 tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/tst.c delete mode 100644 tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/b.gdb delete mode 100644 tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/main.fmf delete mode 100755 tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/runtest.sh delete mode 100644 tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/test.c delete mode 100644 tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/main.fmf delete mode 100755 tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/runtest.sh delete mode 100644 tests/Regression/bz1927579-libgfortran-seems-to-be-missing/alloc1.f90 delete mode 100644 tests/Regression/bz1927579-libgfortran-seems-to-be-missing/main.fmf delete mode 100755 tests/Regression/bz1927579-libgfortran-seems-to-be-missing/runtest.sh delete mode 100644 tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/main.fmf delete mode 100755 tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/runtest.sh delete mode 100644 tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/main.fmf delete mode 100644 tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/reproducer.cc delete mode 100755 tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/runtest.sh delete mode 100644 tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/main.fmf delete mode 100644 tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/reproducer.cc delete mode 100755 tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/runtest.sh delete mode 100644 tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/main.fmf delete mode 100755 tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/runtest.sh delete mode 100644 tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/f.cc delete mode 100644 tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/main.fmf delete mode 100755 tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/runtest.sh delete mode 100644 tests/Regression/unused_parameter_warning/main.fmf delete mode 100755 tests/Regression/unused_parameter_warning/runtest.sh delete mode 100644 tests/Regression/unused_parameter_warning/test.cpp delete mode 100644 tests/Sanity/compile-rpm/main.fmf delete mode 100755 tests/Sanity/compile-rpm/runtest.sh delete mode 100644 tests/Sanity/libitm-smoke/bins_aarch64.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/bins_i686.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/bins_ppc64.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/bins_ppc64le.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/bins_s390x.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/bins_x86_64.tar.gz delete mode 100644 tests/Sanity/libitm-smoke/main.fmf delete mode 100755 tests/Sanity/libitm-smoke/runtest.sh delete mode 100644 tests/Sanity/rebuild-binutils/main.fmf delete mode 100755 tests/Sanity/rebuild-binutils/runtest.sh delete mode 100644 tests/Sanity/rebuild-glibc/main.fmf delete mode 100755 tests/Sanity/rebuild-glibc/runtest.sh delete mode 100644 tests/Sanity/test-m32-m64-options/clear_cache.c delete mode 100644 tests/Sanity/test-m32-m64-options/cpp11.cpp delete mode 100644 tests/Sanity/test-m32-m64-options/hello.c delete mode 100644 tests/Sanity/test-m32-m64-options/hello.cpp delete mode 100644 tests/Sanity/test-m32-m64-options/hello.f90 delete mode 100644 tests/Sanity/test-m32-m64-options/lambda-template.C delete mode 100644 tests/Sanity/test-m32-m64-options/main.fmf delete mode 100644 tests/Sanity/test-m32-m64-options/omphello.c delete mode 100644 tests/Sanity/test-m32-m64-options/quad.c delete mode 100755 tests/Sanity/test-m32-m64-options/runtest.sh delete mode 100644 tests/Sanity/test-m32-m64-options/thr-init-2.c delete mode 100644 tests/Sanity/test-m32-m64-options/tm.c delete mode 100644 tests/fedora-flags/hello.c delete mode 100644 tests/fedora-flags/hello.cpp delete mode 100644 tests/fedora-flags/main.c delete mode 100644 tests/fedora-flags/main.cpp delete mode 100644 tests/fedora-flags/main.fmf delete mode 100755 tests/fedora-flags/runtest.sh delete mode 100644 tests/smoke-test/Makefile delete mode 100644 tests/smoke-test/PURPOSE delete mode 100644 tests/smoke-test/clear_cache.c delete mode 100644 tests/smoke-test/hello.c delete mode 100644 tests/smoke-test/hello.cpp delete mode 100644 tests/smoke-test/hello.f90 delete mode 100644 tests/smoke-test/main.fmf delete mode 100644 tests/smoke-test/omphello.c delete mode 100644 tests/smoke-test/quad.c delete mode 100755 tests/smoke-test/runtest.sh delete mode 100644 tests/smoke-test/thr-init-2.c delete mode 100644 tests/smoke-test/tm.c diff --git a/plans/ci.fmf b/plans/ci.fmf index 85710d6..b6a344d 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,13 @@ summary: CI Gating Plan discover: how: fmf - directory: tests + url: https://src.fedoraproject.org/tests/gcc.git + filter: 'tag: Fedora-CI-gating' execute: how: tmt +adjust: + - prepare+: + - name: Add secondary architecture RPMs + how: shell + script: ./plans/provide_secondary_arch_rpms.sh + when: arch == x86_64 diff --git a/plans/provide_secondary_arch_rpms.sh b/plans/provide_secondary_arch_rpms.sh new file mode 100755 index 0000000..f26a5ab --- /dev/null +++ b/plans/provide_secondary_arch_rpms.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +# Fedora CI testing systems don't provide a repository with the i686 +# RPMs of the build being tested. As a consequence, most +# dnf install -y .i686 +# commands (whether being run by a test or by TMT's prepare) will probably +# fail on a version mismatch with the present x86_64 gcc RPMs. To prevent +# such failures we provide this script which we recommend to include in every +# Fedora CI test plan. +# +# Implementation notes: +# +# * The gcc build being tested in Fedora CI is given via KOJI_TASK_ID. See +# https://github.com/fedora-ci/dist-git-pipeline/pull/50 for details. +# +# * Currently this script just downloads and installs the i686 RPMs. It +# would not be sufficient for tests that uninstall and reinstall those +# RPMs. If such a test appears, this script should create a repository. +# +# * Fedora CI testing systems seem to have extremely small RAM-based /tmp, +# unable to host all the downloaded RPMs, and no other "real" filesystem +# than "/". That's the reason for using +# mktemp -d --tmpdir=/ + +set -x + +true "V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V-V" + +echo "KOJI_TASK_ID=$KOJI_TASK_ID" + +. /etc/os-release + +echo "ID=$ID" +echo "arch=$(arch)" +echo "KOJI_TASK_ID=$KOJI_TASK_ID" + +if [[ "$ID" = fedora ]] && [[ "$(arch)" = x86_64 ]] && [[ -n "$KOJI_TASK_ID" ]]; then + + if tmpd=$(mktemp -d --tmpdir=/) && pushd "$tmpd"; then + + # Download + rpm -q koji || dnf -y install koji + koji download-task "$KOJI_TASK_ID" --noprogress --arch={x86_64,i686,noarch} + + # Remove conflicting RPMs + rm -f ./*debuginfo* ./*debugsource* + rm -f gcc-[0-9]*.i686.* + rm -f ./*docs*.i686.* + + # Install + ls + dnf -y install ./*.rpm + + # Clean up + # shellcheck disable=SC2164 + popd + rm -rf "$tmpd" + fi + +else + echo "Not applicable" +fi + +true "^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^" diff --git a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/abs.c b/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/abs.c deleted file mode 100644 index 801bda0..0000000 --- a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/abs.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include - -int -main () -{ - int i = 2; - if (-10 * abs (i - 1) == 10 * abs (i - 1)) - return 1; - - return 0; -} diff --git a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/main.fmf b/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/main.fmf deleted file mode 100644 index f31d44e..0000000 --- a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/main.fmf +++ /dev/null @@ -1,26 +0,0 @@ -summary: gcc optimization error for neg number * abs() [extract_muldiv] -description: | - abs() from gcc was broken so it gave wrong results. -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh b/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh deleted file mode 100755 index 695c9fc..0000000 --- a/tests/Regression/394271-gcc-optimization-error-for-neg-number-abs/runtest.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Author: Michal Nowak -# Marek Polacek - -# 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 diff --git a/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/main.fmf b/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/main.fmf deleted file mode 100644 index 35ff67d..0000000 --- a/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/main.fmf +++ /dev/null @@ -1,29 +0,0 @@ -summary: unzip problem with CRC error for src-4.1.0.zip file on s390x -description: | - A customer has been trying to unzip the file src-4.1.0.zip - which is contained libgcj4-src-4.1.0-18.EL4.s390x.rpm. However, - unzip command can't run correctly with the CRC errors - It seems that the src-4.1.0.zip is broken. -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/runtest.sh b/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/runtest.sh deleted file mode 100755 index 62d03df..0000000 --- a/tests/Regression/462397-unzip-problem-with-CRC-error-for-src-4.1.0.zip-file/runtest.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Author: Michal Nowak -# Marek Polacek - -# 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 diff --git a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/abc.f90 b/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/abc.f90 deleted file mode 100644 index c9af75f..0000000 --- a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/abc.f90 +++ /dev/null @@ -1,22 +0,0 @@ - subroutine a - INTEGER*4 a_i - common /block/a_i - a_i = 1 - end subroutine a - subroutine b - INTEGER*4 b_i - common /block/b_i - a_i = 3 - b_i = 2 - end subroutine b - subroutine c - INTEGER*4 a_i - common /block/a_i - if (a_i .ne. 2) call abort - end subroutine c - program abc - call a - call b - call c - end program abc - diff --git a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/main.fmf b/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/main.fmf deleted file mode 100644 index 752caf6..0000000 --- a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/main.fmf +++ /dev/null @@ -1,38 +0,0 @@ -summary: Fortran DW_TAG_common_block has incorrect placement/scope -description: |+ - Problem: gcc-4.3.2 / gfortran-4.3.2 (in the forthcoming tech-preview for - RHEL5.3) appears to also have the "DW_TAG_common_block has incorrect - placement/scope" issues listed in the following gcc upstream bug: - - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37738 - - What gfortran is doing currently is: - - (1) Merges all common blocks into a single one. - (2) Places this single common block into the first subroutine where it was - used. - -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/runtest.sh b/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/runtest.sh deleted file mode 100755 index 741279d..0000000 --- a/tests/Regression/465974-DW_TAG_common_block-has-incorrect-placement-scope/runtest.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Author: Michal Nowak -# Marek Polacek - -# 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 diff --git a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/builtin.c b/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/builtin.c deleted file mode 100644 index 64449ae..0000000 --- a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/builtin.c +++ /dev/null @@ -1,29 +0,0 @@ -#include - -/* 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; -} diff --git a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/main.fmf b/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/main.fmf deleted file mode 100644 index 080f24f..0000000 --- a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/main.fmf +++ /dev/null @@ -1,33 +0,0 @@ -summary: 'Test for bz515799 ([RHEL5] gcc: if more than one -fno-builtin-*)' -description: | - Bug summary: [RHEL5] gcc: if more than one -fno-builtin-* options are specified, only the last one is effective - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=515799 - - This test compiles builtin.c with the flags '-fno-builtin-isascii - -fno-builtin-isalnum'. This program contains a custom isascii() function - that always returns 0. If gcc honors the -fno-builtin-isascii flag, it - will return 0. If not, it will use the built-in isascii() function which - will return 1. -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh b/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh deleted file mode 100755 index 8b38afd..0000000 --- a/tests/Regression/515799-RHEL5-gcc-if-more-than-one-fno-builtin/runtest.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/gcc/515799-RHEL5-gcc-if-more-than-one-fno-builtin -# Description: Test for bz515799 ([RHEL5] gcc: if more than one -fno-builtin-*) -# Author: Jeffrey Bastian -# Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/foo.java b/tests/Regression/537941-libltdl-may-load-library-in-current-directory/foo.java deleted file mode 100644 index bc72835..0000000 --- a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/foo.java +++ /dev/null @@ -1,5 +0,0 @@ -public class foo { - public static void main(String[] args) { - System.loadLibrary("foolib"); - } -} diff --git a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/main.fmf b/tests/Regression/537941-libltdl-may-load-library-in-current-directory/main.fmf deleted file mode 100644 index b121552..0000000 --- a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/main.fmf +++ /dev/null @@ -1,39 +0,0 @@ -summary: 'CVE-2009-3736 libtool: libltdl may load and execute code from a library - in the current directory' -description: | - cat > ~/foo.java <\EOF public class foo { public static void main(String[] args) { System.loadLibrary("foolib"); } } EOF - cd - gcj -C foo.java - cd /tmp - strace -f -v -s1024 gij -cp ~/ foo 2>&1 | grep foolib - - (resp. s/gcj/gcj4/g;s/gij/gij4/ for gcc4 testing). - - If any relative path is seen, it is wrong. Bad examples are - - {lib,}foolib.la - {hwcap,0,nosegneg}/{lib,}foolib.{so,la} -contact: mcermak@redhat.com -component: - - gcc -test: ./runtest.sh -framework: beakerlib -require: - - gcc - - gcc-java - - libgcj - - strace -duration: 5m -enabled: false -tag: - - CI-Tier-1 - - Tier1 -tier: '1' -link: - - relates: https://bugzilla.redhat.com/show_bug.cgi?id=537941 -adjust: - - enabled: true - when: distro == rhel-6 or distro == rhel-5 -extra-nitrate: TC#0062145 -extra-summary: /tools/gcc/Regression/gcj/537941-libltdl-may-load-library-in-current-directory -extra-task: /tools/gcc/Regression/gcj/537941-libltdl-may-load-library-in-current-directory diff --git a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/runtest.sh b/tests/Regression/537941-libltdl-may-load-library-in-current-directory/runtest.sh deleted file mode 100755 index 73e914d..0000000 --- a/tests/Regression/537941-libltdl-may-load-library-in-current-directory/runtest.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2008, 2012 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Author: Michal Nowak -# Marek Polacek - -# 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 diff --git a/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/main.fmf b/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/main.fmf deleted file mode 100644 index 6a60b30..0000000 --- a/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/main.fmf +++ /dev/null @@ -1,32 +0,0 @@ -summary: Test for BZ#1611637 (devtoolset-8-gcc includes avx512vbmi2intrin.h but) -description: | - Bug summary: devtoolset-8-gcc includes avx512vbmi2intrin.h but does not contain it - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1611637 - - The list of intrinsic headers keeps changing every release, sometimes - even on the release branch, and %files needs to be in sync with what has - been changed in gcc/config.gcc. immintrin.h is one of those headers and - this test makes sure that we can #include it. -contact: Vaclav Kadlcik -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 diff --git a/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/runtest.sh b/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/runtest.sh deleted file mode 100755 index 8ff645e..0000000 --- a/tests/Regression/bz1611637-immintrin_h_include_list_does_not_match_release/runtest.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1611637-immintrin_h_include_list_does_not_match_release -# Description: Test for BZ#1611637 (devtoolset-8-gcc includes avx512vbmi2intrin.h but) -# Author: Michael Petlan -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 < -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 diff --git a/tests/Regression/bz1815504-Regression-in-the-line-information-debug/main.fmf b/tests/Regression/bz1815504-Regression-in-the-line-information-debug/main.fmf deleted file mode 100644 index 82cdc4e..0000000 --- a/tests/Regression/bz1815504-Regression-in-the-line-information-debug/main.fmf +++ /dev/null @@ -1,12 +0,0 @@ -summary: Test for BZ#1815504 (Regression in the line information debug) -description: | - Bug summary: Regression in the line information debug information generated by gcc - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1815504 -recommend: -- gcc -- valgrind -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1815504 -extra-summary: /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug -extra-task: /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug diff --git a/tests/Regression/bz1815504-Regression-in-the-line-information-debug/runtest.sh b/tests/Regression/bz1815504-Regression-in-the-line-information-debug/runtest.sh deleted file mode 100755 index 585e76c..0000000 --- a/tests/Regression/bz1815504-Regression-in-the-line-information-debug/runtest.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1815504-Regression-in-the-line-information-debug -# Description: Test for BZ#1815504 (Regression in the line information debug) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "valgrind -q date &> log" 0 - rlAssertNotGrep "Can't handle inlined call info entry with line number" log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/main.fmf b/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/main.fmf deleted file mode 100644 index 1c87a12..0000000 --- a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1852781 (Compiling with -flto and -g removes CET support) -description: | - Bug summary: Compiling with -flto and -g removes CET support - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1852781 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- binutils -duration: 15m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1852781 -extra-summary: /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support -extra-task: /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support diff --git a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/runtest.sh b/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/runtest.sh deleted file mode 100755 index 84cae8f..0000000 --- a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support -# Description: Test for BZ#1852781 (Compiling with -flto and -g removes CET support) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" -TESTPROG="x" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp $TESTPROG.c $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "gcc -flto -c -fcf-protection -g $TESTPROG.c" - rlRun "gcc -flto -Wl,-z,cet-report=error -fcf-protection -g $TESTPROG.o &> log" - rlAssertNotGrep " missing IBT and SHSTK properties" log - rlRun "readelf --wide --notes a.out | grep IBT &> log" - rlAsserGrep "IBT, SHSTK" log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/x.c b/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/x.c deleted file mode 100644 index 64fffec..0000000 --- a/tests/Regression/bz1852781-Compiling-with-flto-and-g-removes-CET-support/x.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int -main () -{ - printf ("hello\n"); - return 0; -} diff --git a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/main.fmf b/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/main.fmf deleted file mode 100644 index 1540389..0000000 --- a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1853900 (typeinfo for stdcodecvt_utf8 not found - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1853900 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gcc-c++ -duration: 10m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1853900 -extra-summary: /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul -extra-task: /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul diff --git a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/runtest.sh b/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/runtest.sh deleted file mode 100755 index a6eb4ed..0000000 --- a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/runtest.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul -# Description: Test for BZ#1853900 (typeinfo for stdcodecvt_utf8 -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" -TESTPROG="test.cc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp $TESTPROG $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "g++ -std=c++17 $TESTPROG &> log" - rlAssertNotGrep "hidden symbol " log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/test.cc b/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/test.cc deleted file mode 100644 index 075633f..0000000 --- a/tests/Regression/bz1853900-typeinfo-for-std-codecvt-utf8-wchar-t-1114111ul/test.cc +++ /dev/null @@ -1,7 +0,0 @@ -#include - -namespace fs = std::filesystem; -int main() { - fs::create_directory("sandbox"); - fs::remove_all("sandbox"); -} diff --git a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/main.fmf b/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/main.fmf deleted file mode 100644 index 8167f92..0000000 --- a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: Test for BZ#1878841 (GOMP_parallel_loop_nonmonotonic_dynamic and) -description: | - Bug summary: GOMP_parallel_loop_nonmonotonic_dynamic and GOMP_loop_nonmonotonic_dynamic_next missing - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1878841 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1878841 -extra-summary: /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and -extra-task: /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and diff --git a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/runtest.sh b/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/runtest.sh deleted file mode 100755 index 83c42ef..0000000 --- a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/runtest.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and -# Description: Test for BZ#1878841 (GOMP_parallel_loop_nonmonotonic_dynamic and) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" -TESTPROG="tst" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp $TESTPROG.c $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "gcc -fopenmp $TESTPROG.c &> log" - rlAssertNotGrep "undefined reference to `GOMP_parallel_loop_nonmonotonic_dynamic`" log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/tst.c b/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/tst.c deleted file mode 100644 index 741559e..0000000 --- a/tests/Regression/bz1878841-GOMP-parallel-loop-nonmonotonic-dynamic-and/tst.c +++ /dev/null @@ -1,6 +0,0 @@ -#include -int main () -{ - #pragma omp parallel for schedule(dynamic) - for (int i = 0; i < 10; i++); -} diff --git a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/b.gdb b/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/b.gdb deleted file mode 100644 index 341301d..0000000 --- a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/b.gdb +++ /dev/null @@ -1,2 +0,0 @@ -info functions foo -q diff --git a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/main.fmf b/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/main.fmf deleted file mode 100644 index 7054cbd..0000000 --- a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1893340 (Variadic arguments are missing from debugging data) -description: | - Bug summary: Variadic arguments are missing from debugging data when building with -flto - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1893340 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gdb -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1893340 -extra-summary: /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data -extra-task: /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data diff --git a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/runtest.sh b/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/runtest.sh deleted file mode 100755 index f2dd2ca..0000000 --- a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/runtest.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data -# Description: Test for BZ#1893340 (Variadic arguments are missing from debugging data) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp test.c b.gdb $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "gcc -fPIC -shared -o libtest.so -O0 -g test.c" - rlRun "gdb -x b.gdb libtest.so > gdb.log" - rlAssertGrep "void foo(int, ...);" gdb.log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/test.c b/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/test.c deleted file mode 100644 index 3de5962..0000000 --- a/tests/Regression/bz1893340-Variadic-arguments-are-missing-from-debugging-data/test.c +++ /dev/null @@ -1,6 +0,0 @@ -#include -void foo(int args, ...) { - va_list ap; - va_start(ap, args); - va_end(ap); -} diff --git a/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/main.fmf b/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/main.fmf deleted file mode 100644 index c1da31b..0000000 --- a/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: Test for BZ#1896093 (Compiling with -flto=auto fails if make is not) -description: | - Bug summary: Compiling with -flto=auto fails if make is not installed - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1896093 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1896093 -extra-summary: /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not -extra-task: /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not diff --git a/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/runtest.sh b/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/runtest.sh deleted file mode 100755 index a23ce5c..0000000 --- a/tests/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not/runtest.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1896093-Compiling-with-flto-auto-fails-if-make-is-not -# Description: Test for BZ#1896093 (Compiling with -flto=auto fails if make is not) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - MAKE_WAS_PRESENT=false - rpm -q make &>/dev/null && MAKE_WAS_PRESENT=true - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "pushd $TmpDir" - rlRun "rpm -e --nodeps make" 0,1 - rlPhaseEnd - - rlPhaseStartTest - echo "void main() { }" | gcc -x c -flto=auto - &> log - rlAssertNotGrep "lto-wrapper: fatal error: execvp: No such file or directory" log - rlPhaseEnd - - rlPhaseStartCleanup - if $MAKE_WAS_PRESENT; then - rpm -q make &>/dev/null || rlRun "yum -y install make" - fi - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/alloc1.f90 b/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/alloc1.f90 deleted file mode 100644 index 8765255..0000000 --- a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/alloc1.f90 +++ /dev/null @@ -1,5 +0,0 @@ -program test_allocated - integer :: i = 4 - real(4), allocatable :: x(:) - if (.not. allocated(x)) allocate(x(i)) -end program test_allocated diff --git a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/main.fmf b/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/main.fmf deleted file mode 100644 index d6b5ead..0000000 --- a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1927579 (libgfortran seems to be missing) -description: | - Bug summary: libgfortran seems to be missing _gfortran_os_error_at - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1927579 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gcc-gfortran -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1927579 -extra-summary: /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing -extra-task: /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing diff --git a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/runtest.sh b/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/runtest.sh deleted file mode 100755 index e635213..0000000 --- a/tests/Regression/bz1927579-libgfortran-seems-to-be-missing/runtest.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1927579-libgfortran-seems-to-be-missing -# Description: Test for BZ#1927579 (libgfortran seems to be missing) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "cp alloc1.f90 $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "gfortran alloc1.f90" &> log - rlAssertNotGrep "alloc1.f90:(.text+0x131): undefined reference" log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/main.fmf b/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/main.fmf deleted file mode 100644 index 4cfef47..0000000 --- a/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1939638 (gcc-toolset-10-libasan-devel depends on the wrong) -description: | - Bug summary: gcc-toolset-10-libasan-devel depends on the wrong libasan - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1939638 -contact: Alexandra Hájková -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- libasan -duration: 5m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1939638 -extra-summary: /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong -extra-task: /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong diff --git a/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/runtest.sh b/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/runtest.sh deleted file mode 100755 index 1d29c6c..0000000 --- a/tests/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong/runtest.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1939638-gcc-toolset-10-libasan-devel-depends-on-the-wrong -# Description: Test for BZ#1939638 (gcc-toolset-10-libasan-devel depends on the wrong) -# Author: Alexandra Hájková -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "echo 'int main () { return 0; }' | gcc -xc -fsanitize=address -" &> log - rlAssertNotGrep "cannot find /usr/lib64/libasan" log - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/main.fmf b/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/main.fmf deleted file mode 100644 index fc2414e..0000000 --- a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/main.fmf +++ /dev/null @@ -1,27 +0,0 @@ -summary: Test for BZ#1960701 (Wrong-code regression starting with gcc 8.2) -description: | - Bug summary: Wrong-code regression starting with gcc 8.2 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1960701 -contact: Vaclav Kadlcik -component: -- gcc -test: ./runtest.sh -framework: beakerlib -require: -- gcc-c++ -duration: 15m -enabled: true -tag: - - CI-Tier-1 -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1960701 -adjust: - - enabled: false - when: distro < rhel-8 and collection is not defined - continue: false - - enabled: false - when: distro ~< rhel-8.5 and collection is not defined - continue: false -extra-nitrate: TC#0610780 -extra-summary: /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2 -extra-task: /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2 diff --git a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/reproducer.cc b/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/reproducer.cc deleted file mode 100644 index 6ebd8e0..0000000 --- a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/reproducer.cc +++ /dev/null @@ -1,14 +0,0 @@ -#include - -struct T { - unsigned a; - float b {8.}; -}; - -int main() -{ - T t = {1}; - std::vector tt = {{1}, {2}}; - if (t.a != 1 || t.b != 8.0f || tt[0].a != 1 || tt[0].b != 8.0f || tt[1].a != 2 || tt[1].b != 8.0f) - __builtin_abort (); -} diff --git a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/runtest.sh b/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/runtest.sh deleted file mode 100755 index 9dd4ea3..0000000 --- a/tests/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2/runtest.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/usr/bin/env bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1960701-Wrong-code-regression-starting-with-gcc-8-2 -# Description: Test for BZ#1960701 (Wrong-code regression starting with gcc 8.2) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -# Notes on relevancy -# -# The test is applicable to GCCs supporting -std=c++17. In practice, -# * any supported toolset GCC -# * system GCC of RHEL 8+; however the respective fix landed in 8.5 -# and isn't planned for backporting. -# -# Suggested TCMS relevancy: -# distro < rhel-8 && collection !defined: False -# distro < rhel-8.5 && collection !defined: False - -GCC="${GCC:-$(type -P gcc)}" -PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1) -PACKAGES="${PACKAGE} ${PACKAGE}-c++" - -rlJournalStart - rlPhaseStartSetup - rlLogInfo "PACKAGES=$PACKAGES" - rlLogInfo "COLLECTIONS=$COLLECTIONS" - rlAssertRpm --all - rlRun "TmpDir=\$(mktemp -d)" - rlRun "cp reproducer.cc $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun 'g++ -o reproducer -Wall -Wextra -std=c++17 reproducer.cc' - rlRun './reproducer' - rlPhaseEnd - - rlPhaseStartCleanup - rlRun 'popd' - rlRun "rm -r $TmpDir" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/main.fmf b/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/main.fmf deleted file mode 100644 index c699de0..0000000 --- a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: Test for BZ#1965951 (Wrong-code regression starting with gcc 8.5) -description: | - Bug summary: Wrong-code regression starting with gcc 8.5 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1965951 -contact: Vaclav Kadlcik -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc-c++ -duration: 15m -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1965951 -extra-summary: /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5 -extra-task: /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5 diff --git a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/reproducer.cc b/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/reproducer.cc deleted file mode 100644 index 40b0c81..0000000 --- a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/reproducer.cc +++ /dev/null @@ -1,12 +0,0 @@ -#include -struct S1 { virtual ~S1() = default; }; -struct S2 { virtual void f1() = 0; }; -struct S3: S1, S2 { - void f1() { f2(); } - virtual void f2() = 0; -}; -struct S4: S3 { - void f2() { std::cout << "called\n"; } - using S2::f1; -}; -int main() { S4().f1(); } diff --git a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/runtest.sh b/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/runtest.sh deleted file mode 100755 index d8d69d0..0000000 --- a/tests/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz1965951-Wrong-code-regression-starting-with-gcc-8-5 -# Description: Test for BZ#1965951 (Wrong-code regression starting with gcc 8.5) -# Author: Vaclav Kadlcik -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -GCC="${GCC:-$(type -P gcc)}" -PACKAGE=$(rpm --qf '%{name}\n' -qf $GCC | head -1) -PACKAGES="${PACKAGE} ${PACKAGE}-c++" - -rlJournalStart - rlPhaseStartSetup - rlLogInfo "PACKAGES=$PACKAGES" - rlRun "dnf -y install $PACKAGES" 0-255 - rlAssertRpm --all - rlRun "TmpDir=\$(mktemp -d)" - rlRun "cp reproducer.cc $TmpDir" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun 'g++ -o reproducer reproducer.cc' - rlRun './reproducer' - rlPhaseEnd - - rlPhaseStartCleanup - rlRun 'popd' - rlRun "rm -r $TmpDir" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/main.fmf b/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/main.fmf deleted file mode 100644 index 5ce67d3..0000000 --- a/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/main.fmf +++ /dev/null @@ -1,26 +0,0 @@ -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 diff --git a/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/runtest.sh b/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/runtest.sh deleted file mode 100755 index 0003300..0000000 --- a/tests/Regression/bz576287-SystemTap-fails-to-retrieve-location-attribute-for-local-variable/runtest.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2010 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include rhts environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="gcc" - -rlJournalStart - rlPhaseStartSetup - rlAssertRpm $PACKAGE - kernel_uname="$(uname -a | awk '{ print $3 }')" - kernel_arch="$(uname -a | awk '{ print $12 }')" - echo kernel_arch: $kernel_arch - kernel_version="$(echo ${kernel_uname} | sed 's/-/ /' | awk '{ print $1 }')" - echo kernel_version: $kernel_version - kernel_release="$(echo ${kernel_uname} | sed 's/-/ /' | awk '{ print $2 }' | sed 's/\./ /g' | awk '{ print $1,".",$2 }' | sed 's/ //g')" - echo kernel_release_1: $kernel_release - if $(echo ${kernel_release} | grep -iq PAE); then - kernel_release="$(echo ${kernel_release} | sed 's/PAE//g' | sed 's/pae//g')" - PAE="PAE-" - fi - echo kernel_release_2: $kernel_release - if rlIsRHEL 6; then - arch="${kernel_arch}-" - fi - kernel_debug="http://download.devel.redhat.com/brewroot/packages/kernel/${kernel_version}/${kernel_release}/${kernel_arch}/kernel-${PAE}debuginfo-${kernel_version}-${kernel_release}.${kernel_arch}.rpm" - kernel_debug_common="http://download.devel.redhat.com/brewroot/packages/kernel/${kernel_version}/${kernel_release}/${kernel_arch}/kernel-debuginfo-common-${arch}${kernel_version}-${kernel_release}.${kernel_arch}.rpm" - echo ">>> $kernel_debug $kernel_debug_common" - debuginfo-install -y kernel - rpmquery kernel-debuginfo || rpm -ivh ${kernel_debug} ${kernel_debug_common} - rlPhaseEnd - - rlPhaseStartTest opt-O$opt - rlRun "stap -vvvv -p2 -e 'probe kernel.function(\"sig_ignored\") {println($$parms)}' 2>&1 | grep 'variable location problem'" 1 "gcc produced good enough debuginfo w/o 'variable location problem'" - rlPhaseEnd - - rlPhaseStartCleanup - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/f.cc b/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/f.cc deleted file mode 100644 index 7b815cd..0000000 --- a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/f.cc +++ /dev/null @@ -1,15 +0,0 @@ -template int func (void); - -template struct Foo -{ - static const unsigned int a = sizeof (T); - - //enum { b = a }; - - enum - { - c = sizeof (func < (a == 0) > ()) - }; -}; - -Foo x; diff --git a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/main.fmf b/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/main.fmf deleted file mode 100644 index 4c38d10..0000000 --- a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/main.fmf +++ /dev/null @@ -1,28 +0,0 @@ -summary: Try to compile a program that has a template parameter with a boolean expression - involving a templated static constant -description: '' -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/runtest.sh b/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/runtest.sh deleted file mode 100755 index 8f50b77..0000000 --- a/tests/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template/runtest.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Regression/bz703059-g-fails-to-compile-a-program-that-has-a-template -# Description: Try to compile a program that has a template parameter with a boolean expression involving a templated static constant -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Regression/unused_parameter_warning/main.fmf b/tests/Regression/unused_parameter_warning/main.fmf deleted file mode 100644 index 7084e32..0000000 --- a/tests/Regression/unused_parameter_warning/main.fmf +++ /dev/null @@ -1,31 +0,0 @@ -summary: Check to see if g++ throws unused parameter warnings with standard libraries - with option -Wall -contact: mcermak@redhat.com -component: - - gcc -test: ./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 diff --git a/tests/Regression/unused_parameter_warning/runtest.sh b/tests/Regression/unused_parameter_warning/runtest.sh deleted file mode 100755 index 4a5d2fb..0000000 --- a/tests/Regression/unused_parameter_warning/runtest.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/rhts-library/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2009, 2012 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# g++ - check for unused parameter warning -# expected exit code is 0 -# -# Author: Sachin Prabhu -# Maintainer: Marek Polacek - - -# 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 diff --git a/tests/Regression/unused_parameter_warning/test.cpp b/tests/Regression/unused_parameter_warning/test.cpp deleted file mode 100644 index 15d375b..0000000 --- a/tests/Regression/unused_parameter_warning/test.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include -int main() {} diff --git a/tests/Sanity/compile-rpm/main.fmf b/tests/Sanity/compile-rpm/main.fmf deleted file mode 100644 index d6c5faa..0000000 --- a/tests/Sanity/compile-rpm/main.fmf +++ /dev/null @@ -1,45 +0,0 @@ -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 diff --git a/tests/Sanity/compile-rpm/runtest.sh b/tests/Sanity/compile-rpm/runtest.sh deleted file mode 100755 index 5f68e75..0000000 --- a/tests/Sanity/compile-rpm/runtest.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Sanity/compile-rpm -# Description: Compile a Red Hat RPM package. -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Sanity/libitm-smoke/bins_aarch64.tar.gz b/tests/Sanity/libitm-smoke/bins_aarch64.tar.gz deleted file mode 100644 index d528f036f9fae1083d76ebd7822044824d7bfa84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42861 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 D5@yui diff --git a/tests/Sanity/libitm-smoke/bins_i686.tar.gz b/tests/Sanity/libitm-smoke/bins_i686.tar.gz deleted file mode 100644 index ce0e948621bf10e7ef81b864afb0eae72729a7a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18165 zcmV($K;yq3iwFQm)%sch1MFN4a8yN}@0m~3_? z8Z@^Hejr;0a{pgushg%c{eIp5*B}4)y5GP5{bMSt>zWp`D;qo%mMqCZ znz1Cuqo#Ub8CjW2a&vMrvvWu;BO@nc33KIK;ePSZ+!XRQx?HTZ+86W&Y7)v_to&;l zD)Ia)v_NoC#uaO0#d@TKKlA7Rw<}6kS}Ya=TUinV zx~Ict&!*HfSLA0i7n{Hq(BG@sIF2dqAQ_4-x&bkn@@y27C{_@zxZh?+yo&HuvdkhQ z4|FeLNeW|#xSu&i`EduuM{Rb*R?6t2I8K&ZDTz>dgvt<|ROXcBHW`D2gVZ)+5#b`G ztn9sz|M`iGJ-^FlN6e$VJf-|rDvzhDaiV!vPUUL<7EoJ=`uG;tR97yp@h_^Wu4`^_ zH`Ti{MVV8UuUfNS>RQz4lI>2Dxl3f)V!|Slrr>Vh{cvaYm$H8 zRKDI+ev1ijHsR|{c!miFO!aq}@Q+RSdnWuF6Ly>GZ#CgX6#IA5dr0A0ijPqF0eUC! zJf_eSn?h-sQvM^z(=$iLHEafZmeO8Xj`|oq`-V`kG2r#%$$OZ#x}sF`2O0xgs+&TA z#){Iyn)v7Ek2*tB)hr3?!IaoUwNRZxt8nFC)K!mE$Prt%4u#2_?fq|zA;4Ohk(>= zt+%?4ttu?kvgpwjZrD(;e6^P0&SE92m!shf%3Vd*g<7T?Unk7qB)(=w|Jmd}TqpC@ zRODgaTG&>LSO;8qujX%?gqeI;zLO|l#iHeJJaca{R)(WW`D;pf!{U7owEy2q`S)f0 z2+r#2$>`&|vi#g*Hv2fMcz=_pGnUeAvyX>7Qd(T5A*GJaLP{;qLrM#j3+Z^q(vZ@d zz5wY2#?q0}!s9_o>uEMp8qrduw4Uc7r5@xXrJfccO=YYY=?q%)ky2;NkkaI-KuQyC zU3kDA`ItI(f1htQW4puWhK7dPdPB*PHIx}XY`?3|n8QOkHo9x*dV9B+gG1M2R6$&x z>ZjX=uE*$tC_8nGV~jEg6`ktk7^4l&0zSwwMjeEDPjz#Q(FYd*cX13Y1o7}s?cf;N z2rdO~;22s7<^yl$7}^OI1DA0OEd|Sf^ErmLf*XK697Ait&A={>p}immbjrywv>0pv zW*kGC!4}}t7l5JF;0`{1j-lOP2OmGj&~mVgkDp__6;;MEyQd`07Cw1;=x+wscfNOP zc))ff*)LTa@sRcf#0wR<1`lJ|W`fq{iMvY&GkRa$;~ngaY@=$!11V(@j4yoH8CgK- zhi_*5@7<-x99&@uhF^|qjsER9Hj?)jvutEy}FytF=~`oEryRR1#k38nR5 zA*T0WE_E$DFfEAOp<~p-t9_kk_q=!mI{9(mp6BQDfe6g+UxYu0&RIKOI`qNSmSeA- z3%P!QMZfL!&`e&JvrJU>IT z`%jo&XXiaPMqWD4wXxsYytoHSi~JpB>?yMdu$Mp&R2!Ld0WW)VVWfbvc5fPdwJ)3u z5leU(e-h0Tka_C5^IXgK*dqVLD^58g>^2s}^e&4$VU(Yut6!k3voBIAWTn))$R@&+ zeRhxwuZ#SK@P~hhcE4-=?HNP2t>e$<{=PS9(FhOB+g+39+4I~9%8J}dH|_}^r^|(} z9J*j_I~%$|=xujV+S1PSw9cY5J6&c|Y8%@7Zx9S0vE1}o^Y6lk=iPO;wyE#K$z5vr zxKE$|=h32Xx}5Mye0{Tub#89b&6seool>X+6_l2cI3~eHN>5UHfLc0$&oMo(Sv2?) zl)@&RCf{?*cgvY&yWKK3#b)cUi1lUTog{)KJn!~ z5-pfiAud)-y337ru)u7@8c%KAiTkqYzM>TRKsb}F&8#prsd@Xj+KH4=_;MkyfYx1- z>xV9A>|S(=w^QIq*_l-6aJJhD9Mi(dYaAYHv13|6pTk-3iX)}qh{Im+vcrZp=TU!m z(7jd`4MRf~XG`*P7WSwm`3VdAnI#!E;&e;OT)Oyn@+!;n8Hzza7RJI?Bb0U0zO>V( zPg7&x$@gC}JtEWBWD461DQqY*U)bJun|(4;`cRP_!uNaF4#Sq4L-7RRc@lqmVW|E9 z?KQD4D+`mIMQJ}_GK<&%)ko8l+hx;bf3Ti0d^#!F$HcmXy~a$6gKaiDt_LWcD(}M{ z4}+oUSzkl>w4BwW-P4rjwMEBysR8?E{rW8$@B0+bQXEH%*bIvEDdtjKN%1y{RTQ^U zY^V4z#h+4qf#NF^-=g?F#j|ohM0WIFx)#uGcA+cVz0{rK%JgL9cycqdTnowrepj(K zB=Q$!E?uY!FL7tOGa$Ugvo!Ojs4&l8l(8_;Sm0|Ax)lpj(7<9v>o73aK09Dw8^`?y z=AH=t90lf{2d3*eiH+yD#=t^_0|uVJ@t}bxa*X#$;7J_!8aPD^phL%#IdmG>A@1L$ z<5Z6K8(3KU&l`9O$EOXF+r?EzaYQGHuT-`L~n`gD;#Cz<>h_;$mpwsP!X|6>t8JSK5EVVIA?uQ8Wp zEBCu77Fxvnr29SQTcYpVRC?dcew|tq-etninEWXJZYqCM8IP03^RB7YHkHuncQ#`ATc_{hDH(!^#OC+@)hD(+Fe3;g$NRx5oN)erT%iS!=AH=de=0lk|7Y zB>$-ie?T#)$WKm+EnjHDt4w%flG@%J=1Yq8GqsxJ4;tOe2)pgaHx3ST?O$*e88n>~kMsICE^EcPl zZlhZiq>*GOMpV;QmKT(+&{nJ|;(jsuerPL-WoB_vIn!2^tX*DEqOD!Ia@~pwt)gIg z$qER@)Z~xN;I1I172UC>pmcSia1-U{NBut1W8`aU=6z@Wdg<0OdFiSewBUUSTw?k8 zic4vj3o53y1irS|8e%`B@i*0LL2sQOp3kTXq4<%!q{Dk>I1*!v;N8s6SDbd5R@u~~k2Zmu z(R71S^{{-yWg4eUak<8pN{?x5PXl-iaUHM2Z%)*0vr;aux)`r0yG^k%y*HOg{%w1O>3b?6vi$dNl5^bq#c2_o6*Z3Dz`x!?;Z&Q%D{oCrO zK9PnRMafngD!jES(5S32Py;z}(NGgYgY-_|(!HggE<%A8`pf5R#kI*Q|^96zs;z6d?oWSXJK!H$J*AuWy^&biLgo&a*NZx2WxM6x1> zxQ2;63FKh+_LE$LJVUdv=y?^+hmxcm?BTK`v7a%I<8B6DfoKu;wb2m8F2F7lP}I;HI2D{|a!w=<@0!u0EZROIlzbyC3t*4X+G9#{KEcFNv~ zQD2qXzo%IAy@I{Ae5AjD02LqbD}uoG|T-`k;8uBG|71^!{v@Ba@a?>sL}K| z^}S6IyA`}M{Cw0AEz{)?-=ml+7)u%_*PuD|oo9U(h7F{o9(fK<;AA=0DXe)O{$emr{QDcr;P= zifMa30#zlJT@p)I;qHK8#qlU9m&iIXcKphwjlU)0ACo*2D?bMX*W(b2azO;wBZ++^ zb*^$r5Cm7m$_6DK1Q#UP!~vNkIUrWa0ZEb^5S!$HjFTLY36cXcUUER}^33*ER&X|+ znG4Rwpw8L&XQpyCzWRKP!4dfo&LjLV9z{ozPs*!%u8V|*^wa&D_*r`o$|Bzy5{K~D zL@H#tvpJg|_;aDi1=9wq=pP?#Za8?bXya zQ0gKlIcp%b4QJhG@w&*n7xWf4?YD-qjmoW}@;;;ZCeb0zs;otaFc%}w(G|}VBdNHc zk7SpAW9UfaZnamBknry5yjQQMwmpPO*2rEx!1P{~7|kvsU6m*;d~{xKVSz4_+Ug}0 zL~wR4TWP-eao#|0b7thsc}|pAxVv9h+l>AZi zQAkPR`Mv?>##UzFKEhGHNAeKZ7w^qf_#W8aN2YVW$KYuB9)qLjdwicWOqymU;Co<# z!vAsf^PwT|B5J53J1E^w>3&K}sCRoQ-AL(iCU_qMOz=JyjDq(OqIY`~+r*(x6C-%cZ*~ix~hs}JAqK?5ZWSD$)(*h|8Z>c$*kkcIK>HpL9H8Tp z12q0393T*cRSpnq6&#>*VZi~ycSq#_^@Ifni2H3R?GAr24v_7!=zZwW| zv4I7@r@_F&)9W<&K!V@nGO*zHv>JRL!SC5;V6lsP(!he>6EU#hp9~uO9C^}Y@N7UL0|yN(_&rhnj^Our3@rFP*(QEZzKP$X2k?8$e4dFWJYA^|d>HKcJv*cP8=P%5 zD0m5_2Nhf@+ZXe84(H11;{{&_=R*C8{6mUqL^yp%Ye_L^SQv+`73Lzf2hpyBT-QQ&u=W9B@2YjoD!k+=3=#0T{aj!&=TG84q1WR3`Iu%0C0 ze;Fss<8ee_o1IG%_VGv@5pJ{DguM;9nTnjs5y9GBY`Zu|1U6m+6?7|d@i-!|{hY}c z=ZN4N<084rq}cipRE`L~-L3YEb42is+h@NxM}(h+*~PnImQy(*usI_nHyB3_91)%S z!OzALa5~;#QSJw~sSWe6HI;X=EM^5FOz=rW8 z;BycgM#=ryM{>ugF>v7BEHU>ZNJjUY z%8iM*AIoS`P9Nib{875WXBi|{{kbCutJ(fJ>lW556MrG!NM5A3zT@i;F3 zYtNPBf27mmh&U4eqxdrOKMs@dVcHKOmQY@aQvOxof2@9I{qGNjKR zibfAV6C2NB`5(aewqUIviT`2ddzkqgX1>S$CcM>ze`3PmcjPPkb9|FuY>(x4xW0UT z2W=;%{5o${Ai-~nTrR4H{%assgQX#O7!R`HJdIyU-6i5_9FcfX{$@vtfqdg5`{b9n|Mf}4)DH!Cy-Bd@I8Kk!ydL4JDj&W?1g;} z8+ZgqDVBXf9swNdtz$fbu`m|K!dMs!-@tH;49D)a`1}vp?C_cPhs7D_lkJzr|7bDs zKVD}e^FQ#tR{0l83ZNSxShxVQKJq2LGc4I z1Q9{9WCrn1+w4xjJVQPkt*fz1D=IDZv)z8|wxzhM>mV9fYb{mOs4KFH^&$Dts9CCn zkUhV9-^W2RN^&?HQv4g*8WI*#ym-0CGi}0O63=6cKhZ$2RE2!fQ}OdI>2E}sj6JL(l+g- z4|2pY>N(VE!fUFNgBNEAR*@h;OM;jz83?1lAdG>?U~E>BGZ^UCtkZa(Q{E4e!9aiK znk?S$OvYfKAG9P52E$@HQZX3lH{oU0DN1q%1NYngS*aNe^s~G!9!JEQ;xQQLe>J;O zGZ=VoY$iP|MVt;iPqz$C&0yd;wS91E27~#d26JDOtS2%U==XVt@R)D1-auq9#>UYT z84UD0#-_nwp#M1DYo9CexQGl!iOFEZV>M2N!Psmv7|G&qOrfs#eQ7Wl&yPAi42I?Z zUsb)Ts^-rA0RU3PfAIJA|4;T$%J~0J$CSwbf9ziF|Bp)XA1o3PZ~y;_|N)3JdwDYd|32Y2#xvU``FD~m^8&gg%lyD|Qu#-cEXS94Rgzzj%SH)u!XeCQmuS%4##Ed18W%d;{lULxap8HgtIY_J=BUYnD`J+nj93xgd zTE;63mf}iiCa>U0!7B_g<4O#-<4P2o+yl!kGStj1GR({^l4JUY=VyU$xWXBC0+BGz zM82WF^MxddUon5)?3t1FJYy^AHRZB<1RcJn5@m(5qDSAk;^GxqvsNhj+yhS_iHLqB zQimADEDA+I^mq{)yh@fAzHw{89Za11}l*U)4M4r;C2-pR#}PDvKWc2GpZ+5d z=>PANU~(8{rElqN4!u(194n|G9lIUYd7;`Wrg~Hg}h^w@bu`#d% z8dW?LMlT))M!744CJ(dT!NUa8;bEXOA=sOT!OdOdVSvBnH6N-B*cG=_XW^{Dy^ z3iOa~Jndm)(3i75>ZwPc<+eSep2l??d0u7PQS^JygHgH|)ZLLCqZ+376#X&WjwmVP zj0d`UdKUDAe0hy4spb&X_Oae!JVXB)w{)>Bp+fJxxyIF9W+U;eM=v1K6ZkLOZfIk? zo~eInnjY0(FWR-%*Ek&8T|CDh4S5dTZ1F-4Q_iS6~%Q>`>pLf!oy?i)z){GlS&sL%(4o;*iEnDO4+&KKx{57j@zolSJb!~WMsJLKh<;q)cxxL_PcP%ZbwSTUxX5Y+F zHKTIP&D4`9xVd`S>NVBH1*@0U@-nNSavAl5g#Q)Ak#lGF=RD`m&%WR}cec|v;>qu( zO@#dhj!C>vxvqytH%i4+t)%+)Lm>%MHTDaepW32urfL$c?=l<$n{6tMu}#z6fjL8a zvrW^7-R2IKy30!4<)!Y5a(8fsyKFl9z0@73b(de|t{^e!u2|>}1}(KRcR>4RciA*| z`7|cnzzXR1EO%h0rN_lT`|&&+sT69vAR!=<*K7)w|8e)E_p(}h^HFj`~T6$g}p9n#(&t- zcw+wlHp%}FTTU|nKYE~||9^oQ|DmEjzW*OKPtpH>xDWjQi0?3x=C9LyInC2)o=5XC zn%C02f#!#3{wdAdXl^yfTLYZ~Xp=aA!x9Hz`|E}I-cOy;Amv9UZZoC8=IllzAQu;V;%4j>qlP2-R`fdi2J{@CLVYGb%h z!|#qQsEBa@`Rx9`K#(s|cpgYg#zVbKkS|eq-bhQHEUhm<--SXR82B4%1R0i>rv&*n zbAME`zPp6u1#STLelf4izbQ^`KwdwX+s>xM+`!vH{blIwV zvr_qfN!En*qdqYXL;=kgkQ{BaIf6?xr=6!*^2=YNIqgC8hpKBs%FW?r%nC%`etb++mQ~)mQh{}7F)J7#$y!bagkV|9oKE_9U;?+i z^~$`GKAXVpbg5If^ko={Bs2p|h`l!E6zK-1ZPT%!V4h3{L~xs?LnDpI6Wpkop&rhT zd?e{|4vLzbb3nhXO^fd*6*&j==MHD_{Yb_+SR6q>NzOT-|5xEk%{ic7xWL8x_Q^O0 z-0!2V)SLtQksU5)tnGN51NxVH(ug&|cwW+bevq?1Ob*V0o^M-*rNKFn-gZ2);^>K- z1M|D(q|Qfze(h4yd+;pb90GClM9u;IqCgVP!QvOte+YUNE9;`;xExcQ{6a8Ieqpnj zTnGK}iArLAVKWUG^3up3vYj?=&}rZoGSjI|0{=nJCh{NIU4Iz;>=Q3st#@B`)4QWCpK#aE zE0&`yM{)8WkSzuz8UL|Y_>FPqZzNgfJ!D=(<~^Q~%HNgb-IBaRlK(8p|0K!aJqm?! z{ZDDmxzEXabO`Sge7U?wFTTSXDbYQ3{t3YzeMfoNjEBv9BxgL1n8zRGo0Q&+hjp8X zn>)l}JlrXAhvf9m9g>LgV1BP_HLx8wI@u0HTjgxW*~fFF?dFtZ7Nap zojdkx7LEZx;!0RZjZz!RfW{60PB)Cw_i?u2Q{yX~)@U=%wHb!DA43=TU{H$h(V^3ktkZdX4=@aikEf3BflfEe zsS)yR?{LQV2&BU^KxsmtH_uQg@eF}PJj1Ew^O!rosl+>PHoVYZ#R({SZ%vNnN@g6x z9ACEHYOL?>=>fJ7^tl>>K93RRa^oDIOW&ctsMA&E*;elJ6w@C~SE-)h?nt|9wrAUp zhH~GiiXL`77=^UZE|(8}8DlTCMR@#k8MU&oC*;djJB&+7!+4T$5Z?bl8;Beac&5I= zs&2X=TC{KNH<*5Lxi=a*{~!i&7AKIC=UM+-g`MJ}ec_Ix_tq9LRjkBSoSPS3rGI>A zaPt)URRx{*!kvxhmzy-g9?y*Di`qOJG&*{mtSQbJ9X=0!exL`Q`h#>OOvxD?>R=o} zkRBw)`&}k)V444|!^XIa2DCfqPJr$ccI(Txn1O7nZx0lbFay6nYBK{^2iCubcKeq&BeoAc81tb|br)V2hZ&eQ z>>l@|QumZHcgb{jV3E5d=nj0xU8p_co>J;AndT0Z#b0jvuo;5J&BAZqA3cEQFKr|G z&MDb|`H9(p@uq+OWY_@QtJ^bdKxX{LIDi#FG40QHmx5R$zmDrC?DF(zOiTx;%*pE#T z`w^Ack7kMe*etOhow}3#$iC0Xek_W~oc(Bt$^FBA*fAcswb^Dt(qliO)V}b%wb&1l z-9Wn$S&#yS+qNwkF&{+s<6Bbw#rPrQ_<#*3AjsdL?>a%QR>Yhk`ASGQK43lI8xeDi zY*n1BhrIq)`u1*2%zEq<>PPGSP&oczJq{~Q)&t{f>-^$QkSnns-y|7h9E#d2(t%J(arE#ljkuXLz(%nIoLLgVet z+MeGySe1NbhsN70`fJc{70SVKyeh5lAJUESe(ZmK`(Bc3VOygr@?RFS+tq-X1Sd8VG{WbJi|NBNzHHI z*@wZ(oH%+Szrp-wLsRn`=$p0-xAN|39AU_r6MEnQFp;P*p{|Hj&CrD#`HcRDa0{?O0qxa_pygzzs&Ib#_ z|IoVjhX>z(aR6(|1z8TWWtpOWz(_Y1!<_WYhCuNGu%PpecuPm*Uya#WJRZ$t&# z!Y^qqx!1{WH1|EfVOFuYiatZOxMKCKx2I$~;t(8&G-&^K_0p4172;2nG=#Ak+&(!- z5%Y#<>^$R|f!YYhU<^{)%>Ou(;Zoi=k2#o)txE4aBVu`#(mT&cyD2lKBg_afS+JW2=+dcw8A6@i>z37qe$J-P9Rr_pVTuH*auduTW+iKc__& z+^|CF33nQ(pNeYCqWc+tk;ltIOz<{Uf9{Viypf?6BD#Q7zssNEsY&qql`)B@Ch5&9 z04KS!kn;-7PF|rf9bN%S6AF9t3Q;K^Nns*hp)d}wP?$Ea5NXdb#==Y8p`P=6c(6Yj zc_C+~u@*1ooA3GO79-=j@8ozct@ zjm8tDdFe^!8o`*SC6j9;Gi9dCl$kQqX_}T$e+x0^MVnfc`Hj9b{MQvG|KYp$#Q2W} ziT{B8FB$(4P@MdS*W^F46Yw7`CjWstz<<>B0srw3t?Q>WZ=<=DW|;?p&Oqlq8YJGM zPU1aUB;F%i;yt_)?@=M~9(5A$;gxug0*UwV#d3IX-eXEk<|DOWOy;~tLqF&IuycHH z!%yJ}@E%aa;0Nsj`~>z8CV8w-W~ z1;0_J@HTDfZ&aN8hP-~{Jbf@pj*q8>`qBDc5{@VMjn@<>zkyg0*7-t9{z5pu;5R(z z&);kF8yBkFhhy;?TUGn`gV&g>I&CC3srLEs#^E{gRr`7ZudzWY|A|mPmj8E&&)A{b z{0#VvS5&9X2Eh?Un@*O*GZc{gl#s*YMTNi9!Pl41Vu#$l-sUX|HGaKY^@qZ38yQ{wVf~iho%iH5P3j}3693^|;Wx%YKbGWOk}UH8 z$E0#O{)5a1{8Ex-Uf_r%%RB=3fh7X_k9;DV^nTCxaVq@4thtkt28oEn7qC=+LNdS; z%@%TM)B)!XG`jXQlReN(?jSyU;8vaNL7v%=!4|x$^kxsl@_6jQ#b!BU4_qdD;7-6E zSn(us60-+s#gph_Y{IZiJPF1#MB2wMzl16`f}BtIndVvFs4zGD3e|X&j+MT1JBudq z1Xobo^l1l-Bk-HI=PbVli=M+v_#!XUB3Xm5MB_~d)Sbr5Jbpx^Ye;xr)3i>I6Ai#4 zDvXH&IWgF*f(5Q{g~yAS1g|$YRxj4Sme+c49eYP!N@ampfR=lC7zmgXjRrdmL~ov= zOo;y=<+DgD{zF-U_zz3cjsH*kz0iGgn#U;juZu9Jgui$6vC*U9|R4(A%aAPVy zuJ2|Sd_iN-=Z(CO6N#!;^$~V#Rbvck9D0*2&*C639s{+1u7zjfR9s@@TPq7)Y%TRC zYDvZ?$GF-zh1#3>7K{`(XB@WV*Q9*tW#h_j3;ZzmkM@UOkiR-+?NT{k?BZ^A%~i1L z%?KT{E;@b@)*llt!Wqz*#sA?DN$mWQLeFGY-}7`;7!$bCq2Jo^G#FpiPDuiuENi|Y|aGBfHPTV@gh^*W3F-+l)1e%L*1@xhoN4KDR2!|@pA8V zmP+MN1Xo~nw$SW4&SOKMj%iF`rh81OyWl#vH}(&&p8lCe%U&~##OX{#fAoLw{Gn|_ z?(GEJ%8!PM;7aK*7C!;^mh6*cSCFHpB*U&`rpz?prg-rmEdM|Hvlv^ooBsd$Q;h#G zK|Qhf4;xMYe|-Y~e{Q|g|9_+p{QoDC_u~z7?1lIHF%NVuK#l`(MB)N+r5qsj5*M&h z;sV+wF2LphxD|Q7#07LnTtK}P2cjh=^HJ26n9R9=j+p%A#DOS_$)go<%2K}4ixa>e zV-$dAeIhQvsvmxSW?vTKGQf^2#(5}JoN*rJo7=ar$niOZ8hewp;oB(pA zRx~E&1X_jq(MsPGjxRWY{fd(l_)M|SA6h)J^NE}Q;$qbaaUKxgNsR08f$EIwaFyz` zg&?Pgbw1!n52$wBjS+M_{vP^t{Hx6RzpmQX8@PdWDsR`8-~GE1N3dCvpOfVORh@Al z4ojRtH@FAg<_v~vPTNkt=Cu8MTk_*CLL3Pp&I5AER>amfTKP!j_DjVq2N%#H)L*NK z$7i(ieT}!jH%(}*8|XKc$k zsW}PecRPps++;nGlR%%ggY-nsaUgRNry4)P(zD`6WJ~p7g5SjADbOb=OQ4sdI(dq+ zGDED z^B<>q=hOTd5z9oZ|B#r8-4b~yeI_ej4dtG7YxdmJb0 z8%dki2l)kQgWqV7as_bzf2YaGZ~GL0(jnI{(0cM z@MC~K1D?rnzHmK3FE8+-m!D7X%dlDUWx)HefA}3>U0g4(G8`Db8Sop=$3~3={yyAi zB`teNPDW%$<~pHb%Nq7!zBFE>hJ6};cS^%np+bcU6hb`1XppLCK!A%FEWGZ0v{UQV`Y-x1NP7=wJ{FvlG-;jr~gB_^m)N`80@Iz z|Io;sTnF9%Q~YOM3jc>6N!!QO_p)?8!FBwaIk}E^S^WPCSMrC_`32X3XK_4FT3pAK zyd9MMAD+^j{twW#m$dlb54eqWgv0ngX&=&@{twR+F5~CC-P;uBGX7n2 z&e^=BIp=f+$@UB2uORt9K+7qWI28C>9nXNVQqY6%1IAEY{`5Qp?iIbf-ybyR z_7F19fP3cg%=A11?oB3If2N6JiJ4+CSj!l^>5qWvZ#&oI)y56L)%vG9HPdk?-3 z`z|rx2P=sFKYuj#kxu`=aY1o{{y%@7(*MUI-1PsCO#Q!a4D|m(eoi6&{X;Z(4w@Dj(0FxMhJWIbu>O*vmJRdL|e}{2m2hvxLkR2RS z`8WJ8bNV+}o*v)|e#H{G19^Qi|AtKSLUwQm(_OfO?DX6L^=~kA-R~G2!dfSX0Lgf= z`Zc8B6aHpROC+|cyyd%kw6C=JBk1~@Sj{<6Pa=BEuRke#5^nlD@`07N-<0m27i%0k2Gpxu7i=@($o2S3TDyu(eS#yeCQdtBmHkHX>|`UV8=aM0u(+D+b} zK;j*6?*#8q?16V^9T4wN#XA%v;T_HjeBlJ)8n_QnC=p#|eTivw7gh69l6JYWyCQXBKk9a8&d^LSEm0KG%x01BE%mILUP z>Odsp06KO%Ie@|@CkJ4ie~Sa?A{;%ng78!1Yqcym0_^q`g<#9=L$V$oh^XoWQ{( zoWOj=2`ElrGWsbfvS3KQ=97^vfG0pIwgBUu!#*(%rJqA)3os5knjyxvsn`OG1xV+W zfN@jEgI5B^Q!D*q9Gr?R!1wY&4{QO(UopR6F04q#7GPXf>%l7l_n!vdZ@$mDJ%r2_ z;6B{xp{4}xcPBm6lrS`^sp;7Qj0bbGE}fbZ#Yy_fYyrkE#U9uK-1kd8vIV6c*@8!S zzg7=y!PR`I{VNY_!GDhIVMZiUs<_YH9sM(Eoq1`0dg)54Y_3;M8wJ z3qD(a^Q~R|?Ze6ce^~k*&p7vy_94=yegON(`YzI@{sPeVJEUh;%%`m*`hM-$=l`dx z(O~QM#uz$bwRcs2XkGwfgcYyAAT;-%vP4b(59T>`^8)BI+m4zFnyJZWyVO*eVrueP zE?xj7h6ewpQ-l9!M!f(K6Hkv%?FW#%X|}${tbLFh`IE!GaK8Qx{&9E3BKi8=e8s-M z9+($<)ez4sjn~8a5nO=!Jw!^!j7LqEa0)mFr-1cv3P{k;gOWc$?M3(l1YP_AI=uP= z1e56JLC^a6zR=bFeZit*t!B5KeQo@kcwWqEH~Sl-F>R5~|Fj|>t=50TH^1}v)4Yqh z|7hQIqdY*YNG~@X1RVbVYgWxWwX+XzXnr5Z-Qs_;`R(X2P5&|c@jo}VdzNoxjsCC3 zraO7hwRhR4*wW*78S3~o3H}3fMoo|Zva!b>yXoRRj*tS`qML|Cm=T;_HlO<0XOITLXS$ER8w@rTq00yuLV))dUSbnz204 zG3&0tOS2XSVtfnJ7at2`Ek42DBJ#ZWvVk8Do^2ES4(`q7FD!BB{J06`U8K$ro^ZL+ z`BkV;q2dc0(A>_sKft$NDRBf>`J8h=*ZQ1uL}f&W-@@BnlApkLc^lt3C1xAk zMaVv$nd}Ws%v&;ZeX~zoKi2+Qee(I3$qxF&_4h5a|6)yizh#;2LsEa#b$GxRzrMi* zJV%a~*^}r_P(T%INKXyidCThX4dLp#@O*nBE)fElNLWF#NkaPWF$E9oGdRy3LXhwQ zRbxTbSkSzC5`2>6bI9BP#!U?#JP9zKI^e;R0OPD451s@VfAxCsB*6D}p$BdNR8f#laU)3 zt|x)j&+;V5CEG*DH5RN|49T`fYb*pk@&yNZzYf2sv5<-{SjmU*FMHq%0x4=NSo(i> z+s5r1*N=|8oj(6R(f@xziPHbaBHZ-tm4rZ~S4W$^Q?Iu>L>M^Zy@TTK`{b zS3N!V1$NcPdrv$&xP95zI);<~pHBa8CGF=(oALmUllAYAHsuA9@c}YJ{u`E<|KBlz z`G76!H*dbbYCKqh3_U&8RA1;gr z^E6%OgKgf5*5~cWc{J8i{b|mNu{+ip1^_J;dCfh>_FKv{{@W8sb%*!++27iSa~VCH zPx<;Y5TFJ4@Usi<9s;oQG`838#Xq29^7#kMi#a}y#T$HOFnRv}`GL{m4W9Cr|NoMi z|G(MH{|9%_#(%Dp^8b67;0p3Qa0Qhf^8fpia0Ms%;aX!-j2&=Ack_N9-~}n)KPMwn zZzTEe@a?sd{N*|aIQIP)sr%y|6;ryu3Kc3;eBlFroadU7>;D*);+d*)g!2D0w4vqy z=bHKdSuXkiCyD;wJ_7nb)%)GN0MK``>;5$Vzn$p*CyDN#Me_f1N&bH&(fwPA?jI!i z|7DkO{y)w@5kFp`Aq4EdcWZqibLRKs`CiWNzkvz=0IR)%IrIGi*#;*0@030tbpD-; z*>w@nzlAw{+~(b6FNU~^5lGf%#~G2 z`ToDxocaDY5*>Yo=9~+u)13MLsAwnW|35_D{{(5jK-#ZsPCtNmiLU=g(m%)N^ant` zzdUzy9X_Zuw^L4Z@~y-l-~dbuG)AnAA?%2-BDPA(G9kKXCFZyz*^-mOW5he*93R2f zH0&`D0%Twqdb)uSB=7@B_*fJY`~WU^i601g;Rn!ZPAHKdXe0bU$c-NeCE*7`p80`j z-}FN`AN;VFML*TTQw;}%?M%QN7p%Gj;gVOTtTd$oy$7%MW!2z?!5fyhne_?`79{*j z{jd1%_UAR`vW}pq{%!s?9lrl(U*VzC>_aPv z8i%IoLAw@0eEVY8_nsH!6pThQjw8?RtN(!in!ryOG(+S{%1=Bvdi(_ZB#vcV>B3Lo z0>X3q_51+V;a9%Y=#OID#j>~n+ly$ zp6l6b{=~Qz^K%8eg#O>ZXK4C=57GY@r_uj0VwCm&PE-GHchUbBHah+PXEqLB|F``8 zxAUcmFOTu%U-pF2@B9k zSbzds+ZQZAT>BR@zE)1U#R3%BZNUQc+uFWh0kWE%EI^*!7A!!8-5wnlAfDqdSb&h- zPR|116JorHF$=W$ukxQ56^gl%8Agu(a;beC|A~i*-Ddy!WP6L4lNI<&=41tKV}d=f z+BN3!TI|3B()j>8@Fa`psH6Y0%*hVW{lCh89@y*74!kLCA6Kj{oo}!MA2KI9fU%_Y z|B0&~wE$#x0N($2I%8I{Qn2+z$!9tf_X4`UIc`9JZCd*T7 z155A|vc8A3Ka=*4?M;;iaD{xig12*<|rOWMAS`1ZjT1TviKzd_pH z_r<>-jM@VB#QWSTW=LPYA#olrfjCe_3#5rp zdF!gC!Gxn4CMVaxwA5S!#%(=5F}9|kL*^PVo}1|xpCc95fN|bJfBKpR82`0<;2JP4 z?DUJVeJZX2_k)5d>A41rSLl`cCF2?}zAVg4&o$saSd{6^Ay39NU_8*Dm7Z(BeHT97 z>9__%ce_mdZP0!)*MM{`hhYDpaUYp+bcU6)IGyP@zJF3Kc3;s8FFog$fla gRH#s)LWK$yDpaUYp+bcU6_;xKKkHEnbpW^l06^32CIA2c diff --git a/tests/Sanity/libitm-smoke/bins_ppc64.tar.gz b/tests/Sanity/libitm-smoke/bins_ppc64.tar.gz deleted file mode 100644 index 0589c6ad11cc84f934a1e89a159319594725f931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42218 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 TtQ32W__q6%o4*7CdB=^(vJm)@j@M0zLm4iQ3c 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
{sYw(K`}@HLuP`>;?6r;}0rU4m9Vq?r5-& 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 P$XED(|Cagn00;sA(wApH diff --git a/tests/Sanity/libitm-smoke/main.fmf b/tests/Sanity/libitm-smoke/main.fmf deleted file mode 100644 index 77c1763..0000000 --- a/tests/Sanity/libitm-smoke/main.fmf +++ /dev/null @@ -1,34 +0,0 @@ -summary: Just runs prebuilt binaries -description: | - Just running prebuilt binaries that require libitm. - This test is designed to run in gcc-libraries CI. we - cannot build anything on our own, since we don't have - devtoolset's gcc and -devel libraries. - - This should run OK on RHEL-6 and RHEL-7, currently all - arches. - - The sources of the tests are in Sanity/libitm-sanity. - !!! THIS TEST IS INTENTIONALLY NOT IN gcc General PLAN !!! -contact: Michael Petlan -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 diff --git a/tests/Sanity/libitm-smoke/runtest.sh b/tests/Sanity/libitm-smoke/runtest.sh deleted file mode 100755 index 8c78f78..0000000 --- a/tests/Sanity/libitm-smoke/runtest.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Sanity/libitm-smoke -# Description: Just runs prebuilt binaries -# Author: Michael Petlan -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Sanity/rebuild-binutils/main.fmf b/tests/Sanity/rebuild-binutils/main.fmf deleted file mode 100644 index 2d7e5d5..0000000 --- a/tests/Sanity/rebuild-binutils/main.fmf +++ /dev/null @@ -1,70 +0,0 @@ -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 diff --git a/tests/Sanity/rebuild-binutils/runtest.sh b/tests/Sanity/rebuild-binutils/runtest.sh deleted file mode 100755 index 714ac4d..0000000 --- a/tests/Sanity/rebuild-binutils/runtest.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Sanity/rebuild-binutils -# Description: Rebuild binutils. -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Sanity/rebuild-glibc/main.fmf b/tests/Sanity/rebuild-glibc/main.fmf deleted file mode 100644 index 53eee30..0000000 --- a/tests/Sanity/rebuild-glibc/main.fmf +++ /dev/null @@ -1,76 +0,0 @@ -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 diff --git a/tests/Sanity/rebuild-glibc/runtest.sh b/tests/Sanity/rebuild-glibc/runtest.sh deleted file mode 100755 index 52255c5..0000000 --- a/tests/Sanity/rebuild-glibc/runtest.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2009, 2012 Red Hat, Inc. All rights reserved. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Author: Michal Nowak -# Rewrite: Marek Polacek - -# 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 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 diff --git a/tests/Sanity/test-m32-m64-options/clear_cache.c b/tests/Sanity/test-m32-m64-options/clear_cache.c deleted file mode 100644 index b10479f..0000000 --- a/tests/Sanity/test-m32-m64-options/clear_cache.c +++ /dev/null @@ -1,7 +0,0 @@ -int -main (void) -{ - char *mem = __builtin_alloca (40); - __builtin___clear_cache (mem, mem + 40); - return 0; -} diff --git a/tests/Sanity/test-m32-m64-options/cpp11.cpp b/tests/Sanity/test-m32-m64-options/cpp11.cpp deleted file mode 100644 index 649daec..0000000 --- a/tests/Sanity/test-m32-m64-options/cpp11.cpp +++ /dev/null @@ -1,78 +0,0 @@ -template -class X -{ - T p; -public: - template auto f() -> decltype(+p) { } -}; - -struct A -{ - int i = 42; -}; - -struct B -{ - int i = 42; - B() { } - B(int i): i(i) { } -}; - -template -struct C -{ - T m = t; -}; - -template -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().f(); - 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 c1; - if (c1.m != 3) return 5; - C c2 {}; - if (c2.m != 5) return 6; - - D d1; - if (d1.m != 3) return 7; - D d2 (5) ; - if (d2.m != 5) return 8; - - return 0; -} diff --git a/tests/Sanity/test-m32-m64-options/hello.c b/tests/Sanity/test-m32-m64-options/hello.c deleted file mode 100644 index 98a53b6..0000000 --- a/tests/Sanity/test-m32-m64-options/hello.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -int -main (void) -{ - puts ("Hello World!"); - return 0; -} diff --git a/tests/Sanity/test-m32-m64-options/hello.cpp b/tests/Sanity/test-m32-m64-options/hello.cpp deleted file mode 100644 index 0f2234e..0000000 --- a/tests/Sanity/test-m32-m64-options/hello.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include - -int -main (void) -{ - std::cout << "Hello, world!\n"; -} diff --git a/tests/Sanity/test-m32-m64-options/hello.f90 b/tests/Sanity/test-m32-m64-options/hello.f90 deleted file mode 100644 index afabbb2..0000000 --- a/tests/Sanity/test-m32-m64-options/hello.f90 +++ /dev/null @@ -1,3 +0,0 @@ - program hello - print *, "Hello World!" - end program hello diff --git a/tests/Sanity/test-m32-m64-options/lambda-template.C b/tests/Sanity/test-m32-m64-options/lambda-template.C deleted file mode 100644 index b4db3b8..0000000 --- a/tests/Sanity/test-m32-m64-options/lambda-template.C +++ /dev/null @@ -1,41 +0,0 @@ -// { dg-options -std=c++0x } -// { dg-do run } - -extern "C" void abort(); - -template -auto apply (T t) -> decltype (t()) -{ - return t(); -} - -template -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); -} diff --git a/tests/Sanity/test-m32-m64-options/main.fmf b/tests/Sanity/test-m32-m64-options/main.fmf deleted file mode 100644 index 732b996..0000000 --- a/tests/Sanity/test-m32-m64-options/main.fmf +++ /dev/null @@ -1,51 +0,0 @@ -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 diff --git a/tests/Sanity/test-m32-m64-options/omphello.c b/tests/Sanity/test-m32-m64-options/omphello.c deleted file mode 100644 index 85b591f..0000000 --- a/tests/Sanity/test-m32-m64-options/omphello.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include - -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; -} diff --git a/tests/Sanity/test-m32-m64-options/quad.c b/tests/Sanity/test-m32-m64-options/quad.c deleted file mode 100644 index f9e5ef1..0000000 --- a/tests/Sanity/test-m32-m64-options/quad.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include - -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; -} diff --git a/tests/Sanity/test-m32-m64-options/runtest.sh b/tests/Sanity/test-m32-m64-options/runtest.sh deleted file mode 100755 index 15e99af..0000000 --- a/tests/Sanity/test-m32-m64-options/runtest.sh +++ /dev/null @@ -1,213 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Sanity/test-m32-m64-options -# Description: Try -m32 and -m64 options. -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 diff --git a/tests/Sanity/test-m32-m64-options/thr-init-2.c b/tests/Sanity/test-m32-m64-options/thr-init-2.c deleted file mode 100644 index 5b70dd2..0000000 --- a/tests/Sanity/test-m32-m64-options/thr-init-2.c +++ /dev/null @@ -1,20 +0,0 @@ -extern void abort() ; - -static __thread int fstat ; -static __thread int fstat = 1; - -int test_code(int b) -{ - fstat += b ; - return fstat; -} - -int main (int ac, char *av[]) -{ - int a = test_code(1); - - if ((a != 2) || (fstat != 2)) - abort () ; - - return 0; -} diff --git a/tests/Sanity/test-m32-m64-options/tm.c b/tests/Sanity/test-m32-m64-options/tm.c deleted file mode 100644 index 92b90db..0000000 --- a/tests/Sanity/test-m32-m64-options/tm.c +++ /dev/null @@ -1,34 +0,0 @@ -extern void *malloc (__SIZE_TYPE__) __attribute__((malloc,transaction_safe)); - -static int __attribute__((transaction_safe)) -something (void) -{ - return 0; -} - -struct large { int foo[500]; }; - -int -main (void) -{ - int *p; - struct large *lp; - - __transaction_atomic { - p = malloc (sizeof (*p) * 100); - lp = malloc (sizeof (*lp) * 100); - - /* No instrumentation necessary; P and LP are transaction local. */ - p[5] = 123; - lp->foo[66] = 123; - - if (something ()) - __transaction_cancel; - } - - __transaction_relaxed { - ++p[5]; - } - - return ((p[5] == 124) ? 0 : 1); -} diff --git a/tests/fedora-flags/hello.c b/tests/fedora-flags/hello.c deleted file mode 100644 index 51b259b..0000000 --- a/tests/fedora-flags/hello.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - printf("Hello World\n"); -} diff --git a/tests/fedora-flags/hello.cpp b/tests/fedora-flags/hello.cpp deleted file mode 100644 index 400612b..0000000 --- a/tests/fedora-flags/hello.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - std::cout << "Hello World\n"; -} diff --git a/tests/fedora-flags/main.c b/tests/fedora-flags/main.c deleted file mode 100644 index 1a3455d..0000000 --- a/tests/fedora-flags/main.c +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/fedora-flags/main.cpp b/tests/fedora-flags/main.cpp deleted file mode 100644 index 1a3455d..0000000 --- a/tests/fedora-flags/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/fedora-flags/main.fmf b/tests/fedora-flags/main.fmf deleted file mode 100644 index 43934a7..0000000 --- a/tests/fedora-flags/main.fmf +++ /dev/null @@ -1,10 +0,0 @@ -summary: Test compiling with the Fedora C/CXX flags. -description: '' -component: - - gcc -test: ./runtest.sh -require: - - annobin-annocheck - - gcc - - gcc-c++ - - redhat-rpm-config diff --git a/tests/fedora-flags/runtest.sh b/tests/fedora-flags/runtest.sh deleted file mode 100755 index 01b656b..0000000 --- a/tests/fedora-flags/runtest.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -set -ex - -default_cflags=$(rpm -E '%{build_cflags}') -default_cxxflags=$(rpm -E '%{build_cxxflags}') -default_ldflags=$(rpm -E '%{build_ldflags}') - -cflags=$(rpm -D '%toolchain gcc' -E '%{build_cflags}') -cxxflags=$(rpm -D '%toolchain gcc' -E '%{build_cxxflags}') -ldflags=$(rpm -D '%toolchain gcc' -E '%{build_ldflags}') - -test "$default_cflags" = "$cflags" -test "$default_cxxflags" = "$cxxflags" -test "$default_ldflags" = "$ldflags" - -gcc $cflags -o hello.o -c hello.c -annocheck hello.o -gcc $cflags -o main.o -c main.c -gcc $ldflags -o hello main.o hello.o -annocheck hello -./hello | grep "Hello World" - -g++ $cxxflags -o hello-cpp.o -c hello.cpp -annocheck hello-cpp.o -g++ $cxxflags -o main-cpp.o -c main.cpp -g++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o -annocheck hello-cpp -./hello-cpp | grep "Hello World" diff --git a/tests/smoke-test/Makefile b/tests/smoke-test/Makefile deleted file mode 100644 index fb46790..0000000 --- a/tests/smoke-test/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/gcc/Sanity/smoke-test -# Description: Basic smoke test. -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2012 Red Hat, Inc. All rights reserved. -# -# This copyrighted material is made available to anyone wishing -# to use, modify, copy, or redistribute it subject to the terms -# and conditions of the GNU General Public License version 2. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public -# License along with this program; if not, write to the Free -# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/gcc/Sanity/smoke-test -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE hello.c hello.f90 hello.cpp tm.c quad.c omphello.c thr-init-2.c clear_cache.c - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Marek Polacek " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: Basic smoke test." >> $(METADATA) - @echo "Type: Sanity" >> $(METADATA) - @echo "TestTime: 10m" >> $(METADATA) - @echo "RunFor: gcc" >> $(METADATA) - @echo "RunFor: devtoolset-1.0-gcc" >> $(METADATA) - @echo "Requires: gcc gcc-c++ gcc-gfortran glibc-common glibc-devel" >> $(METADATA) - @echo "Requires: libquadmath libquadmath-devel libgomp libgcc libstdc++-devel" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/smoke-test/PURPOSE b/tests/smoke-test/PURPOSE deleted file mode 100644 index 912f7b4..0000000 --- a/tests/smoke-test/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/gcc/Sanity/smoke-test -Description: Basic smoke test. -Author: Marek Polacek diff --git a/tests/smoke-test/clear_cache.c b/tests/smoke-test/clear_cache.c deleted file mode 100644 index b10479f..0000000 --- a/tests/smoke-test/clear_cache.c +++ /dev/null @@ -1,7 +0,0 @@ -int -main (void) -{ - char *mem = __builtin_alloca (40); - __builtin___clear_cache (mem, mem + 40); - return 0; -} diff --git a/tests/smoke-test/hello.c b/tests/smoke-test/hello.c deleted file mode 100644 index 4096e11..0000000 --- a/tests/smoke-test/hello.c +++ /dev/null @@ -1,7 +0,0 @@ -#include - -int -main (void) -{ - puts ("Hello World!"); -} diff --git a/tests/smoke-test/hello.cpp b/tests/smoke-test/hello.cpp deleted file mode 100644 index 0f2234e..0000000 --- a/tests/smoke-test/hello.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include - -int -main (void) -{ - std::cout << "Hello, world!\n"; -} diff --git a/tests/smoke-test/hello.f90 b/tests/smoke-test/hello.f90 deleted file mode 100644 index afabbb2..0000000 --- a/tests/smoke-test/hello.f90 +++ /dev/null @@ -1,3 +0,0 @@ - program hello - print *, "Hello World!" - end program hello diff --git a/tests/smoke-test/main.fmf b/tests/smoke-test/main.fmf deleted file mode 100644 index 3710ca3..0000000 --- a/tests/smoke-test/main.fmf +++ /dev/null @@ -1,22 +0,0 @@ -summary: Basic smoke test. -description: '' -contact: -- Marek Polacek -component: -- gcc -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gcc-c++ -- gcc-gfortran -- glibc-common -- glibc-devel -- libquadmath -- libquadmath-devel -- libgomp -- libgcc -- libstdc++-devel -duration: 10m -extra-summary: /tools/gcc/Sanity/smoke-test -extra-task: /tools/gcc/Sanity/smoke-test diff --git a/tests/smoke-test/omphello.c b/tests/smoke-test/omphello.c deleted file mode 100644 index 85b591f..0000000 --- a/tests/smoke-test/omphello.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include - -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; -} diff --git a/tests/smoke-test/quad.c b/tests/smoke-test/quad.c deleted file mode 100644 index e5a6cc7..0000000 --- a/tests/smoke-test/quad.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include - -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; -} diff --git a/tests/smoke-test/runtest.sh b/tests/smoke-test/runtest.sh deleted file mode 100755 index 78fda72..0000000 --- a/tests/smoke-test/runtest.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash -# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/gcc/Sanity/smoke-test -# Description: Basic smoke test. -# Author: Marek Polacek -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 - -PACKAGES=(gcc gcc-c++ gcc-gfortran glibc-common libgomp libgcc glibc-devel libstdc++ libstdc++-devel) - -# Choose the compiler. -GCC=${GCC:-gcc} -GXX=${GXX:-g++} -GFORTRAN=${GFORTRAN:-gfortran} - -PACKAGE=gcc - -rlJournalStart - rlPhaseStartSetup - export PRI_ARCH=`rlGetPrimaryArch` - export SEC_ARCH=`rlGetSecondaryArch` - # don't assert anything under devtoolset - if type gcc | grep -q -v devtoolset - then - for p in "${PACKAGES[@]}"; do - rpm -q "$p.$PRI_ARCH" || yum install -y "$p.$PRI_ARCH" - rlAssertRpm "$p.$PRI_ARCH" - done; unset p - fi - rlLog "GCC = $GCC" - rlLog "Installed within `rpmquery -f $(which $GCC)`" - rlLog "GXX = $GXX" - rlLog "Installed within `rpmquery -f $(which $GXX)`" - rlLog "GFORTRAN = $GFORTRAN" - rlLog "Installed within `rpmquery -f $(which $GFORTRAN)`" - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - # We need some files. - rlRun "cp -v hello.{c,cpp,f90} tm.c quad.c thr-init-2.c clear_cache.c omphello.c $TmpDir" - rlRun "pushd $TmpDir" - rlRun "rpmquery -l libstdc++-devel.$PRI_ARCH" - test -n "$SEC_ARCH" && rpmquery "libstdc++-devel.$SEC_ARCH" && rlRun "rpmquery -l libstdc++-devel.$SEC_ARCH" - rlPhaseEnd - - rlPhaseStartSetup "Showing compiler versions" - for compiler in $GCC $GXX $GFORTRAN - do - rlLog "Version of compiler: $compiler" - eval "$compiler --version 2>&1" | while read line - do - rlLog " $line" - done - done - rlPhaseEnd - - rlPhaseStartTest "Compile" - rlRun "$GCC hello.c -o hello_c" - rlRun "$GXX hello.cpp -o hello_cpp" - rlRun "$GFORTRAN hello.f90 -o hello_fortran" - - # TM support is GCC >=4.7 only. - $GCC -xc -O2 -std=gnu99 -fgnu-tm - <<< "int main(){}" - if test $? -eq 0; then - rlRun "$GCC -O2 -std=gnu99 -fgnu-tm tm.c -o tm" - rlRun "./tm" - fi - - # Test OpenMP. - rlRun "$GCC omphello.c -O2 -std=gnu99 -fopenmp -o omp" - rlRun "./omp" - - # Test __thread. - rlRun "$GCC thr-init-2.c -O2 -std=gnu99 -ftls-model=initial-exec -o thr" - rlRun "./thr" - - # Now test some libquadmath stuff (__float128 support). - # libquadmath is mising on RHEL machines, usually. - test "`rpmquery --qf '%{version}-%{release}' libquadmath`" = "`rpmquery --qf '%{version}-%{release}' $GCC`" - if test $? -eq 0 -a "$GCC" = "gcc"; then - rlRun "$GCC quad.c -O2 -std=gnu99 -lquadmath -lm -o quad" - rlRun "./quad" - fi - - # And now something from libgcc, e.g. __builtin___clear_cache. - # But not on RHEL5. - if ! rlIsRHEL 5; then - rlRun "$GCC clear_cache.c -O2 -std=gnu99 -o cache" - rlRun "./cache" - fi - rlPhaseEnd - - rlPhaseStartTest "Check dependant libraries" - rlRun "ldd hello_{c,cpp,fortran} &> ldd.out" - # Nothing should be linked against anything in /opt. - rlAssertNotGrep "/opt" ldd.out - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/smoke-test/thr-init-2.c b/tests/smoke-test/thr-init-2.c deleted file mode 100644 index 051cff9..0000000 --- a/tests/smoke-test/thr-init-2.c +++ /dev/null @@ -1,24 +0,0 @@ -/* { dg-do run } */ -/* { dg-require-effective-target tls_runtime } */ -/* { dg-add-options tls } */ - -extern void abort() ; - -static __thread int fstat ; -static __thread int fstat = 1; - -int test_code(int b) -{ - fstat += b ; - return fstat; -} - -int main (int ac, char *av[]) -{ - int a = test_code(1); - - if ((a != 2) || (fstat != 2)) - abort () ; - - return 0; -} diff --git a/tests/smoke-test/tm.c b/tests/smoke-test/tm.c deleted file mode 100644 index f9b4c9b..0000000 --- a/tests/smoke-test/tm.c +++ /dev/null @@ -1,34 +0,0 @@ -extern void *malloc (__SIZE_TYPE__) __attribute__((malloc,transaction_safe)); - -static int __attribute__((transaction_safe)) -something (void) -{ - return 0; -} - -struct large { int foo[500]; }; - -int -main (void) -{ - int *p; - struct large *lp; - - __transaction_atomic { - p = malloc (sizeof (*p) * 100); - lp = malloc (sizeof (*lp) * 100); - - /* No instrumentation necessary; P and LP are transaction local. */ - p[5] = 123; - lp->foo[66] = 123; - - if (something ()) - __transaction_cancel; - } - - __transaction_relaxed { - ++p[5]; - } - - return ( (p[5] == 124) ? 0 : 1 ); -}