summaryrefslogtreecommitdiff
path: root/eclass/tests
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/tests')
-rwxr-xr-xeclass/tests/toolchain.sh95
1 files changed, 94 insertions, 1 deletions
diff --git a/eclass/tests/toolchain.sh b/eclass/tests/toolchain.sh
index 47401e687520..ec2253568569 100755
--- a/eclass/tests/toolchain.sh
+++ b/eclass/tests/toolchain.sh
@@ -2,6 +2,12 @@
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
+EAPI=5
+
+# apply exlass globals to test version parsing
+TOOLCHAIN_GCC_PV=7.3.0
+PR=r0
+
source tests-common.sh
inherit toolchain
@@ -14,7 +20,7 @@ test_downgrade_arch_flags() {
shift 2
CFLAGS=${@}
- tbegin "${ver} ${CFLAGS} => ${exp}"
+ tbegin "downgrade_arch_flags: ${ver} ${CFLAGS} => ${exp}"
CHOST=x86_64 # needed for tc-arch
downgrade_arch_flags ${ver}
@@ -79,4 +85,91 @@ test_downgrade_arch_flags 4.3 "-march=foo -mno-sse4.1" "-march=foo -mno-sha -mno
test_downgrade_arch_flags 4.2 "-march=foo" "-march=foo -mno-sha -mno-rtm -mno-avx2 -mno-avx -mno-sse4.1"
test_downgrade_arch_flags 4.4 "-O2 -march=core2 -ffoo -fblah" "-O2 -march=atom -mno-sha -ffoo -mno-rtm -fblah"
+
+# basic version parsing tests in preparation to eapi7-ver switch
+
+test_tc_version_is_at_least() {
+ local exp msg ret=0 want mine res
+
+ want=${1}
+ mine=${2}
+ exp=${3}
+
+ tbegin "tc_version_is_at_least: ${want} ${mine} => ${exp}"
+
+ tc_version_is_at_least ${want} ${mine}
+ res=$?
+
+ if [[ ${res} -ne ${exp} ]]; then
+ msg="Failure - Expected: \"${exp}\" Got: \"${res}\""
+ ret=1
+ fi
+ tend ${ret} ${msg}
+}
+
+# want mine expect
+test_tc_version_is_at_least 8 '' 1
+test_tc_version_is_at_least 8.0 '' 1
+test_tc_version_is_at_least 7 '' 0
+test_tc_version_is_at_least 7.0 '' 0
+test_tc_version_is_at_least ${TOOLCHAIN_GCC_PV} '' 0
+test_tc_version_is_at_least 5.0 6.0 0
+
+test_tc_version_is_between() {
+ local exp msg ret=0 lo hi res
+
+ lo=${1}
+ hi=${2}
+ exp=${3}
+
+ tbegin "tc_version_is_between: ${lo} ${hi} => ${exp}"
+
+ tc_version_is_between ${lo} ${hi}
+ res=$?
+
+ if [[ ${res} -ne ${exp} ]]; then
+ msg="Failure - Expected: \"${exp}\" Got: \"${res}\""
+ ret=1
+ fi
+ tend ${ret} ${msg}
+}
+
+# lo hi expect
+test_tc_version_is_between 1 0 1
+test_tc_version_is_between 1 2 1
+test_tc_version_is_between 7 8 0
+test_tc_version_is_between ${TOOLCHAIN_GCC_PV} 8 0
+test_tc_version_is_between ${TOOLCHAIN_GCC_PV} ${TOOLCHAIN_GCC_PV} 1
+test_tc_version_is_between 7 ${TOOLCHAIN_GCC_PV} 1
+test_tc_version_is_between 8 9 1
+
+# eclass has a few critical global variables worth not breaking
+test_var_assert() {
+ local var_name exp
+
+ var_name=${1}
+ exp=${2}
+
+ tbegin "asserv variable value: ${var_name} => ${exp}"
+
+ if [[ ${!var_name} != ${exp} ]]; then
+ msg="Failure - Expected: \"${exp}\" Got: \"${!var_name}\""
+ ret=1
+ fi
+ tend ${ret} ${msg}
+}
+
+# TODO: convert these globals to helpers to ease testing against multiple
+# ${TOOLCHAIN_GCC_PV} vaues.
+test_var_assert GCC_PV 7.3.0
+test_var_assert GCC_PVR 7.3.0
+test_var_assert GCC_RELEASE_VER 7.3.0
+test_var_assert GCC_BRANCH_VER 7.3
+test_var_assert GCCMAJOR 7
+test_var_assert GCCMINOR 3
+test_var_assert GCCMICRO 0
+test_var_assert BRANCH_UPDATE ''
+test_var_assert GCC_CONFIG_VER 7.3.0
+test_var_assert PREFIX /usr
+
texit