1 |
Signed-off-by: Sergei Trofimovich <slyfox@g.o> |
2 |
--- |
3 |
eclass/tests/multilib.sh | 61 ++++++++++++++++++++++++++++++++++++++++ |
4 |
1 file changed, 61 insertions(+) |
5 |
create mode 100755 eclass/tests/multilib.sh |
6 |
|
7 |
diff --git a/eclass/tests/multilib.sh b/eclass/tests/multilib.sh |
8 |
new file mode 100755 |
9 |
index 00000000000..308c456b98d |
10 |
--- /dev/null |
11 |
+++ b/eclass/tests/multilib.sh |
12 |
@@ -0,0 +1,61 @@ |
13 |
+#!/bin/bash |
14 |
+# Copyright 1999-2020 Gentoo Foundation |
15 |
+# Distributed under the terms of the GNU General Public License v2 |
16 |
+ |
17 |
+source tests-common.sh |
18 |
+ |
19 |
+inherit multilib |
20 |
+ |
21 |
+# Run 'multilib_env' and check what variables it expands to |
22 |
+test-multilib_env() { |
23 |
+ local target=$1 exp_abi=$2 exp_vars=" $3" |
24 |
+ tbegin "expand-target $1" |
25 |
+ |
26 |
+ # Reset default |
27 |
+ unset MULTILIB_ABIS |
28 |
+ unset DEFAULT_ABI |
29 |
+ CFLAGS_default= |
30 |
+ LDFLAGS_default= |
31 |
+ LIBDIR_default=lib |
32 |
+ CHOST_default=${target} |
33 |
+ CTARGET_default=${CHOST_default} |
34 |
+ LIBDIR_default=lib |
35 |
+ |
36 |
+ multilib_env ${target} |
37 |
+ |
38 |
+ local actual_abi="${DEFAULT_ABI}:${MULTILIB_ABIS}" |
39 |
+ |
40 |
+ local actual_vars="" |
41 |
+ local abi var v |
42 |
+ for abi in ${MULTILIB_ABIS}; do |
43 |
+ actual_vars+=" ${abi}? (" |
44 |
+ for var in CHOST LIBDIR CFLAGS LDFLAGS; do |
45 |
+ v=${var}_${abi} |
46 |
+ actual_vars+=" ${var}=${!v}" |
47 |
+ done |
48 |
+ actual_vars+=" )" |
49 |
+ done |
50 |
+ |
51 |
+ [[ "${exp_abi}" == "${actual_abi}" && "${exp_vars}" == "${actual_vars}" ]] |
52 |
+ |
53 |
+ if ! tend $? ; then |
54 |
+ printf '### EXPECTED ABI: %s\n' "${exp_abi}" |
55 |
+ printf '### ACTUAL ABI: %s\n' "${actual_abi}" |
56 |
+ printf '### EXPECTED VARS: %s\n' "${exp_vars}" |
57 |
+ printf '### ACTUAL VARS: %s\n' "${actual_vars}" |
58 |
+ fi |
59 |
+} |
60 |
+ |
61 |
+# Pick a few interesting gargets from: |
62 |
+# $ grep -h -o -R 'CHOST=.*' ../../profiles/ | sort -u |
63 |
+ |
64 |
+test-multilib_env \ |
65 |
+ "x86_64-pc-linux-gnu" \ |
66 |
+ "amd64:amd64 x86" \ |
67 |
+ "amd64? ( CHOST=x86_64-pc-linux-gnu LIBDIR=lib64 CFLAGS=-m64 LDFLAGS= ) x86? ( CHOST=i686-pc-linux-gnu LIBDIR=lib CFLAGS=-m32 LDFLAGS= )" |
68 |
+test-multilib_env \ |
69 |
+ "x86_64-pc-linux-gnux32" \ |
70 |
+ "x32:x32 amd64 x86" \ |
71 |
+ "x32? ( CHOST=x86_64-pc-linux-gnux32 LIBDIR=libx32 CFLAGS=-mx32 LDFLAGS= ) amd64? ( CHOST=x86_64-pc-linux-gnu LIBDIR=lib64 CFLAGS=-m64 LDFLAGS= ) x86? ( CHOST=i686-pc-linux-gnu LIBDIR=lib CFLAGS=-m32 LDFLAGS= )" |
72 |
+ |
73 |
+texit |
74 |
-- |
75 |
2.26.0 |