summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2024-12-20 21:39:53 +0100
committerMichał Górny <mgorny@gentoo.org>2024-12-30 12:32:33 +0100
commit23bf4f998ffe1448f122403d23f084ce29207101 (patch)
tree04c7cda1adde86d9957f3ce72c62f5a2dece1d00 /eclass
parentllvm-r2.eclass: Remove obsolete Meson LLVM_CONFIG hack (diff)
downloadgentoo-23bf4f998ffe1448f122403d23f084ce29207101.tar.gz
gentoo-23bf4f998ffe1448f122403d23f084ce29207101.tar.bz2
gentoo-23bf4f998ffe1448f122403d23f084ce29207101.zip
eclass/tests: Copy llvm-r1 tests to llvm-r2.sh
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass')
-rwxr-xr-xeclass/tests/llvm-r2.sh101
1 files changed, 101 insertions, 0 deletions
diff --git a/eclass/tests/llvm-r2.sh b/eclass/tests/llvm-r2.sh
new file mode 100755
index 000000000000..e715f7e34e82
--- /dev/null
+++ b/eclass/tests/llvm-r2.sh
@@ -0,0 +1,101 @@
+#!/bin/bash
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+source tests-common.sh || exit
+
+EAPI=8
+
+test_globals() {
+ local compat=${1}
+ local expected_iuse=${2}
+ local expected_required_use=${3}
+ local expected_usedep=${4}
+ local x
+
+ tbegin "LLVM_COMPAT=( ${compat} )"
+
+ (
+ local fail=0
+ local LLVM_COMPAT=( ${compat} )
+
+ inherit llvm-r2
+
+ if [[ ${IUSE%% } != ${expected_iuse} ]]; then
+ eerror " IUSE: ${IUSE%% }"
+ eerror "does not match: ${expected_iuse}"
+ fail=1
+ fi
+
+ if [[ ${REQUIRED_USE} != ${expected_required_use} ]]; then
+ eerror " REQUIRED_USE: ${REQUIRED_USE}"
+ eerror "does not match: ${expected_required_use}"
+ fail=1
+ fi
+
+ if [[ ${LLVM_USEDEP} != ${expected_usedep} ]]; then
+ eerror " LLVM_USEDEP: ${LLVM_USEDEP}"
+ eerror "does not match: ${expected_usedep}"
+ fail=1
+ fi
+
+ exit "${fail}"
+ )
+
+ tend "${?}"
+}
+
+test_gen_dep() {
+ local arg=${1}
+ local expected
+ read -r -d '' expected
+
+ tbegin "llvm_gen_dep ${arg}"
+ local value=$(llvm_gen_dep "${arg}")
+
+ if [[ ${value} != ${expected} ]]; then
+ eerror "llvm_gen_dep ${arg}"
+ eerror "gave:"
+ eerror " ${value}"
+ eerror "expected:"
+ eerror " ${expected}"
+ fi
+ tend ${?}
+}
+
+# full range
+test_globals '14 15 16 17 18 19' \
+ "+llvm_slot_19 llvm_slot_15 llvm_slot_16 llvm_slot_17 llvm_slot_18" \
+ "^^ ( llvm_slot_15 llvm_slot_16 llvm_slot_17 llvm_slot_18 llvm_slot_19 )" \
+ "llvm_slot_15(-)?,llvm_slot_16(-)?,llvm_slot_17(-)?,llvm_slot_18(-)?,llvm_slot_19(-)?"
+test_globals '14 15 16 17 18' \
+ "+llvm_slot_18 llvm_slot_15 llvm_slot_16 llvm_slot_17" \
+ "^^ ( llvm_slot_15 llvm_slot_16 llvm_slot_17 llvm_slot_18 )" \
+ "llvm_slot_15(-)?,llvm_slot_16(-)?,llvm_slot_17(-)?,llvm_slot_18(-)?"
+# older than stable
+test_globals '14 15 16' \
+ "+llvm_slot_16 llvm_slot_15" \
+ "^^ ( llvm_slot_15 llvm_slot_16 )" \
+ "llvm_slot_15(-)?,llvm_slot_16(-)?"
+# old + newer than current stable
+test_globals '15 20' \
+ "+llvm_slot_15 llvm_slot_20" \
+ "^^ ( llvm_slot_15 llvm_slot_20 )" \
+ "llvm_slot_15(-)?,llvm_slot_20(-)?"
+# newer than current stable
+test_globals '19' \
+ "+llvm_slot_19" \
+ "^^ ( llvm_slot_19 )" \
+ "llvm_slot_19(-)?"
+
+LLVM_COMPAT=( {14..18} )
+inherit llvm-r2
+
+test_gen_dep 'llvm-core/llvm:${LLVM_SLOT} llvm-core/clang:${LLVM_SLOT}' <<-EOF
+ llvm_slot_15? ( llvm-core/llvm:15 llvm-core/clang:15 )
+ llvm_slot_16? ( llvm-core/llvm:16 llvm-core/clang:16 )
+ llvm_slot_17? ( llvm-core/llvm:17 llvm-core/clang:17 )
+ llvm_slot_18? ( llvm-core/llvm:18 llvm-core/clang:18 )
+EOF
+
+texit