Port tests to tmt

This commit is contained in:
Timm Bäder 2021-07-15 09:55:00 +02:00
parent b21766edbc
commit b7b4d3e66b
19 changed files with 75 additions and 87 deletions

View file

@ -243,7 +243,7 @@ pathfix.py -i %{__python3} -pn \
\ \
-DLLVM_INCLUDE_TESTS:BOOL=ON \ -DLLVM_INCLUDE_TESTS:BOOL=ON \
-DLLVM_BUILD_TESTS:BOOL=ON \ -DLLVM_BUILD_TESTS:BOOL=ON \
-DLLVM_LIT_EXTRA_ARGS=-v \ -DLLVM_LIT_EXTRA_ARGS=-v \
\ \
-DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \
-DLLVM_BUILD_EXAMPLES:BOOL=OFF \ -DLLVM_BUILD_EXAMPLES:BOOL=OFF \

View file

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

View file

@ -1,4 +1,6 @@
set -exo pipefail #!/bin/sh -eux
set pipefail
echo "void lto_function(){}" | clang -flto -O2 -c -x c -o foo.o - echo "void lto_function(){}" | clang -flto -O2 -c -x c -o foo.o -
ar crs foo.a foo.o ar crs foo.a foo.o

View file

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

View file

@ -1,6 +1,4 @@
#!/bin/bash #!/bin/sh -eux
set -ex
dnf download --disablerepo=* --enablerepo=test-llvm --source llvm dnf download --disablerepo=* --enablerepo=test-llvm --source llvm

9
tests/default.fmf Normal file
View file

@ -0,0 +1,9 @@
summary: All available LLVM tests
discover:
how: fmf
execute:
how: tmt
prepare:
- name: packages
how: install
package: llvm

View file

@ -0,0 +1,19 @@
summary: Run the upstream LLVM integration test suite
test: ./test.sh
require:
- cmake
- llvm-devel
- clang
- clang-analyzer
- clang-tools-extra
- compiler-rt
- ninja-build
- libcxx-devel
- libomp-devel
- python-lit
- lld
- lldb
- git
- make
- libstdc++-static
- clang-devel

View file

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/sh -eux
usage() { usage() {
echo "usage `basename $0` [OPTIONS]" echo "usage `basename $0` [OPTIONS]"
echo " --threads NUM The number of threads to use for running tests." echo " --threads NUM The number of threads to use for running tests."
} }
threads=0
thread_args="" thread_args=""
repo_url=https://github.com/opencollab/llvm-toolchain-integration-test-suite repo_url=https://github.com/opencollab/llvm-toolchain-integration-test-suite
@ -24,12 +25,10 @@ while [ $# -gt 0 ]; do
shift shift
done done
if [ -n "$threads" ]; then if [ "$threads" -ge 1 ]; then
thread_args="-j$threads" thread_args="-j$threads"
fi fi
set -xe
cd $(mktemp -d -p /var/tmp) cd $(mktemp -d -p /var/tmp)
git clone $repo_url git clone $repo_url
cd llvm-toolchain-integration-test-suite cd llvm-toolchain-integration-test-suite

View file

@ -0,0 +1,2 @@
summary: Check that libLLVM.so has been properly stripped
test: ./test.sh

10
tests/libllvm-size/test.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/sh -eux
# There is a bug in the build process when it runs out of disk space
# while stripping binaries, which causes the strip to fail, but does
# not fail the build. This results in a libLLVM.so that is over 2GB
# which breaks the nightly compose. So this test checks that libLLVM.so
# is less than 100MB to ensure it was successfully stripped.
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250
test $(stat -L -c %s /usr/lib64/libLLVM.so) -lt 104857600

View file

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

3
tests/llvm-config/test.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh -eux
llvm-config --version

View file

@ -1,5 +0,0 @@
---
standard-inventory-qcow2:
qemu:
m: 4G

View file

@ -0,0 +1,5 @@
summary: Test basic cargo usage
test: ./test.sh
require:
- cargo
- rust

5
tests/rust-sanity/test.sh Executable file
View file

@ -0,0 +1,5 @@
#!/bin/sh -eux
cargo new hello
cd hello
cargo run

View file

@ -1,73 +0,0 @@
- hosts: localhost
roles:
- role: standard-test-basic
tags:
- classic
required_packages:
# Required for rust and possibly other dependant packages
#
# NOTE #1: drop the requirement once the transitional period between releases is gone
# and llvm-compat is no longer a) needed, and b) part of the build.
#
# NOTE #2: keep it the first requirement. Depending on the order of requirements, placing it somewhere
# 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
- rust
- cargo
# the requirements below are for the integration suite
- binutils
- cmake
- llvm-devel
- clang
- clang-analyzer
- clang-tools-extra
- compiler-rt
- ninja-build
- libomp-devel
- lld
- lldb
- git
- make
- libstdc++-static
- clang-devel
# In Fedora, python-lit is valid. In RHEL, however, the actual package is python3-lit.
- python-lit
# - python3-lit
# Required in Fedora, but not shipped with RHEL. For future reference, comment the libcxx out as needed.
- libcxx-devel
tests:
- rust-sanity:
dir: ./
run: cargo new hello && cd hello && cargo run
# There is a bug in the build process when it runs out of disk space
# while stripping binaries, which causes the strip to fail, but does
# not fail the build. This results in a libLLVM.so that is over 2GB
# which breaks the nightly compose. So this test checks that libLLVM.so
# is less than 100MB to ensure it was successfully stripped.
# https://bugzilla.redhat.com/show_bug.cgi?id=1793250
- libllvm-size:
dir: ./
run: test `stat -L -c %s /usr/lib64/libLLVM.so` -lt 104857600
# This test ensures that the spec file still builds correctly with
# %global compat_build 1
# FIXME: This fails, because the CI system has a hard-coded timeout of 4
# hours.
#- build-compat
- binutils-plugin-ar
# make sure llvm-config symlink is properly setup
- llvm-config:
dir: ./
run: llvm-config --version
# make sure versioned llvm-config symlink is properly setup
- versioned-llvm-config:
dir: ./
run: llvm-config-13 --version
# NOTE: don't forget to disable libcxx tests when libcxx is not available, by adding -DENABLE_LIBCXX=OFF.
- integration-test-suite

View file

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

View file

@ -0,0 +1,5 @@
#!/bin/sh -eux
major=$(llvm-config --version | cut -d '.' -f1)
llvm-config-$major --version