Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 1/3] llvm.eclass: Add initial tests
Date: Tue, 26 May 2020 07:45:28
Message-Id: 20200526074432.136139-2-mgorny@gentoo.org
In Reply to: [gentoo-dev] [PATCH 0/3] llvm.eclass: Fix prepending path and add tests by "Michał Górny"
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