public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/2] eclass/tests: add basic tests for multilib_env() expansion
@ 2020-03-28  9:40 Sergei Trofimovich
  2020-03-28  9:40 ` [gentoo-dev] [PATCH 2/2] multilib.eclass: multilib_env(): set LIBDIR=lib for *-musl* Sergei Trofimovich
  2020-03-28 15:17 ` [gentoo-dev] [PATCH 1/2] eclass/tests: add basic tests for multilib_env() expansion Mike Gilbert
  0 siblings, 2 replies; 6+ messages in thread
From: Sergei Trofimovich @ 2020-03-28  9:40 UTC (permalink / raw
  To: gentoo-dev; +Cc: Sergei Trofimovich

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
---
 eclass/tests/multilib.sh | 61 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100755 eclass/tests/multilib.sh

diff --git a/eclass/tests/multilib.sh b/eclass/tests/multilib.sh
new file mode 100755
index 00000000000..308c456b98d
--- /dev/null
+++ b/eclass/tests/multilib.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+# Copyright 1999-2020 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+source tests-common.sh
+
+inherit multilib
+
+# Run 'multilib_env' and check what variables it expands to
+test-multilib_env() {
+	local target=$1 exp_abi=$2 exp_vars=" $3"
+	tbegin "expand-target $1"
+
+	# Reset default
+	unset MULTILIB_ABIS
+	unset DEFAULT_ABI
+	CFLAGS_default=
+	LDFLAGS_default=
+	LIBDIR_default=lib
+	CHOST_default=${target}
+	CTARGET_default=${CHOST_default}
+	LIBDIR_default=lib
+
+	multilib_env ${target}
+
+	local actual_abi="${DEFAULT_ABI}:${MULTILIB_ABIS}"
+
+	local actual_vars=""
+	local abi var v
+	for abi in ${MULTILIB_ABIS}; do
+		actual_vars+=" ${abi}? ("
+		for var in CHOST LIBDIR CFLAGS LDFLAGS; do
+			v=${var}_${abi}
+			actual_vars+=" ${var}=${!v}"
+		done
+		actual_vars+=" )"
+	done
+
+	[[ "${exp_abi}" == "${actual_abi}" && "${exp_vars}" == "${actual_vars}" ]]
+
+	if ! tend $? ; then
+		printf '### EXPECTED ABI: %s\n' "${exp_abi}"
+		printf '### ACTUAL   ABI: %s\n' "${actual_abi}"
+		printf '### EXPECTED VARS: %s\n' "${exp_vars}"
+		printf '### ACTUAL   VARS: %s\n' "${actual_vars}"
+	fi
+}
+
+# Pick a few interesting gargets from:
+# $ grep -h -o -R 'CHOST=.*' ../../profiles/ | sort -u
+
+test-multilib_env \
+	"x86_64-pc-linux-gnu" \
+	"amd64:amd64 x86" \
+	"amd64? ( CHOST=x86_64-pc-linux-gnu LIBDIR=lib64 CFLAGS=-m64 LDFLAGS= ) x86? ( CHOST=i686-pc-linux-gnu LIBDIR=lib CFLAGS=-m32 LDFLAGS= )"
+test-multilib_env \
+	"x86_64-pc-linux-gnux32" \
+	"x32:x32 amd64 x86" \
+	"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= )"
+
+texit
-- 
2.26.0



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-03-28 19:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-28  9:40 [gentoo-dev] [PATCH 1/2] eclass/tests: add basic tests for multilib_env() expansion Sergei Trofimovich
2020-03-28  9:40 ` [gentoo-dev] [PATCH 2/2] multilib.eclass: multilib_env(): set LIBDIR=lib for *-musl* Sergei Trofimovich
2020-03-28 15:19   ` Mike Gilbert
2020-03-28 19:56     ` Sergei Trofimovich
2020-03-28 15:17 ` [gentoo-dev] [PATCH 1/2] eclass/tests: add basic tests for multilib_env() expansion Mike Gilbert
2020-03-28 19:56   ` Sergei Trofimovich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox