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 |
> |