Initial
[frank.git] / cov.sh
1 #!/bin/bash
2 WEB_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3 INSTR_DIR="${WEB_ROOT}/../instr"
4
5 #####################
6 echo Compiling...
7 find "${WEB_ROOT}/prod" -name "*.java" | xargs javac
8 find "${WEB_ROOT}/test" -name "*.java" | xargs javac -classpath ${WEB_ROOT}/prod:${CLASSPATH}
9
10 #####################
11 echo Cleaning old coverage files...
12 for x in "${INSTR_DIR}" report
13 do
14     if [ -d "${x}" ]; then
15         rm -rf "${x}"
16     fi
17     mkdir -p "${x}"
18 done
19 for x in result.xml template.xml
20 do
21     if [ -w ${x} ]; then
22         rm ${x}
23     fi
24 done
25
26 #####################
27 echo Instrumenting...
28 java -classpath "${CLASSPATH}" -jar `pwd`/jcov/jcov.jar Instr -t template.xml -o "${INSTR_DIR}" -type all "${WEB_ROOT}/prod"
29
30 #####################
31 echo Running unit tests...
32
33 TESTS=""
34 for x in `cd ${WEB_ROOT}/test; find . -name '*Test.class'`
35 do
36     #echo CANDIDATE $x
37     TEST_CLASS=`echo ${x} | sed s:\^./:: | cut -d . -f 1 | sed s:/:.:g`
38     #echo TEST_CLASS ${TEST_CLASS}
39     TESTS="${TEST_CLASS} ${TESTS}"
40 done
41
42 java -Djcov.template=${WEB_ROOT}/template.xml -Djcov.file=${WEB_ROOT}/result.xml -classpath "${INSTR_DIR}:${WEB_ROOT}/test:${CLASSPATH}:/usr/share/java/junit.jar:${WEB_ROOT}/jcov/jcov_file_saver.jar" org.junit.runner.JUnitCore ${TESTS}
43
44 #####################
45 echo Generating HTML Report...
46
47 java -jar "${WEB_ROOT}/jcov/jcov.jar" RepGen -sourcepath "${WEB_ROOT}/prod" -log.level FINE result.xml