Gentoo Archives: gentoo-dev

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

Replies