summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAkira TAGOH <akira@tagoh.org>2018-05-11 22:15:39 +0900
committerAkira TAGOH <akira@tagoh.org>2018-05-11 22:15:39 +0900
commitaf964f789762df0b023c8cfd7ea622045892cb54 (patch)
treec3bb6063ad9fee2731bed6832cf33a71c1794271 /test
parentf665852df90cd5a28c3040af8f484999ca3dfa4e (diff)
Add a test case for 90-synthetic.conf
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am11
-rw-r--r--test/run-test-conf.sh36
-rw-r--r--test/test-90-synthetic.json68
3 files changed, 112 insertions, 3 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index 117ba01f..48ec3ce3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -13,7 +13,12 @@ BUILT_SOURCES = $(builddir)/out.expected
SH_LOG_COMPILER = sh
TESTS=run-test.sh
-TESTDATA=4x6.pcf 8x16.pcf fonts.conf.in
+TESTDATA = \
+ 4x6.pcf \
+ 8x16.pcf \
+ fonts.conf.in \
+ test-90-synthetic.json \
+ $(NULL)
if FREETYPE_PCF_LONG_FAMILY_NAMES
$(builddir)/out.expected: $(srcdir)/out.expected-long-family-names Makefile
@@ -63,10 +68,10 @@ if ENABLE_JSONC
check_PROGRAMS += test-conf
test_conf_CFLAGS = $(JSONC_CFLAGS)
test_conf_LDADD = $(top_builddir)/src/libfontconfig.la $(JSONC_LIBS)
-TESTS += test-conf.sh
+TESTS += run-test-conf.sh
endif
-EXTRA_DIST=run-test.sh $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names
+EXTRA_DIST=run-test.sh run-test-conf.sh $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names
CLEANFILES=out fonts.conf out.expected
diff --git a/test/run-test-conf.sh b/test/run-test-conf.sh
new file mode 100644
index 00000000..4bcc29cd
--- /dev/null
+++ b/test/run-test-conf.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+# test/run-test-conf.sh
+#
+# Copyright © 2000 Keith Packard
+# Copyright © 2018 Akira TAGOH
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of the author(s) not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. The authors make no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+set -eu
+
+case "$OSTYPE" in
+ msys ) MyPWD=`pwd -W` ;; # On Msys/MinGW, returns a MS Windows style path.
+ * ) MyPWD=`pwd` ;; # On any other platforms, returns a Unix style path.
+esac
+
+TESTDIR=${srcdir-"$MyPWD"}
+BUILDTESTDIR=${builddir-"$MyPWD"}
+
+RUNNER=../test/test-conf$EXEEXT
+
+$RUNNER $TESTDIR/../conf.d/90-synthetic.conf $TESTDIR/test-90-synthetic.json
diff --git a/test/test-90-synthetic.json b/test/test-90-synthetic.json
new file mode 100644
index 00000000..42054024
--- /dev/null
+++ b/test/test-90-synthetic.json
@@ -0,0 +1,68 @@
+{
+ "fonts": [
+ {
+ "family": "Foo",
+ "style": "Medium",
+ "weight": 100
+ },
+ {
+ "family": "Bar",
+ "style": "Regular",
+ "weight": 80
+ },
+ {
+ "family": "Baz",
+ "style": "Bold",
+ "weight": 200
+ }
+ ],
+ "tests": [
+ {
+ "method": "match",
+ "query": {
+ "family": "Foo",
+ "weight": 200
+ },
+ "result": {
+ "family": "Foo",
+ "weight": 200,
+ "embolden": true
+ }
+ },
+ {
+ "method": "match",
+ "query": {
+ "family": "Bar",
+ "weight": 102
+ },
+ "result": {
+ "family": "Bar",
+ "weight": 80
+ }
+ },
+ {
+ "method": "match",
+ "query": {
+ "family": "Bar",
+ "weight": 200
+ },
+ "result": {
+ "family": "Bar",
+ "weight": 200,
+ "embolden": true
+ }
+ },
+ {
+ "method": "match",
+ "query": {
+ "family": "Baz",
+ "weight": 200
+ },
+ "result": {
+ "family": "Baz",
+ "weight": 200,
+ "embolden": null
+ }
+ }
+ ]
+}