1#!/bin/sh 2 3# run test images through libnsgif 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 "GIF tests" > ${TEST_LOG} 12 13# gif test directories 14 15# netsurf test gif 16GIFTESTS="test/data/*.gif" 17 18# netsurf afl generated gif suite 19GIFTESTS="${GIFTESTS} test/ns-afl-gif/*.gif" 20 21gifdecode() 22{ 23 OUTF=$(basename ${1} .gif) 24 CMPF=$(dirname ${1})/${OUTF}.ppm 25 echo "GIF:${1}" >> ${TEST_LOG} 26 ${TEST_PATH}/test_decode_gif ${1} ${TEST_OUT}/${OUTF}.ppm 2>> ${TEST_LOG} 27 ECODE=$? 28 29 echo "Exit code:${ECODE}" >> ${TEST_LOG} 30 if [ "${ECODE}" -gt 0 ];then 31 return ${ECODE} 32 fi 33 34 if [ -f "${CMPF}" ]; then 35 cmp ${CMPF} ${TEST_OUT}/${OUTF}.ppm >> ${TEST_LOG} 2>> ${TEST_LOG} 36 if [ "$?" -ne 0 ]; then 37 return 128 38 fi 39 fi 40 41 return 0 42} 43 44GIFTESTTOTC=0 45GIFTESTPASSC=0 46GIFTESTFAILC=0 47GIFTESTERRC=0 48 49echo "Testing GIF decode" 50 51for GIF in $(ls ${GIFTESTS});do 52 GIFTESTTOTC=$((GIFTESTTOTC+1)) 53 gifdecode ${GIF} 54 ECODE=$? 55 if [ "${ECODE}" -gt 127 ];then 56 GIFTESTERRC=$((GIFTESTERRC+1)) 57 else 58 if [ "${ECODE}" -gt 0 ];then 59 GIFTESTFAILC=$((GIFTESTFAILC+1)) 60 else 61 GIFTESTPASSC=$((GIFTESTPASSC+1)) 62 fi 63 fi 64done 65 66echo "Tests:${GIFTESTTOTC} Pass:${GIFTESTPASSC} Fail:${GIFTESTFAILC} Error:${GIFTESTERRC}" 67 68# exit code 69if [ "${GIFTESTERRC}" -gt 0 ]; then 70 exit 1 71fi 72 73exit 0 74