Gentoo Archives: gentoo-dev

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-dev@l.g.o
Cc: Sergei Trofimovich <slyfox@g.o>
Subject: [gentoo-dev] [PATCH 1/2] eclass/tests: add basic tests for multilib_env() expansion
Date: Sat, 28 Mar 2020 09:41:08
Message-Id: 20200328094043.648161-1-slyfox@gentoo.org
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

Replies