mirror of
https://src.fedoraproject.org/rpms/llvm.git
synced 2024-11-24 09:32:42 +00:00
Port tests to tmt
This commit is contained in:
parent
b21766edbc
commit
b7b4d3e66b
19 changed files with 75 additions and 87 deletions
2
tests/binutils-plugin-ar/main.fmf
Normal file
2
tests/binutils-plugin-ar/main.fmf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
summary: Make sure the the LLVM plugin for binutils' ar works
|
||||||
|
test: ./test.sh
|
|
@ -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
|
3
tests/build-compat/main.fmf
Normal file
3
tests/build-compat/main.fmf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
summary: Make sure rebuilding LLVM still works with the new LLVM
|
||||||
|
test: ./test.sh
|
||||||
|
enabled: false
|
|
@ -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
9
tests/default.fmf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
summary: All available LLVM tests
|
||||||
|
discover:
|
||||||
|
how: fmf
|
||||||
|
execute:
|
||||||
|
how: tmt
|
||||||
|
prepare:
|
||||||
|
- name: packages
|
||||||
|
how: install
|
||||||
|
package: llvm
|
19
tests/integration-test-suite/main.fmf
Normal file
19
tests/integration-test-suite/main.fmf
Normal 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
|
|
@ -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
|
2
tests/libllvm-size/main.fmf
Normal file
2
tests/libllvm-size/main.fmf
Normal 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
10
tests/libllvm-size/test.sh
Executable 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
|
2
tests/llvm-config/main.fmf
Normal file
2
tests/llvm-config/main.fmf
Normal 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
3
tests/llvm-config/test.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh -eux
|
||||||
|
|
||||||
|
llvm-config --version
|
|
@ -1,5 +0,0 @@
|
||||||
---
|
|
||||||
|
|
||||||
standard-inventory-qcow2:
|
|
||||||
qemu:
|
|
||||||
m: 4G
|
|
5
tests/rust-sanity/main.fmf
Normal file
5
tests/rust-sanity/main.fmf
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
summary: Test basic cargo usage
|
||||||
|
test: ./test.sh
|
||||||
|
require:
|
||||||
|
- cargo
|
||||||
|
- rust
|
5
tests/rust-sanity/test.sh
Executable file
5
tests/rust-sanity/test.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh -eux
|
||||||
|
|
||||||
|
cargo new hello
|
||||||
|
cd hello
|
||||||
|
cargo run
|
|
@ -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
|
|
2
tests/versioned-llvm-config/main.fmf
Normal file
2
tests/versioned-llvm-config/main.fmf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
summary: Make sure the versioned llvm-config symlink is properly set up
|
||||||
|
test: ./test.sh
|
5
tests/versioned-llvm-config/test.sh
Executable file
5
tests/versioned-llvm-config/test.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh -eux
|
||||||
|
|
||||||
|
major=$(llvm-config --version | cut -d '.' -f1)
|
||||||
|
|
||||||
|
llvm-config-$major --version
|
Loading…
Reference in a new issue