aboutsummaryrefslogtreecommitdiff
path: root/lib/fribidi/run.tests
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fribidi/run.tests')
-rw-r--r--lib/fribidi/run.tests71
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