2 # Include this file in your shell script by using:
7 # we don't quote $TEXT in case it contains newlines; newlines
8 # aren't allowed in test output. However, we set -f so that
9 # at least shell glob characters aren't processed.
16 if [ -n "$BASH_VERSION" ]; then
20 WVCALLER_FILE=${BASH_SOURCE[2]}
21 WVCALLER_LINE=${BASH_LINENO[1]}
27 WVCALLER_FILE="unknown"
36 TEXT=$(_wvtextclean "$2")
38 if [ "$CODE" -ne 0 ]; then
41 echo "! $WVCALLER_FILE:$WVCALLER_LINE $TEXT $OK" >&2
42 if [ "$CODE" -ne 0 ]; then
72 _wvcheck 1 "NOT($TEXT)"
76 _wvcheck 0 "NOT($TEXT)"
92 _wvcheck $(_wvgetrv [ "$#" -eq 2 ]) "exactly 2 arguments"
97 _wvcheck $(_wvgetrv [ "$1" = "$2" ]) "'$1' = '$2'"
104 _wvcheck $(_wvgetrv [ "$#" -eq 2 ]) "exactly 2 arguments"
105 echo "Comparing:" >&2
109 _wvcheck $(_wvgetrv [ "$1" != "$2" ]) "'$1' != '$2'"
117 _wvcheck $(_wvgetrv [ $RC -eq 0 ]) "return code($RC) == 0"
125 _wvcheck $(_wvgetrv [ $RC -ne 0 ]) "return code($RC) != 0"
133 echo "Testing \"$* ($OMK_RULES)\" in $WVCALLER_FILE:" >&2
138 WVPASS cp "$OMK_TESTSROOT/../leaf-makefile/Makefile" .
139 for i in `find -L . -mindepth 2 -name Makefile.omk`; do
141 WVPASS cp Makefile "${d}/Makefile"
147 CC=$(make -qp|sed -ne '/^CC = / s///p')
148 if ! [[ -x "$CC" ]]; then
149 echo "Warning: $CC not found - skipping the test"
154 OMK_TESTSROOT=${OMK_TESTSROOT:-$(readlink --canonicalize $(dirname $0))}
155 OMK_RULES=${OMK_RULES:-linux} # When run manually, we use linux rules
157 if [[ -f "${OMK_TESTSROOT}/${OMK_RULES}.env" ]]; then
158 WVPASS . "${OMK_TESTSROOT}/${OMK_RULES}.env"
163 [[ -z "$RTEMS_MAKEFILE_PATH" ]] && exit 0
166 [[ -z "$WRENV" ]] && exit 0
170 echo "Testing \"$OMK_RULES rules\" in $(basename $0):" >&2
171 testdir="tmp/$(basename $0 .sh).$OMK_RULES"
172 [[ -d "$testdir" ]] && WVPASS rm -rf "$testdir"
173 WVPASS mkdir -p "$testdir"
175 WVPASS cp "$OMK_TESTSROOT"/../rules/$OMK_RULES/* .