]> gitweb.michael.orlitzky.com - libsvgtiny.git/blob - test/runtest.sh
improve test suite runner
[libsvgtiny.git] / test / runtest.sh
1 #!/bin/sh
2 #
3 # run test images through libnssvg and count results
4 # This file is part of libsvgtiny
5 #
6 # Licensed under the MIT License,
7 # http://opensource.org/licenses/mit-license.php
8 # Copyright 2016 Vincent Sanders <vince@netsurf-browser.org>
9
10 TEST_PATH=$1
11 TEST_OUT=${TEST_PATH}/mvg
12 TEST_LOG=${TEST_PATH}/test.log
13
14 mkdir -p ${TEST_OUT}
15
16 echo "SVG tests" > ${TEST_LOG}
17
18 # svg test directories
19
20 # netsurf test svg
21 SVGTESTS="test/data/*.svg"
22
23 svgdecode()
24 {
25 OUTF=$(basename ${1} .svg)
26 CMPF=$(dirname ${1})/${OUTF}.mvg
27 echo "SVG:${1}" >> ${TEST_LOG}
28 ${TEST_PATH}/test_decode_svg ${1} 1.0 ${TEST_OUT}/${OUTF}.mvg 2>> ${TEST_LOG}
29 ECODE=$?
30
31 echo "Exit code:${ECODE}" >> ${TEST_LOG}
32 if [ "${ECODE}" -gt 0 ];then
33 return ${ECODE}
34 fi
35
36 if [ -f "${CMPF}" ]; then
37 cmp ${CMPF} ${TEST_OUT}/${OUTF}.ppm >> ${TEST_LOG} 2>> ${TEST_LOG}
38 if [ "$?" -ne 0 ]; then
39 return 128
40 fi
41 fi
42
43 #convert mvg:${TEST_OUT}/${OUTF}.mvg png:${TEST_OUT}/${OUTF}.png
44
45 return 0
46 }
47
48 SVGTESTTOTC=0
49 SVGTESTPASSC=0
50 SVGTESTFAILC=0
51 SVGTESTERRC=0
52
53 echo "Testing SVG decode"
54
55 for SVG in $(ls ${SVGTESTS});do
56 SVGTESTTOTC=$((SVGTESTTOTC+1))
57 svgdecode ${SVG}
58 ECODE=$?
59 if [ "${ECODE}" -gt 127 ];then
60 SVGTESTERRC=$((SVGTESTERRC+1))
61 else
62 if [ "${ECODE}" -gt 0 ];then
63 SVGTESTFAILC=$((SVGTESTFAILC+1))
64 else
65 SVGTESTPASSC=$((SVGTESTPASSC+1))
66 fi
67 fi
68 done
69
70 echo "Tests:${SVGTESTTOTC} Pass:${SVGTESTPASSC} Fail:${SVGTESTFAILC} Error:${SVGTESTERRC}"
71
72 # exit code
73 if [ "${SVGTESTERRC}" -gt 0 ]; then
74 exit 1
75 fi
76
77 exit 0