From ca684864ca86eac998d875ec1343fdd9a3d3b5ad Mon Sep 17 00:00:00 2001 From: Jesus Checa Hidalgo Date: Thu, 20 Jan 2022 14:25:07 +0100 Subject: [PATCH] tests: re-use Fedora tests Related: rhbz#2001107 --- .fmf/version | 1 + tests/build-gating.fmf | 51 ++++++++++++++++++++ tests/python-embedded-interpreter/runtest.sh | 15 ------ tests/python-embedded-interpreter/test.cpp | 9 ---- tests/tests.yml | 43 ----------------- 5 files changed, 52 insertions(+), 67 deletions(-) create mode 100644 .fmf/version create mode 100644 tests/build-gating.fmf delete mode 100755 tests/python-embedded-interpreter/runtest.sh delete mode 100644 tests/python-embedded-interpreter/test.cpp delete mode 100644 tests/tests.yml diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/tests/build-gating.fmf b/tests/build-gating.fmf new file mode 100644 index 0000000..5aff19e --- /dev/null +++ b/tests/build-gating.fmf @@ -0,0 +1,51 @@ +# +# Build/PR gating tests for *LLVM 13* +# +# Imports and runs tests provided by Fedora LLVM git for the matching LLVM version. +# +# NOTE: *always* keep this file in sync with upstream, i.e. Fedora. Since we cannot "discover" a plan, +# we must duplicate at least some part of upstream plan setup, like `adjust` or `provision`. Not necessarily +# all steps, but if we do need some of them here, let's focus on making changes in upstream first, to preserve +# one source of truth. Once TMT learns to include whole plans, we could drop the copied content from here. +# + +summary: lldb tests for build/PR gating +adjust: + - because: "Plan to be ran when either executed locally, or executed by CI system to gate a build or PR." + when: >- + trigger is defined + and trigger != commit + and trigger != build + 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" + + # Unfortunatelly, TMT does not support more declarative approach, we need to run commands on our own. + - because: "On RHEL, CRB must be enabled to provide rarer packages" + when: >- + distro == centos + or distro == rhel-9 + or distro == rhel-8 + prepare+: + - name: Enable CRB + how: shell + script: dnf config-manager --set-enabled rhel-CRB + +discover: + - name: upstream-lldb-tests + how: fmf + url: https://src.fedoraproject.org/rpms/lldb.git + ref: rawhide + - name: upstream-llvm-integration-testsuite + how: fmf + url: https://src.fedoraproject.org/rpms/llvm.git + ref: rawhide + test: integration-test-suite +execute: + how: tmt +provision: + hardware: + memory: ">= 4 GiB" diff --git a/tests/python-embedded-interpreter/runtest.sh b/tests/python-embedded-interpreter/runtest.sh deleted file mode 100755 index ce26e1b..0000000 --- a/tests/python-embedded-interpreter/runtest.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -ex - -g++ -g test.cpp - -lldb -b -o 'breakpoint set --file test.cpp --line 7' -o run -o 'p v' -- a.out | tee lldb.log - -test `grep \ - -e '(std::vector >) $0 = size=1 {' \ - -e '\[0\] = 2' \ - lldb.log \ - | wc -l` -eq 2 - -rm lldb.log diff --git a/tests/python-embedded-interpreter/test.cpp b/tests/python-embedded-interpreter/test.cpp deleted file mode 100644 index 397efa4..0000000 --- a/tests/python-embedded-interpreter/test.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include -#include -int -main () -{ - std::vector v (1, 2); - std::vector::iterator it(v.begin()); - return 0; -} diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index ef52b16..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,43 +0,0 @@ -- hosts: localhost - pre_tasks: - # We want to be able to check that the sub-package dependencies are correct. - # The CI system installs all sub-packages, so we remove them so we can - # test them individually. - - name: Remove RPMS installed by CI - package: - name: - - python2-lldb - - lldb - - lldb-devel - state: absent - tags: classic - roles: - - role: standard-test-basic - tags: - - classic - required_packages: - - gcc-c++ - - lldb - # the requirements below are for the integration suite - - 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 - tests: - # rhbz#1567262 - - python-embedded-interpreter: - dir: python-embedded-interpreter - run: ./runtest.sh - - integration-test-suite