diff --git a/.gitignore b/.gitignore index 28acebd..11f1fe5 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,8 @@ /test-suite-18.1.6.src.fedora.tar.xz /test-suite-18.1.7.src.fedora.tar.xz /test-suite-18.1.8.src.fedora.tar.xz +/test-suite-19.1.0.src.fedora.tar.xz +/test-suite-19.1.3.src.fedora.tar.xz +/test-suite-19.1.4.src.fedora.tar.xz +/test-suite-19.1.5.src.fedora.tar.xz +/test-suite-19.1.7.src.fedora.tar.xz diff --git a/fix-spurious-errors-in-halide-tests.patch b/fix-spurious-errors-in-halide-tests.patch new file mode 100644 index 0000000..b705e1e --- /dev/null +++ b/fix-spurious-errors-in-halide-tests.patch @@ -0,0 +1,38 @@ +From 24c82a8b24a487bdb7947ba134a14ab399f8ce44 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Wed, 11 Sep 2024 09:33:03 +0200 +Subject: [PATCH] Fix spurious errors in halide tests (#159) + +We occasionally see spurious llvm-test-suite failures with the +following error message: + + CMake Error: failed to create symbolic link '/tmp/tmp.x1PxF3OhCA/Bitcode/Benchmarks/Halide/local_laplacian/../images/rgb.bytes': File exists + +The reason for this is that two halide tests try to copy a test +input to the same location, and create_symlink can fail if these +calls race. + +Fix this by putting the inputs for the tests into different +directories, by not making ".." part of the result directory. +--- + Bitcode/Benchmarks/Halide/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Bitcode/Benchmarks/Halide/CMakeLists.txt b/Bitcode/Benchmarks/Halide/CMakeLists.txt +index 06f863096b..34126c0c70 100644 +--- a/Bitcode/Benchmarks/Halide/CMakeLists.txt ++++ b/Bitcode/Benchmarks/Halide/CMakeLists.txt +@@ -10,11 +10,11 @@ if(NOT MSVC) + endif() + + macro(test_img_input img) +- llvm_test_run(%S/../images/${img}.bytes ${ARGN} %S/${img}_out.bytes) ++ llvm_test_run(%S/images/${img}.bytes ${ARGN} %S/${img}_out.bytes) + llvm_test_verify(%b/${FPCMP} %S/output/${img}_out.bytes %S/${img}_out.bytes) + endmacro() + macro(test_img_data target img) +- llvm_test_data(${target} ../images/${img}.bytes) ++ llvm_test_data(${target} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. images/${img}.bytes) + llvm_test_data(${target} output/${img}_out.bytes) + endmacro() + diff --git a/license-files.txt b/license-files.txt index 3564e44..acad1f7 100644 --- a/license-files.txt +++ b/license-files.txt @@ -1,5 +1,4 @@ autoconf/LICENSE.TXT -CTMark/ClamAV/COPYING CTMark/consumer-typeset/LICENSE CTMark/kimwitu++/COPYING CTMark/kimwitu++/LICENSE.TXT @@ -11,7 +10,6 @@ MultiSource/Applications/aha/LICENSE.TXT MultiSource/Applications/ALAC/decode/LICENSE MultiSource/Applications/ALAC/encode/LICENSE MultiSource/Applications/ALAC/LICENSE -MultiSource/Applications/ClamAV/COPYING MultiSource/Applications/hbd/doc/COPYING MultiSource/Applications/hbd/LICENSE.TXT MultiSource/Applications/hexxagon/COPYING diff --git a/llvm-test-suite.spec b/llvm-test-suite.spec index 9609ed0..4a3e0c3 100644 --- a/llvm-test-suite.spec +++ b/llvm-test-suite.spec @@ -1,17 +1,17 @@ %global _binaries_in_noarch_packages_terminate_build %{nil} -%global llvm_test_suite_version 18.1.8 +%global llvm_test_suite_version 19.1.7 #global rc_ver 4 -%global test_suite_srcdir test-suite-%{llvm_test_suite_version}%{?rc_ver:rc%{rc_ver}}.src.fedora +%global test_suite_srcdir test-suite-%{llvm_test_suite_version}%{?rc_ver:-rc%{rc_ver}}.src.fedora Name: llvm-test-suite Version: %{llvm_test_suite_version}%{?rc_ver:~rc%{rc_ver}} -Release: 2%{?dist} +Release: 1%{?dist} Summary: C/C++ Compiler Test Suite License: NCSA and BSD and GPLv1 and GPLv2+ and GPLv2 and MIT and Python and Public Domain and CRC32 and AML and Rdisc and ASL 2.0 and LGPLv3 URL: http://llvm.org -# The LLVM Test Suite contains progrms with "BAD" or unknown licenses which should +# The LLVM Test Suite contains programs with "BAD" or unknown licenses which should # be removed. Some of the unknown licenses may be OK, but until they are reviewed, # we will remove them. # Use the pkg_test_suite.sh script to generate the test-suite tarball: @@ -27,6 +27,8 @@ Source1: license-files.txt Source2: pkg_test_suite.sh BuildArch: noarch +Patch0: fix-spurious-errors-in-halide-tests.patch + # We need python3-devel for pathfix.py. BuildRequires: python3-devel @@ -80,6 +82,27 @@ cp -R %{_builddir}/%{test_suite_srcdir}/* %{buildroot}%{_datadir}/llvm-test-suit %changelog +* Wed Jan 22 2025 Timm Bäder - 19.1.7-1 +- Update to 19.1.7 + +* Fri Dec 06 2024 Timm Bäder - 19.1.5-1 +- Update to 19.1.5 + +* Mon Nov 25 2024 Timm Bäder - 19.1.4-1 +- Update to 19.1.4 + +* Fri Nov 08 2024 Timm Bäder - 19.1.3-1 +- Update to 19.1.3 + +* Tue Oct 15 2024 Konrad Kleine - 19.1.0-4 +- Remove MultiSource/Applications/ClamAV directory because of viruses in input files + +* Wed Oct 09 2024 Konrad Kleine - 19.1.0-3 +- Remove broken links in source tarball + +* Thu Sep 19 2024 Timm Bäder - 19.1.0-2 +- Update to 19.1.0 + * Thu Jul 18 2024 Fedora Release Engineering - 18.1.8-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/pkg_test_suite.sh b/pkg_test_suite.sh old mode 100644 new mode 100755 index 6aac54d..81d8b01 --- a/pkg_test_suite.sh +++ b/pkg_test_suite.sh @@ -38,12 +38,14 @@ POSSIBLY_BAD="\ MultiSource/Applications/Burg/ \ MultiSource/Benchmarks/MiBench/telecomm-FFT/" +VIRUSES="\ + MultiSource/Applications/ClamAV/" #siod: llvm.org/PR38648 BUGGY="\ MultiSource/Applications/siod" -for f in $UNKNOWN $BAD $POSSIBLY_BAD $BUGGY; do +for f in $UNKNOWN $BAD $POSSIBLY_BAD $BUGGY $VIRUSES; do test -d $test_suite_src/$f rm -Rf $test_suite_src/$f basedir=`dirname $f` @@ -51,9 +53,28 @@ for f in $UNKNOWN $BAD $POSSIBLY_BAD $BUGGY; do cmake_file=$test_suite_src/$basedir/CMakeLists.txt test -f $cmake_file sed -i s/add_subdirectory\($dir\)//g $cmake_file +done +# The llvm-test-suite now contains broken symlinks because +# the link target was removed above, e.g. +# +# /usr/share/llvm-test-suite/CTMark/7zip -> ../MultiSource/Benchmarks/7zip +# /usr/share/llvm-test-suite/CTMark/lencod -> ../MultiSource/Applications/JM/lencod +# +# To fix these algorithmically, we have to find all broken +# symlinks and remove the add_subdirectory entry in the +# CMakeLists.txt in their parent directory. +broken_symlinks=$(find $test_suite_src -type l ! -exec test -e {} \; -print) +for f in $broken_symlinks; do + test -L $f + rm -fv $f + basedir=`dirname $f` + dir=`basename $f` + cmake_file=$basedir/CMakeLists.txt + test -f $cmake_file + sed -i s/add_subdirectory\($dir\)//g $cmake_file done tar --transform=s/$test_suite_src/$test_suite_src.fedora/ --show-transformed-names -cJf $currentdir/$test_suite_src.fedora.tar.xz $test_suite_src -pushd +popd rm -Rf $tmpdir diff --git a/sources b/sources index 009482b..681999b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (test-suite-18.1.8.src.fedora.tar.xz) = d9538aec6565ff2884939fb62a73d54fc8489660a73b990250991fa0bd4cea51936112c0302321392715fef24f6ae6836f9a6829cae154bd7208644b9d67b068 +SHA512 (test-suite-19.1.7.src.fedora.tar.xz) = 0949665250ebba33f43420a14d34785e0f13d5e57a9bcf317129157905f6636470d0e38eb6190cb5b5b63d7e3b694f0b822aeaf5c1494b8e93cbb682b04e363b diff --git a/tests/test-suite/runtest.sh b/tests/test-suite/runtest.sh index fe6ce4b..0dbb599 100755 --- a/tests/test-suite/runtest.sh +++ b/tests/test-suite/runtest.sh @@ -57,11 +57,62 @@ fi set -xe -cd $(mktemp -d) +# This test consumes almost 2GiB. This space may not be available on /tmp on +# all servers. We need to guarantee that physical disk is used in order to +# avoid spurious failures. +tmpdir=$(mktemp -d -p /var/tmp llvm-test-suite.XXXXXXXXXX) +pushd $tmpdir cmake -G Ninja $testsuite_dir \ -DCMAKE_C_COMPILER=$cc \ -DCMAKE_CXX_COMPILER=$cxx \ -DTEST_SUITE_LIT_FLAGS="-sv$thread_args_lit" -ninja $thread_args_ninja check +if ! ninja $thread_args_ninja check ; then + # The following code helps with troubleshooting an issue with miniFE. + # Collect more information about the OS and server that reproduced the + # issue. + # https://github.com/fedora-llvm-team/llvm-snapshots/issues/874 + mdir=$tmpdir/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE + + if [[ ! -e $mdir/miniFE ]]; then + # If this executable does not exist, assume the test failed due to another + # reason. + exit 1 + fi + + uname -a + lscpu + + ldd $mdir/miniFE + readelf -hSlW $mdir/miniFE + + readelf -Ws --demangle \ + $mdir/miniFE \ + | grep -E 'Symbol table|Ndx Name|cg_solve' + + objdump --disassemble=_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_14matvec_overlapIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd \ + $mdir/miniFE + + objdump --disassemble=_ZN6miniFE8cg_solveINS_9CSRMatrixIdiiEENS_6VectorIdiiEENS_10matvec_stdIS2_S4_EEEEvRT_RKT0_RS9_T1_NS7_16LocalOrdinalTypeERNS_10TypeTraitsINS7_10ScalarTypeEE14magnitude_typeERSE_SJ_Pd \ + $mdir/miniFE + + $tmpdir/tools/timeit-target --timeout 7200 --limit-core 0 --limit-cpu 7200 \ + --limit-file-size 209715200 --limit-rss-size 838860800 \ + --append-exitstatus \ + --redirect-output $mdir/Output/miniFE.test.out \ + --redirect-input /dev/null \ + --chdir $mdir \ + --summary $mdir/Output/miniFE.test.time \ + $mdir/miniFE \ + -nx 64 -ny 64 -nz 64 + $tmpdir/tools/fpcmp-target \ + $mdir/Output/miniFE.test.out \ + $mdir/miniFE.reference_output + + exit 1 +fi + +popd +# Remove temporary files in case of success. +rm -rf $tmpdir