summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /eclass/tests/flag-o-matic.sh
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'eclass/tests/flag-o-matic.sh')
-rwxr-xr-xeclass/tests/flag-o-matic.sh149
1 files changed, 149 insertions, 0 deletions
diff --git a/eclass/tests/flag-o-matic.sh b/eclass/tests/flag-o-matic.sh
new file mode 100755
index 000000000000..762a5f74d94d
--- /dev/null
+++ b/eclass/tests/flag-o-matic.sh
@@ -0,0 +1,149 @@
+#!/bin/bash
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+source tests-common.sh
+
+inherit flag-o-matic
+
+CFLAGS="-a -b -c=1"
+CXXFLAGS="-x -y -z=2"
+LDFLAGS="-l -m -n=3"
+ftend() {
+ local ret=$?
+ local msg="Failed; flags are:"
+ local flag
+ for flag in $(all-flag-vars) ; do
+ msg+=$'\n\t'"${flag}=${!flag}"
+ done
+ tend ${ret} "${msg}"
+}
+
+tbegin "is-flag"
+! (is-flag 1 2 3) 2>/dev/null
+ftend
+
+tbegin "is-ldflag"
+! (is-ldflag 1 2 3) 2>/dev/null
+ftend
+
+while read exp flag ; do
+ [[ -z ${exp}${flag} ]] && continue
+
+ tbegin "is-flagq ${flag}"
+ is-flagq ${flag}
+ [[ ${exp} -eq $? ]]
+ ftend
+done <<<"
+ 1 -L
+ 0 -a
+ 0 -x
+"
+
+while read exp flag ; do
+ [[ -z ${exp}${flag} ]] && continue
+
+ tbegin "is-ldflagq ${flag}"
+ is-ldflagq "${flag}"
+ [[ ${exp} -eq $? ]]
+ ftend
+done <<<"
+ 1 -a
+ 0 -n=*
+ 1 -n
+"
+
+tbegin "strip-unsupported-flags"
+strip-unsupported-flags
+[[ ${CFLAGS} == "" ]] && [[ ${CXXFLAGS} == "-z=2" ]]
+ftend
+
+for var in $(all-flag-vars) ; do
+ eval ${var}=\"-filter -filter-glob -foo-${var%FLAGS}\"
+done
+
+tbegin "filter-flags basic"
+filter-flags -filter
+(
+for var in $(all-flag-vars) ; do
+ val=${!var}
+ [[ ${val} == "-filter-glob -foo-${var%FLAGS}" ]] || exit 1
+done
+)
+ftend
+
+tbegin "filter-flags glob"
+filter-flags '-filter-*'
+(
+for var in $(all-flag-vars) ; do
+ val=${!var}
+ [[ ${val} == "-foo-${var%FLAGS}" ]] || exit 1
+done
+)
+ftend
+
+tbegin "strip-flags basic"
+CXXFLAGS+=" -O999 "
+strip-flags
+[[ -z ${CFLAGS}${LDFLAGS}${CPPFLAGS} && ${CXXFLAGS} == "-O2" ]]
+ftend
+
+tbegin "replace-flags basic"
+CFLAGS="-O0 -foo"
+replace-flags -O0 -O1
+[[ ${CFLAGS} == "-O1 -foo" ]]
+ftend
+
+tbegin "replace-flags glob"
+CXXFLAGS="-O0 -mcpu=bad -cow"
+replace-flags '-mcpu=*' -mcpu=good
+[[ ${CXXFLAGS} == "-O0 -mcpu=good -cow" ]]
+ftend
+
+tbegin "append-cflags basic"
+CFLAGS=
+append-cflags -O0
+[[ ${CFLAGS} == " -O0" ]]
+ftend
+
+tbegin "append-cflags -DFOO='a b c'"
+CFLAGS=
+append-cflags '-DFOO="a b c"'
+[[ ${CFLAGS} == ' -DFOO="a b c"' ]]
+ftend
+
+tbegin "raw-ldflags"
+LDFLAGS='-Wl,-O1 -Wl,--as-needed -Wl,-z,now -flto'
+LDFLAGS=$(raw-ldflags)
+[[ ${LDFLAGS} == '-O1 --as-needed -z now' ]]
+ftend
+
+tbegin "test-flags-CC (valid flags)"
+out=$(test-flags-CC -O3)
+[[ $? -eq 0 && ${out} == "-O3" ]]
+ftend
+
+tbegin "test-flags-CC (invalid flags)"
+out=$(test-flags-CC -finvalid-flag)
+[[ $? -ne 0 && -z ${out} ]]
+ftend
+
+if type -P clang >/dev/null ; then
+tbegin "test-flags-CC (valid flags w/clang)"
+out=$(CC=clang test-flags-CC -O3)
+[[ $? -eq 0 && ${out} == "-O3" ]]
+ftend
+
+tbegin "test-flags-CC (invalid flags w/clang)"
+out=$(CC=clang test-flags-CC -finvalid-flag)
+[[ $? -ne 0 && -z ${out} ]]
+ftend
+
+tbegin "test-flags-CC (gcc-valid but clang-invalid flags)"
+out=$(CC=clang test-flags-CC -finline-limit=1200)
+[[ $? -ne 0 && -z ${out} ]]
+ftend
+fi
+
+texit