diff options
Diffstat (limited to 'lib/fribidi/run.tests')
-rw-r--r-- | lib/fribidi/run.tests | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/lib/fribidi/run.tests b/lib/fribidi/run.tests new file mode 100644 index 0000000000..4ef8e8f019 --- /dev/null +++ b/lib/fribidi/run.tests @@ -0,0 +1,71 @@ +#!/bin/bash +# run.tests - Check that the algorithm does what it is supposed to +# Copyright (C) 1999,2000 Dov Grobgeld, and +# Copyright (C) 2001,2002 Behdad Esfahbod. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library, in a file named COPYING; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place, Suite 330, +# Boston, MA 02111-1307, USA +# +# For licensing issues, contact <dov@imagic.weizmann.ac.il> and +# <fwpg@sharif.edu>. + +if test -z "$srcdir"; then + srcdir=. + test "${VERBOSE+set}" != "set" && VERBOSE=yes +fi + +# See how redirections should work. +if test -z "$VERBOSE"; then + exec > /dev/null 2>&1 +fi + +path=`dirname $0` + +if ! test -f "./fribidi"; then + echo "run.tests: you must make fribidi first" + exit 1 +fi + +TEST () { + testcase="$1" + test="${testcase##*/}" + test="${test%.input}" + charset="${testcase#*_}" + charset="${charset%%_*}" + echo -n "=== $test === " + if ! ./fribidi --charset "$charset" </dev/null >/dev/null 2>&1; then + echo " [Character set not supported]" + return 0 + fi + ./fribidi --test --charset "$charset" "$testcase" > "$test.output" + + reference="${testcase%.input}.reference"; + test -f "$reference" || reference="tests/${reference##*/}" + if diff "$test.output" "$reference"; then + rm "$test.output" + echo " [Passed]" + return 0 + else + echo " [Failed]" + return 1 + fi +} + +retval=0 +for testcase in "$path/tests/"test_*.input; do + TEST "$testcase" || retval=1 +done + +exit $retval |