1#!/bin/sh 2 3# Copyright: 2020 Masatake YAMATO 4# License: GPL-2 5 6BUILDDIR=$2 7OPTSCRIPT=$4 8 9. ../utils.sh 10 11if ! [ -x "${OPTSCRIPT}" ]; then 12 skip "no optscript" 13fi 14 15 16_VALGRIND_EXIT=58 17 18if type valgrind > /dev/null 2>&1; then 19 V() 20 { 21 vlog=$1 22 shift 23 valgrind --leak-check=full --error-exitcode=${_VALGRIND_EXIT} --log-file="${vlog}" "$@" 24 } 25else 26 V() 27 { 28 vlog=$1 29 shift 30 touch $vlog 31 "$@" 32 } 33fi 34 35rm -f ${BUILDDIR}/*.tmp 36 37for i in $(ls *.ps); do 38 printf "%s" "${i}..." 39 o=${BUILDDIR}/$(basename $i .ps).out.tmp 40 e=$(basename $i .ps).expected 41 v=${BUILDDIR}/$(basename $i .ps).valgrind.tmp 42 43 case $i in 44 error-*.ps) 45 V $v ${OPTSCRIPT} $i > $o 2>&1 46 ;; 47 *) 48 V $v ${OPTSCRIPT} $i > $o 49 ;; 50 esac 51 s=$? 52 printf "%s" "$s" 53 54 if [ "$s" = "$_VALGRIND_EXIT" ]; then 55 echo 56 cat $v; 57 exit $_VALGRIND_EXIT 58 fi 59 60 case $s-$i in 61 *-error-*.ps|0-*) 62 echo 63 if diff -ruN --strip-trailing-cr $e $o; then 64 rm $o 65 rm $v 66 fi 67 ;; 68 *) 69 echo ERROR 70 ;; 71 esac 72done 73