Unit testing: confirm that Analyzer can parse some sample XML
[cfb.git] / cov.sh
1 #!/bin/bash
2 CFB_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
3 INSTR_DIR="${CFB_ROOT}/../instr"
4
5 #####################
6 echo Compiling...
7 find "${CFB_ROOT}/prod" -name "*.java" | xargs javac -g -Xlint:deprecation
8 find "${CFB_ROOT}/test" -name "*.java" | xargs javac -g -classpath ${CFB_ROOT}/prod:${CLASSPATH} -Xlint:deprecation
9
10 if [ -d "${CFB_ROOT}/bin" ]; then
11     rm -rf "${CFB_ROOT}/bin"
12 fi
13 mkdir -p "${CFB_ROOT}/bin"
14 cd "${CFB_ROOT}/prod"
15 find . -name '*.class' | xargs tar zcf "${CFB_ROOT}/tmp_classes.tar.gz" 
16 cd "${CFB_ROOT}/bin"
17 tar zxf "${CFB_ROOT}/tmp_classes.tar.gz"
18 if [ -e "${CFB_ROOT}/tmp_classes.tar.gz" ]; then
19     rm  "${CFB_ROOT}/tmp_classes.tar.gz"
20 fi
21 cd "${CFB_ROOT}"
22
23 #####################
24 echo Cleaning old coverage files...
25 for x in "${INSTR_DIR}" report
26 do
27     if [ -d "${x}" ]; then
28         rm -rf "${x}"
29     fi
30     mkdir -p "${x}"
31 done
32 for x in result.xml template.xml
33 do
34     if [ -w ${x} ]; then
35         rm ${x}
36     fi
37 done
38
39 #####################
40 echo Instrumenting...
41 java -classpath "${CLASSPATH}" -jar `pwd`/jcov/jcov.jar Instr -t template.xml -o "${INSTR_DIR}" -type all "${CFB_ROOT}/prod"
42
43 #####################
44 echo Running unit tests...
45
46 TESTS=""
47 for x in `cd ${CFB_ROOT}/test; find . -name '*Test.class'`
48 do
49     #echo CANDIDATE $x
50     TEST_CLASS=`echo ${x} | sed s:\^./:: | cut -d . -f 1 | sed s:/:.:g`
51     #echo TEST_CLASS ${TEST_CLASS}
52     TESTS="${TEST_CLASS} ${TESTS}"
53 done
54
55 echo First run:  locale es_ES, timezone Europe/Madrid
56 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}
57
58 echo Second run:  server default locale and timezone
59 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}
60
61 #####################
62 echo Generating HTML Report...
63
64 java -jar "${CFB_ROOT}/jcov/jcov.jar" RepGen -sourcepath "${CFB_ROOT}/prod" -log.level FINE result.xml
65
66 #####################
67 echo Cleaning up
68 find "${CFB_ROOT}/prod" -type f -name '*.class' -exec rm {} \;
69 find "${CFB_ROOT}/test" -type f -name '*.class' -exec rm {} \;