| #!/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() { |
| 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 |
| |
| texit |