1 |
Signed-off-by: Michał Górny <mgorny@g.o> |
2 |
--- |
3 |
eclass/tests/llvm.sh | 138 +++++++++++++++++++++++++++++++++++++++++++ |
4 |
1 file changed, 138 insertions(+) |
5 |
create mode 100755 eclass/tests/llvm.sh |
6 |
|
7 |
diff --git a/eclass/tests/llvm.sh b/eclass/tests/llvm.sh |
8 |
new file mode 100755 |
9 |
index 000000000000..bb8d5fc998e8 |
10 |
--- /dev/null |
11 |
+++ b/eclass/tests/llvm.sh |
12 |
@@ -0,0 +1,138 @@ |
13 |
+#!/bin/bash |
14 |
+# Copyright 1999-2020 Gentoo Authors |
15 |
+# Distributed under the terms of the GNU General Public License v2 |
16 |
+ |
17 |
+EAPI=7 |
18 |
+source tests-common.sh |
19 |
+ |
20 |
+inherit llvm |
21 |
+ |
22 |
+# llvm_check_deps override to disable has_version use. |
23 |
+# in: ${LLVM_SLOT} |
24 |
+# returns 0 if installed (i.e. == LLVM_INSTALLED_SLOT), 1 otherwise |
25 |
+llvm_check_deps() { |
26 |
+ [[ ${LLVM_SLOT} == ${LLVM_INSTALLED_SLOT} ]] |
27 |
+} |
28 |
+ |
29 |
+# check_prefix <expected> [<args>...] |
30 |
+# Check output of `get_llvm_prefix <args>...`. |
31 |
+check_prefix() { |
32 |
+ local expected=${1} |
33 |
+ shift |
34 |
+ |
35 |
+ tbegin "get_llvm_prefix ${*}; inst=${LLVM_INSTALLED_SLOT} -> ${expected}" |
36 |
+ prefix=$(get_llvm_prefix "${@}") |
37 |
+ [[ ${prefix} == ${expected} ]] || |
38 |
+ eerror "got: ${prefix} != exp: ${expected}" |
39 |
+ tend ${?} |
40 |
+} |
41 |
+ |
42 |
+# check_setup_path <expected> |
43 |
+# Check PATH after pkg_setup. |
44 |
+check_setup_path() { |
45 |
+ local expected=${1} |
46 |
+ shift |
47 |
+ |
48 |
+ tbegin "pkg_setup; max=${LLVM_MAX_SLOT}; inst=${LLVM_INSTALLED_SLOT} -> PATH=${expected}" |
49 |
+ path=$(llvm_pkg_setup; echo "${PATH}") |
50 |
+ [[ ${path} == ${expected} ]] || |
51 |
+ eerror "got: ${path} != exp: ${expected}" |
52 |
+ tend ${?} |
53 |
+} |
54 |
+ |
55 |
+ |
56 |
+EAPI=7 |
57 |
+BROOT=/broot |
58 |
+SYSROOT=/sysroot |
59 |
+ESYSROOT=/sysroot/eprefix |
60 |
+ROOT=/root |
61 |
+EROOT=/root/eprefix |
62 |
+ |
63 |
+ebegin "Testing check_setup_path without max slot" |
64 |
+eindent |
65 |
+ LLVM_INSTALLED_SLOT=11 \ |
66 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/11 |
67 |
+ LLVM_INSTALLED_SLOT=10 \ |
68 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/10 |
69 |
+eoutdent |
70 |
+ |
71 |
+ebegin "Testing check_setup_path with max slot" |
72 |
+eindent |
73 |
+ LLVM_INSTALLED_SLOT=1* \ |
74 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/11 11 |
75 |
+ LLVM_INSTALLED_SLOT=1* \ |
76 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/10 10 |
77 |
+ LLVM_INSTALLED_SLOT=10 \ |
78 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/10 11 |
79 |
+eoutdent |
80 |
+ |
81 |
+ebegin "Testing check_setup_path option switches" |
82 |
+eindent |
83 |
+ LLVM_INSTALLED_SLOT=11 \ |
84 |
+ check_prefix /broot/usr/lib/llvm/11 -b |
85 |
+ LLVM_INSTALLED_SLOT=11 \ |
86 |
+ check_prefix /sysroot/eprefix/usr/lib/llvm/11 -d |
87 |
+eoutdent |
88 |
+ |
89 |
+ebegin "Testing check_setup_path EAPI 6 API" |
90 |
+eindent |
91 |
+ EAPI=6 \ |
92 |
+ LLVM_INSTALLED_SLOT=11 \ |
93 |
+ check_prefix /usr/lib/llvm/11 -d |
94 |
+eoutdent |
95 |
+ |
96 |
+BASEPATH=/usr/lib/ccache/bin:/usr/bin:/usr/sbin:/bin:/sbin |
97 |
+ |
98 |
+# TODO: cross support? |
99 |
+ESYSROOT= |
100 |
+ |
101 |
+ebegin "Testing pkg_setup with all installed LLVM versions in PATH" |
102 |
+eindent |
103 |
+ LLVM_MAX_SLOT=11 \ |
104 |
+ LLVM_INSTALLED_SLOT=1* \ |
105 |
+ PATH=${BASEPATH}:/usr/lib/llvm/11/bin \ |
106 |
+ check_setup_path "/usr/lib/llvm/11/bin:${BASEPATH}:/usr/lib/llvm/11/bin" |
107 |
+ |
108 |
+ LLVM_MAX_SLOT=10 \ |
109 |
+ LLVM_INSTALLED_SLOT=1* \ |
110 |
+ PATH=${BASEPATH}:/usr/lib/llvm/11/bin:/usr/lib/llvm/10/bin \ |
111 |
+ check_setup_path "/usr/lib/llvm/10/bin:${BASEPATH}:/usr/lib/llvm/11/bin:/usr/lib/llvm/10/bin" |
112 |
+ |
113 |
+ LLVM_MAX_SLOT=11 \ |
114 |
+ LLVM_INSTALLED_SLOT=10 \ |
115 |
+ PATH=${BASEPATH}:/usr/lib/llvm/10/bin \ |
116 |
+ check_setup_path "/usr/lib/llvm/10/bin:${BASEPATH}:/usr/lib/llvm/10/bin" |
117 |
+eoutdent |
118 |
+ |
119 |
+ebegin "Testing pkg_setup with the other LLVM version in PATH" |
120 |
+eindent |
121 |
+ LLVM_MAX_SLOT=11 \ |
122 |
+ LLVM_INSTALLED_SLOT=1* \ |
123 |
+ PATH=${BASEPATH}:/usr/lib/llvm/10/bin \ |
124 |
+ check_setup_path "/usr/lib/llvm/11/bin:${BASEPATH}:/usr/lib/llvm/10/bin" |
125 |
+ |
126 |
+ LLVM_MAX_SLOT=10 \ |
127 |
+ LLVM_INSTALLED_SLOT=1* \ |
128 |
+ PATH=${BASEPATH}:/usr/lib/llvm/11/bin \ |
129 |
+ check_setup_path "/usr/lib/llvm/10/bin:${BASEPATH}:/usr/lib/llvm/11/bin" |
130 |
+eoutdent |
131 |
+ |
132 |
+ebegin "Testing pkg_setup with LLVM missing from PATH" |
133 |
+eindent |
134 |
+ LLVM_MAX_SLOT=11 \ |
135 |
+ LLVM_INSTALLED_SLOT=1* \ |
136 |
+ PATH=${BASEPATH} \ |
137 |
+ check_setup_path "/usr/lib/llvm/11/bin:${BASEPATH}" |
138 |
+ |
139 |
+ LLVM_MAX_SLOT=10 \ |
140 |
+ LLVM_INSTALLED_SLOT=1* \ |
141 |
+ PATH=${BASEPATH} \ |
142 |
+ check_setup_path "/usr/lib/llvm/10/bin:${BASEPATH}" |
143 |
+ |
144 |
+ LLVM_MAX_SLOT=11 \ |
145 |
+ LLVM_INSTALLED_SLOT=10 \ |
146 |
+ PATH=${BASEPATH} \ |
147 |
+ check_setup_path "/usr/lib/llvm/10/bin:${BASEPATH}" |
148 |
+eoutdent |
149 |
+ |
150 |
+texit |
151 |
-- |
152 |
2.26.2 |