tests: add support for SCL-ized LLVM 13 (llvm-toolset-13.0)

This commit is contained in:
Miloš Prchlík 2021-12-06 09:34:51 +01:00
parent c3456fa4ca
commit 978f4952dd
9 changed files with 87 additions and 36 deletions

View File

@ -1,2 +1,2 @@
summary: Make sure the the LLVM plugin for binutils' ar works summary: Make sure the the LLVM plugin for binutils' ar works
test: ./test.sh test: "$WITH_SCL ./test.sh"

View File

@ -1,3 +1,3 @@
summary: Make sure rebuilding LLVM still works with the new LLVM summary: Make sure rebuilding LLVM still works with the new LLVM
test: ./test.sh test: "$WITH_SCL ./test.sh"
enabled: false enabled: false

View File

@ -1,3 +1,15 @@
#
# Build/PR gating tests for *LLVM 13*
#
# Compatible with various LLVM 13 distributions:
#
# * Fedora (ursine packages)
# * Centos 9 stream (ursine packages)
# * RHEL-9 (ursine packages)
# * RHEL-8 (Red Hat module)
# * RHEL-7 (software collection)
#
summary: LLVM tests for build/PR gating summary: LLVM tests for build/PR gating
adjust: adjust:
- because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR."
@ -6,14 +18,16 @@ adjust:
and trigger != commit and trigger != commit
and trigger != build and trigger != build
enabled: false enabled: false
- because: "When testing SCL-ized LLVM, the collection must be enabled first"
environment+:
WITH_SCL: "scl enable llvm-toolset-13.0 rust-toolset-1.58"
when: "collection == llvm-toolset-13.0"
discover: discover:
how: fmf how: fmf
execute: execute:
how: tmt how: tmt
prepare:
- name: packages
how: install
package: llvm
provision: provision:
hardware: hardware:
memory: ">= 4 GiB" memory: ">= 4 GiB"

View File

@ -1,29 +1,49 @@
summary: Run the upstream LLVM integration test suite summary: Run the upstream LLVM integration test suite
description: | description: |
Run the upstream LLVM integration test suite Run the upstream LLVM integration test suite
test: ./test.sh test: "$WITH_SCL ./test.sh"
require: require:
- cmake
- llvm-devel
- clang
- clang-analyzer
- clang-tools-extra
- compiler-rt
- ninja-build - ninja-build
- libomp-devel
- lld
- lldb
- git - git
- make - make
- libstdc++-static - libstdc++-static
- clang-devel
- python3-lit
adjust: adjust:
# Common requirements when LLVM is not SCL-ized
- require+:
- cmake
- clang
- clang-analyzer
- clang-devel
- clang-tools-extra
- compiler-rt
- lld
- lldb
- libomp-devel
- llvm-devel
- python3-lit
when: "collection is not defined"
# Requirements for SCL-ized LLVM
- require+:
- llvm-toolset-13.0-cmake
- llvm-toolset-13.0-clang
- llvm-toolset-13.0-clang-analyzer
- llvm-toolset-13.0-clang-devel
- llvm-toolset-13.0-clang-tools-extra
- llvm-toolset-13.0-compiler-rt
- llvm-toolset-13.0-lld
- llvm-toolset-13.0-lldb
- llvm-toolset-13.0-libomp-devel
- llvm-toolset-13.0-llvm-devel
- llvm-toolset-13.0-python3-lit
when: "collection == llvm-toolset-13.0"
# libcxx shall be required in Fedora, it's not shipped with RHEL. # libcxx shall be required in Fedora, it's not shipped with RHEL.
- require+: - require+:
- libcxx-devel - libcxx-devel
when: "distro == fedora" when: "distro == fedora"
because: testing against libcxx package in Fedora because: testing against libcxx package in Fedora
- environment+: - environment+:
CMAKE_CXXLIB: "-DENABLE_LIBCXX=OFF" CMAKE_CXXLIB: "-DENABLE_LIBCXX=OFF"
when: "distro == rhel" when: "distro == rhel"

View File

@ -1,2 +1,9 @@
summary: Check that libLLVM.so has been properly stripped summary: Check that libLLVM.so has been properly stripped
test: ./test.sh test: "$WITH_SCL ./test.sh"
environment:
LIBLLVM_PATH: /usr/lib64/libLLVM.so
adjust:
- because: "With SCL-ized LLVM, library path is different"
environment+:
LIBLLVM_PATH: /opt/rh/llvm-toolset-13.0/root/usr/lib64/libLLVM.so
when: "collection == llvm-toolset-13.0"

View File

@ -7,4 +7,4 @@
# is less than 100MB to ensure it was successfully stripped. # is less than 100MB to ensure it was successfully stripped.
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250 # https://bugzilla.redhat.com/show_bug.cgi?id=1793250
test $(stat -L -c %s /usr/lib64/libLLVM.so) -lt 104857600 test $(stat -L -c %s $LIBLLVM_PATH) -lt 104857600

View File

@ -1,2 +1,2 @@
summary: Make sure llvm-config symlink is properly set up summary: Make sure llvm-config symlink is properly set up
test: ./test.sh test: "$WITH_SCL ./test.sh"

View File

@ -1,16 +1,26 @@
summary: Test basic cargo usage summary: Test basic cargo usage
test: ./test.sh test: "$WITH_SCL ./test.sh"
require: require: []
# Required for rust and possibly other dependant packages adjust:
# # Common requirements when LLVM is not SCL-ized
# NOTE #1: drop the requirement once the transitional period between releases is gone - require+:
# and llvm-compat is no longer a) needed, and b) part of the build. # Required for rust and possibly other dependant packages
# #
# NOTE #2: keep it the first requirement. Depending on the order of requirements, placing it somewhere # NOTE #1: drop the requirement once the transitional period between releases is gone
# else in the list may lead to harness uninstalling and re-installing LLVM packages. That a) would be # and llvm-compat is no longer a) needed, and b) part of the build.
# a waste of time, b) could potentially hide issues, leading to testing unexpected NVRs. #
# # NOTE #2: keep it the first requirement. Depending on the order of requirements, placing it somewhere
# - llvm-compat # else in the list may lead to harness uninstalling and re-installing LLVM packages. That a) would be
# a waste of time, b) could potentially hide issues, leading to testing unexpected NVRs.
#
# - llvm-compat
- cargo - cargo
- rust - rust
when: "collection is not defined"
# Requirements for SCL-ized LLVM
- require+:
- rust-toolset-1.58-cargo
- rust-toolset-1.58-rust
when: "collection == llvm-toolset-13.0"

View File

@ -1,2 +1,2 @@
summary: Make sure the versioned llvm-config symlink is properly set up summary: Make sure the versioned llvm-config symlink is properly set up
test: ./test.sh test: "$WITH_SCL ./test.sh"