|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
source tests-common.sh
|
|
|
|
|
|
|
|
inherit flag-o-matic
|
|
|
|
|
|
|
|
CFLAGS="-a -b -c=1"
|
|
|
|
CXXFLAGS="-x -y -z=2"
|
|
|
|
LDFLAGS="-l -m -n=3"
|
|
|
|
ftend() {
|
|
|
|
tend $? "CFLAGS=${CFLAGS} CXXFLAGS=${CXXFLAGS} LDFLAGS=${LDFLAGS}"
|
|
|
|
}
|
|
|
|
|
|
|
|
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 v in C CPP CXX F FC LD ; do
|
|
|
|
var="${v}FLAGS"
|
|
|
|
eval ${var}=\"-filter -filter-glob -${v}\"
|
|
|
|
done
|
|
|
|
|
|
|
|
tbegin "filter-flags basic"
|
|
|
|
filter-flags -filter
|
|
|
|
(
|
|
|
|
for v in C CPP CXX F FC LD ; do
|
|
|
|
var="${v}FLAGS"
|
|
|
|
val=${!var}
|
|
|
|
[[ ${val} == "-filter-glob -${v}" ]] || exit 1
|
|
|
|
done
|
|
|
|
)
|
|
|
|
ftend
|
|
|
|
|
|
|
|
tbegin "filter-flags glob"
|
|
|
|
filter-flags '-filter-*'
|
|
|
|
(
|
|
|
|
for v in C CPP CXX F FC LD ; do
|
|
|
|
var="${v}FLAGS"
|
|
|
|
val=${!var}
|
|
|
|
[[ ${val} == "-${v}" ]] || 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
|
|
|
|
|
|
|
|
texit
|