diff --git a/test/cfg/runtests.sh b/test/cfg/runtests.sh
index 6923e9da8..8da6f5d58 100755
--- a/test/cfg/runtests.sh
+++ b/test/cfg/runtests.sh
@@ -406,9 +406,8 @@ function cppunit_fn {
fi
}
-for f in "${DIR}"*.{c,cpp}
-do
- f=$(basename $f)
+function check_file {
+ f=$(basename $1)
case $f in
boost.cpp)
boost_fn
@@ -506,22 +505,41 @@ do
echo "Unhandled file $f"
exit_if_strict
esac
+}
+
+function check_files
+{
+for f in "$@"
+do
+ check_file $f
done
+}
# Check the syntax of the defines in the configuration files
-if ! xmlstarlet --version; then
- echo "xmlstarlet needed to extract defines, skipping defines check."
- exit_if_strict
+function check_defines_syntax
+{
+ if ! xmlstarlet --version; then
+ echo "xmlstarlet needed to extract defines, skipping defines check."
+ exit_if_strict
+ else
+ for configfile in ${CFG}*.cfg; do
+ echo "Checking defines in $configfile"
+ # Disable debugging output temporarily since there could be many defines
+ set +x
+ # XMLStarlet returns 1 if no elements were found which is no problem here
+ EXTRACTED_DEFINES=$(xmlstarlet sel -t -m '//define' -c . -n <$configfile || true)
+ EXTRACTED_DEFINES=$(echo "$EXTRACTED_DEFINES" | sed 's///g')
+ echo "$EXTRACTED_DEFINES" | gcc -fsyntax-only -xc -Werror -
+ done
+ fi
+}
+
+if [ $# -eq 0 ]
+then
+ check_files "${DIR}"*.{c,cpp}
+ check_defines_syntax
else
- for configfile in ${CFG}*.cfg; do
- echo "Checking defines in $configfile"
- # Disable debugging output temporarily since there could be many defines
- set +x
- # XMLStarlet returns 1 if no elements were found which is no problem here
- EXTRACTED_DEFINES=$(xmlstarlet sel -t -m '//define' -c . -n <$configfile || true)
- EXTRACTED_DEFINES=$(echo "$EXTRACTED_DEFINES" | sed 's///g')
- echo "$EXTRACTED_DEFINES" | gcc -fsyntax-only -xc -Werror -
- done
+ check_files "$@"
fi
echo SUCCESS