Add assert()s to tree.h to soothe Clang static analyzer.
[darkstat] / test_headers.sh
index b1f6636..e8e0042 100755 (executable)
@@ -3,6 +3,7 @@
 
 a="\033[33;1m"
 z="\033[m"
+problem=0
 
 check_deps() {
   echo checking header dependencies...
@@ -13,12 +14,14 @@ check_deps() {
   files=`ls *.h | fgrep -v -e graphjs.h -e stylecss.h`
 
   for f in $files; do
+    echo " * $f"
     cat >$src <<EOF
 #include "$f"
 void test_hdr_do_nothing(void) { }
 EOF
     if ! gcc -c $src 2>/dev/null; then
       echo "${a}===> $f can't be included by itself${z}"
+      problem=1
       gcc -c $src
     else
       cat >$src <<EOF
@@ -28,6 +31,7 @@ void test_hdr_do_nothing(void) { }
 EOF
       if ! gcc -c $src 2>/dev/null; then
         echo "${a}===> $f can't be included twice${z}"
+        problem=1
         gcc -c $src
       fi
     fi
@@ -47,6 +51,7 @@ check_defines() {
   for file in `egrep -l "$defines" $files`; do
     if ! fgrep -q '#include "'$header'"' $file; then
       echo "${a}===> $file should include $header${z}"
+      problem=1
       egrep --color=always "$defines" $file
     fi
   done
@@ -55,6 +60,7 @@ check_defines() {
   for file in `fgrep -l '#include "'$header'"' *.[ch]`; do
    if ! egrep -q "$defines" $file; then
     echo "${a}===> $file should not include $header${z}"
+    problem=1
    fi
   done
 }
@@ -73,4 +79,6 @@ defines=`sed -e 's/# \+/#/;' < cdefs.h | grep '#define' | cut -d' ' -f2 |
 files=`ls *.[ch] | fgrep -v -e cdefs.h -e graphjs.h -e stylecss.h`
 check_defines cdefs.h "$defines" "$files"
 
+exit $problem
+
 # vim:set ts=2 sw=2 et: