1#!/bin/sh 2 3# run test images through libnsbmp and count results 4 5TEST_PATH=$1 6TEST_OUT=${TEST_PATH}/ppm 7TEST_LOG=${TEST_PATH}/test.log 8 9mkdir -p ${TEST_OUT} 10 11echo "Bitmap tests" > ${TEST_LOG} 12 13# bitmap test directories 14 15# standard bitmap suite 16BMPTESTS="test/bmpsuite/*.bmp" 17 18# netsurf test bitmaps 19BMPTESTS="${BMPTESTS} test/bmp/*.bmp" 20 21# afl bitmap suite 22BMPTESTS="${BMPTESTS} test/afl-bmp/*.bmp" 23 24# netsurf afl generated bitmap suite 25BMPTESTS="${BMPTESTS} test/ns-afl-bmp/*.bmp" 26 27# icon test directories 28ICOTESTS="test/icons/*.ico" 29 30# afl ico demo suite 31ICOTESTS="${ICOTESTS} test/afl-ico/*.ico" 32 33# netsurf afl generated icon corpus 34ICOTESTS="${ICOTESTS} test/ns-afl-ico/*.ico" 35 36bmpdecode() 37{ 38 OUTF=$(basename ${1} .bmp) 39 echo "Bitmap:${1}" >> ${TEST_LOG} 40 ${TEST_PATH}/test_decode_bmp ${1} ${TEST_OUT}/${OUTF}.ppm 2>> ${TEST_LOG} 41 ECODE=$? 42 echo "Exit code:${ECODE}" >> ${TEST_LOG} 43 return ${ECODE} 44} 45 46icodecode() 47{ 48 OUTF=$(basename ${1} .ico) 49 CMPF=$(dirname ${1})/${OUTF}.ppm 50 echo "Icon:${1}" >> ${TEST_LOG} 51 ${TEST_PATH}/test_decode_ico ${1} 255 255 ${TEST_OUT}/${OUTF}.ppm 2>> ${TEST_LOG} 52 if [ -f "${CMPF}" ]; then 53 cmp ${CMPF} ${TEST_OUT}/${OUTF}.ppm >> ${TEST_LOG} 2>> ${TEST_LOG} 54 if [ "$?" -ne 0 ]; then 55 return 128 56 fi 57 fi 58} 59 60# bitmap tests 61 62BMPTESTTOTC=0 63BMPTESTPASSC=0 64BMPTESTERRC=0 65 66for BMP in $(ls ${BMPTESTS});do 67 BMPTESTTOTC=$((BMPTESTTOTC+1)) 68 bmpdecode ${BMP} 69 ECODE=$? 70 if [ \( "${ECODE}" -gt 127 \) -o \( "${ECODE}" -eq 1 \) ];then 71 BMPTESTERRC=$((BMPTESTERRC+1)) 72 else 73 BMPTESTPASSC=$((BMPTESTPASSC+1)) 74 fi 75done 76 77echo "Test bitmap decode" 78echo "Tests:${BMPTESTTOTC} Pass:${BMPTESTPASSC} Error:${BMPTESTERRC}" 79 80 81# icon tests 82 83ICOTESTTOTC=0 84ICOTESTPASSC=0 85ICOTESTERRC=0 86 87# netsurf test icons 88for ICO in $(ls ${ICOTESTS});do 89 ICOTESTTOTC=$((ICOTESTTOTC+1)) 90 icodecode ${ICO} 91 ECODE=$? 92 if [ \( "${ECODE}" -gt 127 \) -o \( "${ECODE}" -eq 1 \) ];then 93 ICOTESTERRC=$((ICOTESTERRC+1)) 94 else 95 ICOTESTPASSC=$((ICOTESTPASSC+1)) 96 fi 97done 98 99echo "Test icon decode" 100echo "Tests:${ICOTESTTOTC} Pass:${ICOTESTPASSC} Error:${ICOTESTERRC}" 101 102 103 104# exit code 105if [ "${BMPTESTERRC}" -gt 0 -o "${ICOTESTERRC}" -gt 0 ]; then 106 exit 1 107fi 108 109exit 0 110