Improve XML parsing to handle attributes as well.
[cfb.git] / cov.sh
diff --git a/cov.sh b/cov.sh
new file mode 100755 (executable)
index 0000000..0948141
--- /dev/null
+++ b/cov.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+CFB_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+INSTR_DIR="${CFB_ROOT}/../instr"
+
+#####################
+echo Compiling...
+find "${CFB_ROOT}/prod" -name "*.java" | xargs javac -g -Xlint:deprecation
+find "${CFB_ROOT}/test" -name "*.java" | xargs javac -g -classpath ${CFB_ROOT}/prod:${CLASSPATH} -Xlint:deprecation
+
+#####################
+echo Cleaning old coverage files...
+for x in "${INSTR_DIR}" report
+do
+    if [ -d "${x}" ]; then
+       rm -rf "${x}"
+    fi
+    mkdir -p "${x}"
+done
+for x in result.xml template.xml
+do
+    if [ -w ${x} ]; then
+       rm ${x}
+    fi
+done
+
+#####################
+echo Instrumenting...
+java -classpath "${CLASSPATH}" -jar `pwd`/jcov/jcov.jar Instr -t template.xml -o "${INSTR_DIR}" -type all "${CFB_ROOT}/prod"
+
+#####################
+echo Running unit tests...
+
+TESTS=""
+for x in `cd ${CFB_ROOT}/test; find . -name '*Test.class'`
+do
+    #echo CANDIDATE $x
+    TEST_CLASS=`echo ${x} | sed s:\^./:: | cut -d . -f 1 | sed s:/:.:g`
+    #echo TEST_CLASS ${TEST_CLASS}
+    TESTS="${TEST_CLASS} ${TESTS}"
+done
+
+echo First run:  locale es_ES, timezone Europe/Madrid
+java -Duser.language=es -Duser.country=ES -Duser.timezone=Europe/Madrid -Djcov.template=${CFB_ROOT}/template.xml -Djcov.file=${CFB_ROOT}/result.xml -classpath "${INSTR_DIR}:${CFB_ROOT}/test:${CLASSPATH}:/usr/share/java/junit.jar:${CFB_ROOT}/jcov/jcov_file_saver.jar" org.junit.runner.JUnitCore ${TESTS}
+
+echo Second run:  server default locale and timezone
+java -Djcov.template=${CFB_ROOT}/template.xml -Djcov.file=${CFB_ROOT}/result.xml -classpath "${INSTR_DIR}:${CFB_ROOT}/test:${CLASSPATH}:/usr/share/java/junit.jar:${CFB_ROOT}/jcov/jcov_file_saver.jar" org.junit.runner.JUnitCore ${TESTS}
+
+#####################
+echo Generating HTML Report...
+
+java -jar "${CFB_ROOT}/jcov/jcov.jar" RepGen -sourcepath "${CFB_ROOT}/prod" -log.level FINE result.xml