]> ocean-lang.org Git - ocean/blobdiff - tools/mark-untested
oceani: improve test coverage
[ocean] / tools / mark-untested
diff --git a/tools/mark-untested b/tools/mark-untested
new file mode 100755 (executable)
index 0000000..d88d24a
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+sed -i -e 's,  // UNTESTED$,,' $(git grep -l  '// UNTESTED$' .)
+
+case $1 in
+  remove )
+       exit 0
+    ;;
+
+  * )
+       rm coverage/*.mdc.gcov
+       make SKIP_VALGRIND=1 oceani_test_suite || exit 1
+       for i in coverage/*.mdc.gcov
+       do
+        b=${i%.gcov}
+        b=${b#coverage/}
+        if [ ! -f "$b" ]; then 
+           continue
+        fi
+        grep '#####:' "$i" | grep -vE '(NOTEST|UNTESTED|:######|}\$$|:$|:[     ]*(\||\$))' |
+            awk -F: '{printf "%ds,$,   // UNTESTED,\n", $2}' |
+            sed -i -e 's,[      ]*// UNTESTED$,,' -f - "$b"
+         grep '[0-8]: *[1-9][0-9]*:.*// NOTEST$' "$i" |
+            awk -F: '{printf "%ds,[    ]*// NOTEST$,,\n", $2}' |
+               sed -i -f - "$b"
+        grep -c UNTESTED "$b"
+       done
+esac
+