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