diff --git a/configure.ac b/configure.ac index 95ab48f80..e9db42a78 100644 --- a/configure.ac +++ b/configure.ac @@ -508,6 +508,7 @@ test/api/Makefile test/fuzzing/Makefile test/shaping/Makefile test/shaping/data/Makefile +test/shaping/data/aots/Makefile test/shaping/data/in-house/Makefile test/shaping/data/text-rendering-tests/Makefile test/subset/Makefile diff --git a/test/shaping/CMakeLists.txt b/test/shaping/CMakeLists.txt index 25f14177e..8e33edeec 100644 --- a/test/shaping/CMakeLists.txt +++ b/test/shaping/CMakeLists.txt @@ -5,7 +5,16 @@ if (HB_BUILD_UTILS) add_test (NAME ${test} COMMAND "${PYTHON_EXECUTABLE}" run-tests.py $ "data/in-house/${test}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - set_property(TEST ${test} PROPERTY SKIP_RETURN_CODE 77) + set_property (TEST ${test} PROPERTY SKIP_RETURN_CODE 77) + endforeach () + + file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/aots/Makefile.sources" INHOUSE) + extract_make_variable (TESTS ${INHOUSE}) + foreach (test IN ITEMS ${TESTS}) + add_test (NAME ${test} + COMMAND "${PYTHON_EXECUTABLE}" run-tests.py $ "data/aots/${test}" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) + set_property (TEST ${test} PROPERTY SKIP_RETURN_CODE 77) endforeach () file (READ "${CMAKE_CURRENT_SOURCE_DIR}/data/text-rendering-tests/Makefile.sources" TEXTRENDERING) @@ -14,6 +23,6 @@ if (HB_BUILD_UTILS) add_test (NAME ${test} COMMAND "${PYTHON_EXECUTABLE}" run-tests.py $ "data/text-rendering-tests/${test}" WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - set_property(TEST ${test} PROPERTY SKIP_RETURN_CODE 77) + set_property (TEST ${test} PROPERTY SKIP_RETURN_CODE 77) endforeach () endif () diff --git a/test/shaping/data/Makefile.am b/test/shaping/data/Makefile.am index 4f2c11366..2b908b3c3 100644 --- a/test/shaping/data/Makefile.am +++ b/test/shaping/data/Makefile.am @@ -3,6 +3,7 @@ NULL = SUBDIRS = \ in-house \ + aots \ text-rendering-tests \ $(NULL) diff --git a/test/shaping/data/aots/COPYING b/test/shaping/data/aots/COPYING new file mode 100644 index 000000000..d000f23b2 --- /dev/null +++ b/test/shaping/data/aots/COPYING @@ -0,0 +1,13 @@ +Copyright 2000-2016 Adobe Systems Incorporated. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use these files except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/test/shaping/data/aots/Makefile.am b/test/shaping/data/aots/Makefile.am new file mode 100644 index 000000000..3b1faee5f --- /dev/null +++ b/test/shaping/data/aots/Makefile.am @@ -0,0 +1,37 @@ +# Process this file with automake to produce Makefile.in + +NULL = + +# Convenience targets: +lib: + @$(MAKE) $(AM_MAKEFLAGS) -C $(top_builddir)/src lib + +EXTRA_DIST = \ + COPYING \ + fonts \ + $(TESTS) \ + $(NULL) + +TEST_EXTENSIONS = .tests +TESTS_LOG_COMPILER = $(srcdir)/../../run-tests.py $(top_builddir)/util/hb-shape$(EXEEXT) + +init-aots: + git clone https://github.com/adobe-type-tools/aots $(srcdir)/aots + make -C$(srcdir)/aots + make -C$(srcdir)/aots/harfbuzz + touch $(srcdir)/init-aots + +update-tests: init-aots lib + cp $(srcdir)/hb-aots-tester.cpp $(srcdir)/aots/harfbuzz/hb-aots-tester.cpp + $(CXX) -Wno-narrowing $(srcdir)/aots/harfbuzz/hb-aots-tester.cpp \ + -I$(top_srcdir)/src/ -o $(srcdir)/aots/harfbuzz/aots \ + -L$(top_builddir)/src/.libs -lharfbuzz + rm -rf $(srcdir)/tests/ + mkdir $(srcdir)/tests/ + export LD_LIBRARY_PATH=$(realpath $(top_builddir)/src/.libs); cd $(srcdir)/aots/harfbuzz; ./aots + +.PHONY: update-tests + +include Makefile.sources + +-include $(top_srcdir)/git.mk diff --git a/test/shaping/data/aots/Makefile.sources b/test/shaping/data/aots/Makefile.sources new file mode 100644 index 000000000..8340bb6cf --- /dev/null +++ b/test/shaping/data/aots/Makefile.sources @@ -0,0 +1,126 @@ +TESTS = \ + tests/classdef1_single.tests \ + tests/classdef1.tests \ + tests/classdef2_empty.tests \ + tests/classdef2_single.tests \ + tests/classdef2.tests \ + tests/gpos1_1_lookupflag.tests \ + tests/gpos1_1_simple.tests \ + tests/gpos1_2_lookupflag.tests \ + tests/gpos1_2.tests \ + tests/gpos2_1_lookupflag.tests \ + tests/gpos2_1_next_glyph.tests \ + tests/gpos2_1_simple.tests \ + tests/gpos2_1.tests \ + tests/gpos2_2.tests \ + tests/gpos4_lookupflag.tests \ + tests/gpos7_1.tests \ + tests/gpos9.tests \ + tests/gpos_chaining1_boundary.tests \ + tests/gpos_chaining1_lookupflag.tests \ + tests/gpos_chaining1_multiple_subrules.tests \ + tests/gpos_chaining1_next_glyph.tests \ + tests/gpos_chaining1_simple.tests \ + tests/gpos_chaining1_successive.tests \ + tests/gpos_chaining2_boundary.tests \ + tests/gpos_chaining2_lookupflag.tests \ + tests/gpos_chaining2_multiple_subrules.tests \ + tests/gpos_chaining2_next_glyph.tests \ + tests/gpos_chaining2_simple.tests \ + tests/gpos_chaining2_successive.tests \ + tests/gpos_chaining3_boundary.tests \ + tests/gpos_chaining3_lookupflag.tests \ + tests/gpos_chaining3_next_glyph.tests \ + tests/gpos_chaining3_simple.tests \ + tests/gpos_chaining3_successive.tests \ + tests/gpos_context1_boundary.tests \ + tests/gpos_context1_expansion.tests \ + tests/gpos_context1_lookupflag.tests \ + tests/gpos_context1_multiple_subrules.tests \ + tests/gpos_context1_next_glyph.tests \ + tests/gpos_context1_simple.tests \ + tests/gpos_context1_successive.tests \ + tests/gpos_context2_boundary.tests \ + tests/gpos_context2_classes.tests \ + tests/gpos_context2_expansion.tests \ + tests/gpos_context2_lookupflag.tests \ + tests/gpos_context2_multiple_subrules.tests \ + tests/gpos_context2_next_glyph.tests \ + tests/gpos_context2_simple.tests \ + tests/gpos_context2_successive.tests \ + tests/gpos_context3_boundary.tests \ + tests/gpos_context3_lookupflag.tests \ + tests/gpos_context3_next_glyph.tests \ + tests/gpos_context3_simple.tests \ + tests/gpos_context3_successive.tests \ + tests/gsub1_1_lookupflag.tests \ + tests/gsub1_1_modulo.tests \ + tests/gsub1_1_simple.tests \ + tests/gsub1_2_lookupflag.tests \ + tests/gsub1_2_simple.tests \ + tests/gsub2_1_lookupflag.tests \ + tests/gsub2_1_multiple_sequences.tests \ + tests/gsub2_1_simple.tests \ + tests/gsub3_1_lookupflag.tests \ + tests/gsub3_1_multiple.tests \ + tests/gsub4_1_lookupflag.tests \ + tests/gsub4_1_multiple_ligatures.tests \ + tests/gsub4_1_multiple_ligsets.tests \ + tests/gsub4_1_simple.tests \ + tests/gsub7.tests \ + tests/gsub_chaining1_boundary.tests \ + tests/gsub_chaining1_lookupflag.tests \ + tests/gsub_chaining1_multiple_subrules.tests \ + tests/gsub_chaining1_next_glyph.tests \ + tests/gsub_chaining1_simple.tests \ + tests/gsub_chaining1_successive.tests \ + tests/gsub_chaining2_boundary.tests \ + tests/gsub_chaining2_lookupflag.tests \ + tests/gsub_chaining2_multiple_subrules.tests \ + tests/gsub_chaining2_next_glyph.tests \ + tests/gsub_chaining2_simple.tests \ + tests/gsub_chaining2_successive.tests \ + tests/gsub_chaining3_boundary.tests \ + tests/gsub_chaining3_lookupflag.tests \ + tests/gsub_chaining3_next_glyph.tests \ + tests/gsub_chaining3_simple.tests \ + tests/gsub_chaining3_successive.tests \ + tests/gsub_context1_boundary.tests \ + tests/gsub_context1_expansion.tests \ + tests/gsub_context1_lookupflag.tests \ + tests/gsub_context1_multiple_subrules.tests \ + tests/gsub_context1_next_glyph.tests \ + tests/gsub_context1_simple.tests \ + tests/gsub_context1_successive.tests \ + tests/gsub_context2_boundary.tests \ + tests/gsub_context2_classes.tests \ + tests/gsub_context2_expansion.tests \ + tests/gsub_context2_lookupflag.tests \ + tests/gsub_context2_multiple_subrules.tests \ + tests/gsub_context2_next_glyph.tests \ + tests/gsub_context2_simple.tests \ + tests/gsub_context2_successive.tests \ + tests/gsub_context3_boundary.tests \ + tests/gsub_context3_lookupflag.tests \ + tests/gsub_context3_next_glyph.tests \ + tests/gsub_context3_simple.tests \ + tests/gsub_context3_successive.tests \ + tests/lookupflag_ignore_base.tests \ + tests/lookupflag_ignore_combination.tests \ + tests/lookupflag_ignore_ligatures.tests \ + tests/lookupflag_ignore_marks.tests \ + $(NULL) + +DISABLED_TESTS = \ + tests/classdef1_empty.tests \ + tests/classdef1_multiple.tests \ + tests/classdef2_multiple.tests \ + tests/gpos3_lookupflag.tests \ + tests/gpos3.tests \ + tests/gpos4_multiple_anchors.tests \ + tests/gpos4_simple.tests \ + tests/gpos5.tests \ + tests/gpos6.tests \ + tests/gsub3_1_simple.tests \ + tests/lookupflag_ignore_attach.tests \ + $(NULL) diff --git a/test/shaping/data/aots/fonts/classdef1_font3.otf b/test/shaping/data/aots/fonts/classdef1_font3.otf new file mode 100644 index 000000000..2a0f9cc8f Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef1_font3.otf differ diff --git a/test/shaping/data/aots/fonts/classdef1_font4.otf b/test/shaping/data/aots/fonts/classdef1_font4.otf new file mode 100644 index 000000000..9c0f41c51 Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef1_font4.otf differ diff --git a/test/shaping/data/aots/fonts/classdef2_font1.otf b/test/shaping/data/aots/fonts/classdef2_font1.otf new file mode 100644 index 000000000..2e2faafee Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef2_font1.otf differ diff --git a/test/shaping/data/aots/fonts/classdef2_font2.otf b/test/shaping/data/aots/fonts/classdef2_font2.otf new file mode 100644 index 000000000..2e2a1af78 Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef2_font2.otf differ diff --git a/test/shaping/data/aots/fonts/classdef2_font3.otf b/test/shaping/data/aots/fonts/classdef2_font3.otf new file mode 100644 index 000000000..14c911938 Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef2_font3.otf differ diff --git a/test/shaping/data/aots/fonts/classdef2_font4.otf b/test/shaping/data/aots/fonts/classdef2_font4.otf new file mode 100644 index 000000000..c75c883a0 Binary files /dev/null and b/test/shaping/data/aots/fonts/classdef2_font4.otf differ diff --git a/test/shaping/data/aots/fonts/cmap0_font1.otf b/test/shaping/data/aots/fonts/cmap0_font1.otf new file mode 100644 index 000000000..772f9a748 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap0_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap10_font1.otf b/test/shaping/data/aots/fonts/cmap10_font1.otf new file mode 100644 index 000000000..023e94561 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap10_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap10_font2.otf b/test/shaping/data/aots/fonts/cmap10_font2.otf new file mode 100644 index 000000000..5202f7946 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap10_font2.otf differ diff --git a/test/shaping/data/aots/fonts/cmap12_font1.otf b/test/shaping/data/aots/fonts/cmap12_font1.otf new file mode 100644 index 000000000..2d74b3a90 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap12_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap14_font1.otf b/test/shaping/data/aots/fonts/cmap14_font1.otf new file mode 100644 index 000000000..a8e941d8f Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap14_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap2_font1.otf b/test/shaping/data/aots/fonts/cmap2_font1.otf new file mode 100644 index 000000000..a123d9ca6 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap2_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap4_font1.otf b/test/shaping/data/aots/fonts/cmap4_font1.otf new file mode 100644 index 000000000..516ed8e97 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap4_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap4_font2.otf b/test/shaping/data/aots/fonts/cmap4_font2.otf new file mode 100644 index 000000000..0f678a3e1 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap4_font2.otf differ diff --git a/test/shaping/data/aots/fonts/cmap4_font3.otf b/test/shaping/data/aots/fonts/cmap4_font3.otf new file mode 100644 index 000000000..2034ecd43 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap4_font3.otf differ diff --git a/test/shaping/data/aots/fonts/cmap4_font4.otf b/test/shaping/data/aots/fonts/cmap4_font4.otf new file mode 100644 index 000000000..450508e3b Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap4_font4.otf differ diff --git a/test/shaping/data/aots/fonts/cmap6_font1.otf b/test/shaping/data/aots/fonts/cmap6_font1.otf new file mode 100644 index 000000000..10b64a782 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap6_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap6_font2.otf b/test/shaping/data/aots/fonts/cmap6_font2.otf new file mode 100644 index 000000000..2d2957fda Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap6_font2.otf differ diff --git a/test/shaping/data/aots/fonts/cmap8_font1.otf b/test/shaping/data/aots/fonts/cmap8_font1.otf new file mode 100644 index 000000000..791b9e357 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap8_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_composition_font1.otf b/test/shaping/data/aots/fonts/cmap_composition_font1.otf new file mode 100644 index 000000000..c79071739 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_composition_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_subtableselection_font1.otf b/test/shaping/data/aots/fonts/cmap_subtableselection_font1.otf new file mode 100644 index 000000000..8929f8ab2 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_subtableselection_font1.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_subtableselection_font2.otf b/test/shaping/data/aots/fonts/cmap_subtableselection_font2.otf new file mode 100644 index 000000000..26110921f Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_subtableselection_font2.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_subtableselection_font3.otf b/test/shaping/data/aots/fonts/cmap_subtableselection_font3.otf new file mode 100644 index 000000000..9f3933155 Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_subtableselection_font3.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_subtableselection_font4.otf b/test/shaping/data/aots/fonts/cmap_subtableselection_font4.otf new file mode 100644 index 000000000..83ae88efb Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_subtableselection_font4.otf differ diff --git a/test/shaping/data/aots/fonts/cmap_subtableselection_font5.otf b/test/shaping/data/aots/fonts/cmap_subtableselection_font5.otf new file mode 100644 index 000000000..8b614adeb Binary files /dev/null and b/test/shaping/data/aots/fonts/cmap_subtableselection_font5.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos1_1_lookupflag_f1.otf new file mode 100644 index 000000000..3245425df Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_1_simple_f1.otf b/test/shaping/data/aots/fonts/gpos1_1_simple_f1.otf new file mode 100644 index 000000000..c5f888822 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_1_simple_f2.otf b/test/shaping/data/aots/fonts/gpos1_1_simple_f2.otf new file mode 100644 index 000000000..905d0a398 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_1_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_1_simple_f3.otf b/test/shaping/data/aots/fonts/gpos1_1_simple_f3.otf new file mode 100644 index 000000000..550be87e8 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_1_simple_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_1_simple_f4.otf b/test/shaping/data/aots/fonts/gpos1_1_simple_f4.otf new file mode 100644 index 000000000..448bc8b83 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_1_simple_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_2_font1.otf b/test/shaping/data/aots/fonts/gpos1_2_font1.otf new file mode 100644 index 000000000..3e7b7bc42 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_2_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos1_2_font2.otf b/test/shaping/data/aots/fonts/gpos1_2_font2.otf new file mode 100644 index 000000000..ba9d224f7 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos1_2_font2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_font6.otf b/test/shaping/data/aots/fonts/gpos2_1_font6.otf new file mode 100644 index 000000000..cd4ea94c6 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_font6.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_font7.otf b/test/shaping/data/aots/fonts/gpos2_1_font7.otf new file mode 100644 index 000000000..2871acc01 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_font7.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f1.otf new file mode 100644 index 000000000..600378243 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f2.otf new file mode 100644 index 000000000..9d0a273c0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f1.otf new file mode 100644 index 000000000..64d6c2c97 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f2.otf b/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f2.otf new file mode 100644 index 000000000..3d8c37ae7 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_next_glyph_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_1_simple_f1.otf b/test/shaping/data/aots/fonts/gpos2_1_simple_f1.otf new file mode 100644 index 000000000..c947776aa Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_2_font1.otf b/test/shaping/data/aots/fonts/gpos2_2_font1.otf new file mode 100644 index 000000000..dde370a0e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_2_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_2_font2.otf b/test/shaping/data/aots/fonts/gpos2_2_font2.otf new file mode 100644 index 000000000..63d874a26 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_2_font2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_2_font3.otf b/test/shaping/data/aots/fonts/gpos2_2_font3.otf new file mode 100644 index 000000000..b5306764d Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_2_font3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_2_font4.otf b/test/shaping/data/aots/fonts/gpos2_2_font4.otf new file mode 100644 index 000000000..b549e0239 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_2_font4.otf differ diff --git a/test/shaping/data/aots/fonts/gpos2_2_font5.otf b/test/shaping/data/aots/fonts/gpos2_2_font5.otf new file mode 100644 index 000000000..64c40bba9 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos2_2_font5.otf differ diff --git a/test/shaping/data/aots/fonts/gpos3_font1.otf b/test/shaping/data/aots/fonts/gpos3_font1.otf new file mode 100644 index 000000000..9b6d39acd Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos3_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos3_font2.otf b/test/shaping/data/aots/fonts/gpos3_font2.otf new file mode 100644 index 000000000..dee57855e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos3_font2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos3_font3.otf b/test/shaping/data/aots/fonts/gpos3_font3.otf new file mode 100644 index 000000000..7522660d9 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos3_font3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos4_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos4_lookupflag_f1.otf new file mode 100644 index 000000000..b141116af Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos4_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos4_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gpos4_lookupflag_f2.otf new file mode 100644 index 000000000..84e48437c Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos4_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos4_multiple_anchors_1.otf b/test/shaping/data/aots/fonts/gpos4_multiple_anchors_1.otf new file mode 100644 index 000000000..025f69b31 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos4_multiple_anchors_1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos4_simple_1.otf b/test/shaping/data/aots/fonts/gpos4_simple_1.otf new file mode 100644 index 000000000..da54a1fd1 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos4_simple_1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos5_font1.otf b/test/shaping/data/aots/fonts/gpos5_font1.otf new file mode 100644 index 000000000..8c48fb679 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos5_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos6_font1.otf b/test/shaping/data/aots/fonts/gpos6_font1.otf new file mode 100644 index 000000000..f7f92cc37 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos6_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos7_1_font1.otf b/test/shaping/data/aots/fonts/gpos7_1_font1.otf new file mode 100644 index 000000000..ced8907e9 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos7_1_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos9_font1.otf b/test/shaping/data/aots/fonts/gpos9_font1.otf new file mode 100644 index 000000000..e99c25a04 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos9_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos9_font2.otf b/test/shaping/data/aots/fonts/gpos9_font2.otf new file mode 100644 index 000000000..9ae824bae Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos9_font2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f1.otf new file mode 100644 index 000000000..44c4117a0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f2.otf new file mode 100644 index 000000000..431b08fed Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f3.otf b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f3.otf new file mode 100644 index 000000000..1bac49ab9 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f4.otf b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f4.otf new file mode 100644 index 000000000..3d377829c Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_lookupflag_f1.otf new file mode 100644 index 000000000..a83342a12 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f1.otf new file mode 100644 index 000000000..07bf55c41 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f2.otf new file mode 100644 index 000000000..dc3754b56 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_next_glyph_f1.otf new file mode 100644 index 000000000..17852c2d0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_simple_f1.otf new file mode 100644 index 000000000..31cbe77d1 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_simple_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining1_simple_f2.otf new file mode 100644 index 000000000..3293ad8c2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining1_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining1_successive_f1.otf new file mode 100644 index 000000000..4c8666321 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining1_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f1.otf new file mode 100644 index 000000000..49210fb95 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f2.otf new file mode 100644 index 000000000..456fc9b64 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f3.otf b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f3.otf new file mode 100644 index 000000000..768492a89 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f4.otf b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f4.otf new file mode 100644 index 000000000..2670da652 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_lookupflag_f1.otf new file mode 100644 index 000000000..e8cce567e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f1.otf new file mode 100644 index 000000000..f182c7f3c Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f2.otf new file mode 100644 index 000000000..d24896a13 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_next_glyph_f1.otf new file mode 100644 index 000000000..f6bbda472 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_simple_f1.otf new file mode 100644 index 000000000..1805a034b Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_simple_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining2_simple_f2.otf new file mode 100644 index 000000000..1df12f528 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining2_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining2_successive_f1.otf new file mode 100644 index 000000000..a3aadafb4 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining2_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f1.otf new file mode 100644 index 000000000..4f13bdd6b Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f2.otf new file mode 100644 index 000000000..48be5dda3 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f3.otf b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f3.otf new file mode 100644 index 000000000..a10068bb5 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f4.otf b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f4.otf new file mode 100644 index 000000000..8030ac0eb Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining3_lookupflag_f1.otf new file mode 100644 index 000000000..7864ce02e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining3_next_glyph_f1.otf new file mode 100644 index 000000000..20a7966c5 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining3_simple_f1.otf new file mode 100644 index 000000000..2c633280e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_simple_f2.otf b/test/shaping/data/aots/fonts/gpos_chaining3_simple_f2.otf new file mode 100644 index 000000000..6ef8fb118 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_chaining3_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_chaining3_successive_f1.otf new file mode 100644 index 000000000..8e8439d9e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_chaining3_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_boundary_f1.otf new file mode 100644 index 000000000..22bb3eacd Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_context1_boundary_f2.otf new file mode 100644 index 000000000..7e4c0e198 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_expansion_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_expansion_f1.otf new file mode 100644 index 000000000..f7c60f68b Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_expansion_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f1.otf new file mode 100644 index 000000000..e9b03ae13 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f2.otf new file mode 100644 index 000000000..b9998cd05 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f1.otf new file mode 100644 index 000000000..6f1aafaa2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f2.otf new file mode 100644 index 000000000..ed9a38764 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_next_glyph_f1.otf new file mode 100644 index 000000000..6007d54cf Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_simple_f1.otf new file mode 100644 index 000000000..5e6cd9ed3 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_simple_f2.otf b/test/shaping/data/aots/fonts/gpos_context1_simple_f2.otf new file mode 100644 index 000000000..b4fddb33b Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context1_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_context1_successive_f1.otf new file mode 100644 index 000000000..eb0f962e1 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context1_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_boundary_f1.otf new file mode 100644 index 000000000..3fce49709 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_context2_boundary_f2.otf new file mode 100644 index 000000000..5b4e01233 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_classes_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_classes_f1.otf new file mode 100644 index 000000000..585b511c4 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_classes_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_classes_f2.otf b/test/shaping/data/aots/fonts/gpos_context2_classes_f2.otf new file mode 100644 index 000000000..411d58e6d Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_classes_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_expansion_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_expansion_f1.otf new file mode 100644 index 000000000..4b2d36ae7 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_expansion_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f1.otf new file mode 100644 index 000000000..1c0c48086 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f2.otf new file mode 100644 index 000000000..bf20d8460 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f1.otf new file mode 100644 index 000000000..05b6b73cb Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f2.otf new file mode 100644 index 000000000..f79712cc4 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_next_glyph_f1.otf new file mode 100644 index 000000000..1b5a256fd Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_simple_f1.otf new file mode 100644 index 000000000..9aaec44ff Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_simple_f2.otf b/test/shaping/data/aots/fonts/gpos_context2_simple_f2.otf new file mode 100644 index 000000000..c789b2ef2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context2_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_context2_successive_f1.otf new file mode 100644 index 000000000..b89bfb7b8 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context2_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_boundary_f1.otf b/test/shaping/data/aots/fonts/gpos_context3_boundary_f1.otf new file mode 100644 index 000000000..f8949d475 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_boundary_f2.otf b/test/shaping/data/aots/fonts/gpos_context3_boundary_f2.otf new file mode 100644 index 000000000..ceb7452a8 Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f1.otf new file mode 100644 index 000000000..40b55ee0e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f2.otf new file mode 100644 index 000000000..bcf4d17ec Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gpos_context3_next_glyph_f1.otf new file mode 100644 index 000000000..6f9d9197f Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_simple_f1.otf b/test/shaping/data/aots/fonts/gpos_context3_simple_f1.otf new file mode 100644 index 000000000..470c2ed3e Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gpos_context3_successive_f1.otf b/test/shaping/data/aots/fonts/gpos_context3_successive_f1.otf new file mode 100644 index 000000000..aeb9bbdfa Binary files /dev/null and b/test/shaping/data/aots/fonts/gpos_context3_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub1_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub1_1_lookupflag_f1.otf new file mode 100644 index 000000000..a539b95d6 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub1_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub1_1_modulo_f1.otf b/test/shaping/data/aots/fonts/gsub1_1_modulo_f1.otf new file mode 100644 index 000000000..7ba237920 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub1_1_modulo_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub1_1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub1_1_simple_f1.otf new file mode 100644 index 000000000..c21fcd3f0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub1_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub1_2_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub1_2_lookupflag_f1.otf new file mode 100644 index 000000000..b13af6e7c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub1_2_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub1_2_simple_f1.otf b/test/shaping/data/aots/fonts/gsub1_2_simple_f1.otf new file mode 100644 index 000000000..d3851b332 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub1_2_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub2_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub2_1_lookupflag_f1.otf new file mode 100644 index 000000000..8330ad4cf Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub2_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub2_1_multiple_sequences_f1.otf b/test/shaping/data/aots/fonts/gsub2_1_multiple_sequences_f1.otf new file mode 100644 index 000000000..c912937e6 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub2_1_multiple_sequences_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub2_1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub2_1_simple_f1.otf new file mode 100644 index 000000000..584a7f555 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub2_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub3_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub3_1_lookupflag_f1.otf new file mode 100644 index 000000000..4ccf55f4a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub3_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub3_1_multiple_f1.otf b/test/shaping/data/aots/fonts/gsub3_1_multiple_f1.otf new file mode 100644 index 000000000..075f1962d Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub3_1_multiple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub3_1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub3_1_simple_f1.otf new file mode 100644 index 000000000..201f0f237 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub3_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub4_1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub4_1_lookupflag_f1.otf new file mode 100644 index 000000000..08ec01a72 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub4_1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f1.otf b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f1.otf new file mode 100644 index 000000000..90da33160 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f2.otf b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f2.otf new file mode 100644 index 000000000..4383ba938 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligatures_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub4_1_multiple_ligsets_f1.otf b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligsets_f1.otf new file mode 100644 index 000000000..cea1b1aee Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub4_1_multiple_ligsets_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub4_1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub4_1_simple_f1.otf new file mode 100644 index 000000000..50c713a85 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub4_1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub7_font1.otf b/test/shaping/data/aots/fonts/gsub7_font1.otf new file mode 100644 index 000000000..b920398a5 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub7_font1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub7_font2.otf b/test/shaping/data/aots/fonts/gsub7_font2.otf new file mode 100644 index 000000000..c98bafb51 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub7_font2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f1.otf new file mode 100644 index 000000000..444d93174 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f2.otf new file mode 100644 index 000000000..2268647d7 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f3.otf b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f3.otf new file mode 100644 index 000000000..a59294749 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f4.otf b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f4.otf new file mode 100644 index 000000000..f3f6b8c28 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_lookupflag_f1.otf new file mode 100644 index 000000000..47e4c64dd Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f1.otf new file mode 100644 index 000000000..741362c8c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f2.otf new file mode 100644 index 000000000..67801f210 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_next_glyph_f1.otf new file mode 100644 index 000000000..655000aad Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_simple_f1.otf new file mode 100644 index 000000000..c7709656a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_simple_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining1_simple_f2.otf new file mode 100644 index 000000000..8999e3f7c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining1_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining1_successive_f1.otf new file mode 100644 index 000000000..ad472ece2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining1_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f1.otf new file mode 100644 index 000000000..845c2560a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f2.otf new file mode 100644 index 000000000..af0ad1f78 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f3.otf b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f3.otf new file mode 100644 index 000000000..28679c867 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f4.otf b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f4.otf new file mode 100644 index 000000000..14746c6e8 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_lookupflag_f1.otf new file mode 100644 index 000000000..2f4feedf1 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f1.otf new file mode 100644 index 000000000..6edeb6bb0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f2.otf new file mode 100644 index 000000000..ae0298fd2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_next_glyph_f1.otf new file mode 100644 index 000000000..878666f5c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_simple_f1.otf new file mode 100644 index 000000000..e8609309d Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_simple_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining2_simple_f2.otf new file mode 100644 index 000000000..4fdde3323 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining2_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining2_successive_f1.otf new file mode 100644 index 000000000..90f9f731c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining2_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f1.otf new file mode 100644 index 000000000..1aea8bee2 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f2.otf new file mode 100644 index 000000000..97c92c38a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f3.otf b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f3.otf new file mode 100644 index 000000000..3b8513eb5 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f3.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f4.otf b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f4.otf new file mode 100644 index 000000000..e81d00ed5 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_boundary_f4.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining3_lookupflag_f1.otf new file mode 100644 index 000000000..47c1007c0 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining3_next_glyph_f1.otf new file mode 100644 index 000000000..9160eda2b Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining3_simple_f1.otf new file mode 100644 index 000000000..5982eb512 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_simple_f2.otf b/test/shaping/data/aots/fonts/gsub_chaining3_simple_f2.otf new file mode 100644 index 000000000..359b12602 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_chaining3_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_chaining3_successive_f1.otf new file mode 100644 index 000000000..ae39d9207 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_chaining3_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_boundary_f1.otf new file mode 100644 index 000000000..0267cabfb Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_context1_boundary_f2.otf new file mode 100644 index 000000000..24b1716fd Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_expansion_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_expansion_f1.otf new file mode 100644 index 000000000..c1dda8078 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_expansion_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f1.otf new file mode 100644 index 000000000..60676ab50 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f2.otf new file mode 100644 index 000000000..bcb56e419 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f1.otf new file mode 100644 index 000000000..52cd86161 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f2.otf new file mode 100644 index 000000000..891356a08 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_next_glyph_f1.otf new file mode 100644 index 000000000..2786dedc6 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_simple_f1.otf new file mode 100644 index 000000000..ebdaf22a7 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_simple_f2.otf b/test/shaping/data/aots/fonts/gsub_context1_simple_f2.otf new file mode 100644 index 000000000..d4a3fbfce Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context1_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_context1_successive_f1.otf new file mode 100644 index 000000000..ce2dce5d4 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context1_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_boundary_f1.otf new file mode 100644 index 000000000..6f46192dc Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_context2_boundary_f2.otf new file mode 100644 index 000000000..ef19d8774 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_classes_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_classes_f1.otf new file mode 100644 index 000000000..85077601a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_classes_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_classes_f2.otf b/test/shaping/data/aots/fonts/gsub_context2_classes_f2.otf new file mode 100644 index 000000000..ceb74b2cb Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_classes_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_expansion_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_expansion_f1.otf new file mode 100644 index 000000000..c12f0ac7a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_expansion_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f1.otf new file mode 100644 index 000000000..a0fada4f4 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f2.otf new file mode 100644 index 000000000..cd40a5d0a Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f1.otf new file mode 100644 index 000000000..53be20d56 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f2.otf b/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f2.otf new file mode 100644 index 000000000..6bcc0cb30 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_multiple_subrules_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_next_glyph_f1.otf new file mode 100644 index 000000000..4ca4e4897 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_simple_f1.otf new file mode 100644 index 000000000..16aae9d2e Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_simple_f2.otf b/test/shaping/data/aots/fonts/gsub_context2_simple_f2.otf new file mode 100644 index 000000000..fc31262e6 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_simple_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context2_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_context2_successive_f1.otf new file mode 100644 index 000000000..cf1a89c1e Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context2_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_boundary_f1.otf b/test/shaping/data/aots/fonts/gsub_context3_boundary_f1.otf new file mode 100644 index 000000000..01cd29dba Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_boundary_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_boundary_f2.otf b/test/shaping/data/aots/fonts/gsub_context3_boundary_f2.otf new file mode 100644 index 000000000..6fa5f05a3 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_boundary_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f1.otf b/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f1.otf new file mode 100644 index 000000000..94371b4d1 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f2.otf b/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f2.otf new file mode 100644 index 000000000..d8150df42 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_lookupflag_f2.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_next_glyph_f1.otf b/test/shaping/data/aots/fonts/gsub_context3_next_glyph_f1.otf new file mode 100644 index 000000000..93533b81c Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_next_glyph_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_simple_f1.otf b/test/shaping/data/aots/fonts/gsub_context3_simple_f1.otf new file mode 100644 index 000000000..a1cd98c43 Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_simple_f1.otf differ diff --git a/test/shaping/data/aots/fonts/gsub_context3_successive_f1.otf b/test/shaping/data/aots/fonts/gsub_context3_successive_f1.otf new file mode 100644 index 000000000..d8b3d5ccb Binary files /dev/null and b/test/shaping/data/aots/fonts/gsub_context3_successive_f1.otf differ diff --git a/test/shaping/data/aots/fonts/lookupflag_ignore_attach_f1.otf b/test/shaping/data/aots/fonts/lookupflag_ignore_attach_f1.otf new file mode 100644 index 000000000..80651f1d6 Binary files /dev/null and b/test/shaping/data/aots/fonts/lookupflag_ignore_attach_f1.otf differ diff --git a/test/shaping/data/aots/fonts/lookupflag_ignore_base_f1.otf b/test/shaping/data/aots/fonts/lookupflag_ignore_base_f1.otf new file mode 100644 index 000000000..3c242b0d1 Binary files /dev/null and b/test/shaping/data/aots/fonts/lookupflag_ignore_base_f1.otf differ diff --git a/test/shaping/data/aots/fonts/lookupflag_ignore_combination_f1.otf b/test/shaping/data/aots/fonts/lookupflag_ignore_combination_f1.otf new file mode 100644 index 000000000..b88359a8f Binary files /dev/null and b/test/shaping/data/aots/fonts/lookupflag_ignore_combination_f1.otf differ diff --git a/test/shaping/data/aots/fonts/lookupflag_ignore_ligatures_f1.otf b/test/shaping/data/aots/fonts/lookupflag_ignore_ligatures_f1.otf new file mode 100644 index 000000000..1dc0c237c Binary files /dev/null and b/test/shaping/data/aots/fonts/lookupflag_ignore_ligatures_f1.otf differ diff --git a/test/shaping/data/aots/fonts/lookupflag_ignore_marks_f1.otf b/test/shaping/data/aots/fonts/lookupflag_ignore_marks_f1.otf new file mode 100644 index 000000000..aa429de3a Binary files /dev/null and b/test/shaping/data/aots/fonts/lookupflag_ignore_marks_f1.otf differ diff --git a/test/shaping/data/aots/hb-aots-tester.cpp b/test/shaping/data/aots/hb-aots-tester.cpp new file mode 100644 index 000000000..81e30076e --- /dev/null +++ b/test/shaping/data/aots/hb-aots-tester.cpp @@ -0,0 +1,343 @@ +/*____________________________________________________________________________ + + Copyright 2000-2016 Adobe Systems Incorporated. All Rights Reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use these files except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +____________________________________________________________________________*/ + +#include "stdlib.h" +#include "stdio.h" +#include "string.h" +#include "hb.h" +#include "hb-ot.h" + +static const bool verbose = true; + + +hb_feature_t *gFeatures; +int gNbFeatures; + + hb_buffer_t *runTest(const char *testName, + const char *fontfileName, + unsigned int *in, int nbIn, + unsigned int *select, int nbSelect) +{ + FILE *f = fopen (fontfileName, "rb"); + fseek(f, 0, SEEK_END); + long fontsize = ftell(f); + fseek(f, 0, SEEK_SET); + char *fontdata = (char *)malloc (fontsize); + fread(fontdata, fontsize, 1, f); + fclose(f); + + if (verbose) { + printf ("------------------------------- %s\n", testName); + } + + // setup font + hb_blob_t *blob = hb_blob_create(fontdata, fontsize, + HB_MEMORY_MODE_WRITABLE, + 0, 0); + hb_face_t *face = hb_face_create(blob, 0); + hb_font_t *font = hb_font_create(face); + unsigned int upem = hb_face_get_upem (face); + + hb_font_set_scale(font, upem, upem); + hb_ot_font_set_funcs (font); + + // setup buffer + hb_buffer_t *buffer = hb_buffer_create(); + hb_buffer_set_direction(buffer, HB_DIRECTION_LTR); + hb_buffer_set_script(buffer, HB_SCRIPT_LATIN); + hb_buffer_set_language(buffer, hb_language_from_string("en", 2)); + + hb_buffer_add_utf32(buffer, in, nbIn, 0, nbIn); + + // setup features + hb_feature_t *features; + int nbFeatures; + + if (nbSelect == 0) + { + nbFeatures = 1; + + features = (hb_feature_t *) malloc (sizeof (*features)); + features[0].tag = HB_TAG('t', 'e', 's', 't'); + features[0].value = 1; + features[0].start = 0; + features[0].end = 0xffffffff; + } + else + { + nbFeatures = 0; + + features = (hb_feature_t *) malloc (sizeof (*features) * nbSelect); + for (int i = 0; i < nbSelect; i++) { + if (select[i] != -1) { + features[nbFeatures].tag = HB_TAG('t', 'e', 's', 't'); + features[nbFeatures].value = select[i]; + features[nbFeatures].start = i; + features[nbFeatures].end = i + 1; + nbFeatures++; + } + } + } + gFeatures = features; + gNbFeatures = nbFeatures; + + // shape + hb_shape(font, buffer, features, nbFeatures); + + hb_blob_destroy(blob); + hb_font_destroy(font); + hb_face_destroy(face); + //free(features); + + return buffer; +} + + +void printArray (const char* s, int *a, int n) +{ + printf ("%s %d : ", s, n); + for (int i = 0; i < n; i++) { + printf (" %d", a[i]); + } + printf ("\n"); +} + +void printUArray (const char* s, unsigned int *a, int n) +{ + printArray (s, (int *) a, n); +} + +bool gsub_test(const char *testName, + const char *fontfileName, + int nbIn, unsigned int *in, + int nbSelect, unsigned int *select, + int nbExpected, unsigned int *expected) +{ + hb_buffer_t *buffer = runTest(testName, + fontfileName, + in, nbIn, + select, nbSelect); + + // verify + hb_glyph_info_t *actual = hb_buffer_get_glyph_infos(buffer, 0); + unsigned int nbActual = hb_buffer_get_length(buffer); + + bool ok = true; + + if (nbActual != nbExpected) + ok = false; + else { + for (int i = 0; i < nbActual; i++) { + if (actual[i].codepoint != expected [i]) { + ok = false; + break; + } + } + } + + + char test_name[255]; + sprintf (test_name, "../../tests/%.*s.tests", (int) (strrchr (testName, '_') - testName), testName); + FILE *tests_file = fopen (test_name, "a+"); + fprintf (tests_file, "../fonts/%s:--features=\"", fontfileName + 9); + for (unsigned int i = 0; i < gNbFeatures; i++) + { + if (i != 0) fprintf (tests_file, ","); + char buf[255]; + hb_feature_to_string (&gFeatures[i], buf, sizeof (buf)); + fprintf (tests_file, "%s", buf); + } + free (gFeatures); + fprintf (tests_file, "\" --no-clusters --no-glyph-names --no-positions:"); + + for (unsigned int i = 0; i < nbIn; i++) + { + if (i != 0) fprintf (tests_file, ","); + fprintf (tests_file, "U+%04X", in[i]); + } + + fprintf (tests_file, ":["); + for (unsigned int i = 0; i < nbActual; i++) + { + if (i != 0) fprintf (tests_file, "|"); + fprintf (tests_file, "%d", expected[i]); + } + fprintf (tests_file, "]"); + + fprintf (tests_file, "\n"); + fclose (tests_file); + + + if (! ok) { + printf ("******* GSUB %s\n", testName); + + printf ("expected %d:", nbExpected); + for (int i = 0; i < nbExpected; i++) { + printf (" %d", expected[i]); } + printf ("\n"); + + printf (" actual %d:", nbActual); + for (int i = 0; i < nbActual; i++) { + printf (" %d", actual[i].codepoint); } + printf ("\n"); + + } + + hb_buffer_destroy(buffer); + + return ok; +} + +bool gpos_test(const char *testName, + const char *fontfileName, + int nbIn, + unsigned int *in, + int nbOut, + unsigned int *out, + int *x, + int *y) +{ + hb_buffer_t *buffer = runTest(testName, + fontfileName, + in, nbIn, + 0, 0); + + // verify + unsigned int nbActual; + hb_glyph_info_t *actual = hb_buffer_get_glyph_infos(buffer, &nbActual); + hb_glyph_position_t *pos = hb_buffer_get_glyph_positions (buffer, NULL); + + unsigned int *actualG = (unsigned int *) malloc(sizeof(*actualG) * nbActual); + int *actualX = (int *) malloc(sizeof(*actualX) * nbActual); + int *actualY = (int *) malloc(sizeof(*actualY) * nbActual); + int curX = 0; + int curY = 0; + for (int i = 0; i < nbActual; i++) { + actualG[i] = actual[i].codepoint; + actualX[i] = curX + pos[i].x_offset; + actualY[i] = curY + pos[i].y_offset; + + actualX[i] -= 1500 * i; + + curX += pos[i].x_advance; + curY += pos[i].y_advance; + } + + bool nbOk = true; + bool xOk = true; + bool yOk = true; + + if (nbActual != nbOut) + nbOk = false; + else { + for (int i = 0; i < nbActual; i++) { + if (actualX[i] != x[i]) { + xOk = false; + } + if (actualY[i] != y[i]) { + yOk = false; + } + } + } + + bool ok = (nbOk && xOk && yOk); + if (! ok) { + printf ("******* GPOS %s\n", testName); + + if (! (nbOk && xOk)) { + printArray ("expectedX", x, nbOut); + printArray ("actualX ", actualX, nbActual); + + printf ("xadv/pos:"); + for (int i = 0; i < nbOut; i++) { + printf (" %d/%d", pos[i].x_advance, pos[i].x_offset); + } + printf ("\n"); + } + + if (! (nbOk && yOk)) { + printArray ("expectedY", y, nbOut); + printArray ("actualY ", actualY, nbActual); + + printf ("yadv/pos:"); + for (int i = 0; i < nbOut; i++) { + printf (" %d/%d", pos[i].y_advance, pos[i].y_offset); + } + printf ("\n"); + } + } + + + char test_name[255]; + sprintf (test_name, "../../tests/%.*s.tests", (int) (strrchr (testName, '_') - testName), testName); + FILE *tests_file = fopen (test_name, "a+"); + if (!ok) fprintf (tests_file, "#"); + fprintf (tests_file, "../fonts/%s:--features=\"", fontfileName + 9); + for (unsigned int i = 0; i < gNbFeatures; i++) + { + if (i != 0) fprintf (tests_file, ","); + char buf[255]; + hb_feature_to_string (&gFeatures[i], buf, sizeof (buf)); + fprintf (tests_file, "%s", buf); + } + free (gFeatures); + fprintf (tests_file, "\" --no-clusters --no-glyph-names --ned:"); + + for (unsigned int i = 0; i < nbIn; i++) + { + if (i != 0) fprintf (tests_file, ","); + fprintf (tests_file, "U+%04X", in[i]); + } + + fprintf (tests_file, ":["); + for (unsigned int i = 0; i < nbActual; i++) + { + if (i != 0) fprintf (tests_file, "|"); + fprintf (tests_file, "%d", /*it should be "out[i]"*/ actualG[i]); + + int expected_x = x[i] + 1500*i; + int expected_y = y[i]; + if (expected_x || expected_y) fprintf (tests_file, "@%d,%d", expected_x, expected_y); + } + fprintf (tests_file, "]"); + + fprintf (tests_file, "\n"); + fclose (tests_file); + + + hb_buffer_destroy(buffer); + + free(actualG); + free(actualX); + free(actualY); + + return ok; +} + + +int main(int argc, char **argv) +{ + int failures = 0; + int pass = 0; + +#include "hb-aots-tester.h" + + printf ("%d failures, %d pass\n", failures, pass); +} + + + diff --git a/test/shaping/data/aots/tests/classdef1.tests b/test/shaping/data/aots/tests/classdef1.tests new file mode 100644 index 000000000..40ded45e7 --- /dev/null +++ b/test/shaping/data/aots/tests/classdef1.tests @@ -0,0 +1 @@ +../fonts/classdef1_font4.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18|19|20|21] diff --git a/test/shaping/data/aots/tests/classdef1_empty.tests b/test/shaping/data/aots/tests/classdef1_empty.tests new file mode 100644 index 000000000..71d87f1c3 --- /dev/null +++ b/test/shaping/data/aots/tests/classdef1_empty.tests @@ -0,0 +1 @@ +../fonts/classdef1_font2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|25|21] diff --git a/test/shaping/data/aots/tests/classdef1_multiple.tests b/test/shaping/data/aots/tests/classdef1_multiple.tests new file mode 100644 index 000000000..c813f4949 --- /dev/null +++ b/test/shaping/data/aots/tests/classdef1_multiple.tests @@ -0,0 +1 @@ +../fonts/classdef1_font3.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+001B,U+001C,U+001D,U+001E,U+001F,U+0020,U+0021,U+0022,U+0023,U+0024:[20|23|24|25|24|26|27|28|28|29|30|31|34|33|34|35|37|38|38|39] diff --git a/test/shaping/data/aots/tests/classdef1_single.tests b/test/shaping/data/aots/tests/classdef1_single.tests new file mode 100644 index 000000000..b0196d3fa --- /dev/null +++ b/test/shaping/data/aots/tests/classdef1_single.tests @@ -0,0 +1 @@ +../fonts/classdef2_font1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|25|21] diff --git a/test/shaping/data/aots/tests/classdef2.tests b/test/shaping/data/aots/tests/classdef2.tests new file mode 100644 index 000000000..d8c7b1484 --- /dev/null +++ b/test/shaping/data/aots/tests/classdef2.tests @@ -0,0 +1 @@ +../fonts/classdef2_font4.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18|19|20|21] diff --git a/test/shaping/data/aots/tests/classdef2_empty.tests b/test/shaping/data/aots/tests/classdef2_empty.tests new file mode 100644 index 000000000..a8fd62950 --- /dev/null +++ b/test/shaping/data/aots/tests/classdef2_empty.tests @@ -0,0 +1 @@ +../fonts/classdef2_font2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|25|21] diff --git a/test/shaping/data/aots/tests/classdef2_multiple.tests b/test/shaping/data/aots/tests/classdef2_multiple.tests new file mode 100644 index 000000000..39e68351f --- /dev/null +++ b/test/shaping/data/aots/tests/classdef2_multiple.tests @@ -0,0 +1 @@ +../fonts/classdef2_font3.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+001B,U+001C,U+001D,U+001E,U+001F,U+0020,U+0021,U+0022,U+0023,U+0024:[20|23|24|25|24|26|27|28|28|29|30|31|34|33|34|35|37|38|38|39] diff --git a/test/shaping/data/aots/tests/classdef2_single.tests b/test/shaping/data/aots/tests/classdef2_single.tests new file mode 100644 index 000000000..b0196d3fa --- /dev/null +++ b/test/shaping/data/aots/tests/classdef2_single.tests @@ -0,0 +1 @@ +../fonts/classdef2_font1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|25|21] diff --git a/test/shaping/data/aots/tests/gpos1_1_lookupflag.tests b/test/shaping/data/aots/tests/gpos1_1_lookupflag.tests new file mode 100644 index 000000000..88d7dd740 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos1_1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gpos1_1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1500,0|19@3000,0|20@4200,0|21@6000,0] diff --git a/test/shaping/data/aots/tests/gpos1_1_simple.tests b/test/shaping/data/aots/tests/gpos1_1_simple.tests new file mode 100644 index 000000000..101da9c49 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos1_1_simple.tests @@ -0,0 +1,4 @@ +../fonts/gpos1_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1300,0|19@3000,0|20@4300,0|21@6000,0] +../fonts/gpos1_1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1500,-200|19@3000,0|20@4500,-200|21@6000,0] +../fonts/gpos1_1_simple_f3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1500,0|19@2800,0|20@4300,0|21@5600,0] +#../fonts/gpos1_1_simple_f4.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1500,0|19@3000,-200|20@4500,-200|21@6000,-400] diff --git a/test/shaping/data/aots/tests/gpos1_2.tests b/test/shaping/data/aots/tests/gpos1_2.tests new file mode 100644 index 000000000..3ddfa4490 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos1_2.tests @@ -0,0 +1 @@ +../fonts/gpos1_2_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1300,0|19@3000,0|20@4200,0|21@6000,0] diff --git a/test/shaping/data/aots/tests/gpos1_2_lookupflag.tests b/test/shaping/data/aots/tests/gpos1_2_lookupflag.tests new file mode 100644 index 000000000..82bcc4307 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos1_2_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gpos1_2_font2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1500,0|19@3000,0|20@4200,0|21@6000,0] diff --git a/test/shaping/data/aots/tests/gpos2_1.tests b/test/shaping/data/aots/tests/gpos2_1.tests new file mode 100644 index 000000000..4d8b5e968 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos2_1.tests @@ -0,0 +1,2 @@ +../fonts/gpos2_1_font6.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011,U+0012,U+0014,U+0011:[17|18@1300,0|19@3000,-100|17@4500,0|18@5700,0|20@7500,-400|17@9000,0] +../fonts/gpos2_1_font7.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011,U+0012,U+0014,U+0011,U+0015,U+0016,U+0011:[17|18@1300,0|19@3000,-100|17@4500,0|18@5700,0|20@7500,-400|17@9000,0|21@10000,0|22@12000,-600|17@13500,0] diff --git a/test/shaping/data/aots/tests/gpos2_1_lookupflag.tests b/test/shaping/data/aots/tests/gpos2_1_lookupflag.tests new file mode 100644 index 000000000..ce445a118 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos2_1_lookupflag.tests @@ -0,0 +1,2 @@ +../fonts/gpos2_1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0011,U+0013,U+0012,U+0014,U+0011:[17|19@1300,0|20@3000,-100|17@4500,0|19@5800,0|18@7500,0|20@9000,-100|17@10500,0] +../fonts/gpos2_1_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0011,U+0013,U+0012,U+0014,U+0011:[17|19@1500,0|20@2800,-100|17@4300,0|19@5800,0|18@7100,0|20@8600,-100|17@10100,0] diff --git a/test/shaping/data/aots/tests/gpos2_1_next_glyph.tests b/test/shaping/data/aots/tests/gpos2_1_next_glyph.tests new file mode 100644 index 000000000..7f27eeed7 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos2_1_next_glyph.tests @@ -0,0 +1,2 @@ +../fonts/gpos2_1_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0012,U+0012,U+0012,U+0012:[18@-100,0|18@1500,-100|18@2900,0|18@4500,-100] +../fonts/gpos2_1_next_glyph_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0012,U+0012,U+0012,U+0012:[18@-100,0|18@1400,0|18@2900,0|18@4500,0] diff --git a/test/shaping/data/aots/tests/gpos2_1_simple.tests b/test/shaping/data/aots/tests/gpos2_1_simple.tests new file mode 100644 index 000000000..71e8c81e5 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos2_1_simple.tests @@ -0,0 +1,2 @@ +../fonts/gpos2_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011,U+0012,U+0014:[17|18@1300,0|19@3000,-100|17@4500,0|18@6000,0|20@7500,0] +../fonts/gpos2_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012:[17|18@1500,0] diff --git a/test/shaping/data/aots/tests/gpos2_2.tests b/test/shaping/data/aots/tests/gpos2_2.tests new file mode 100644 index 000000000..7be07f7d8 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos2_2.tests @@ -0,0 +1,5 @@ +../fonts/gpos2_2_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011,U+0012,U+0014:[17|18@1300,0|19@3000,-100|17@4500,0|18@6000,0|20@7500,0] +../fonts/gpos2_2_font2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0011,U+0013,U+0012,U+0014,U+0011:[17|19@1300,0|20@3000,-100|17@4500,0|19@5800,0|18@7500,0|20@9000,-100|17@10500,0] +../fonts/gpos2_2_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0011,U+0013,U+0012,U+0014,U+0011:[17|19@1500,0|20@2800,-100|17@4300,0|19@5800,0|18@7100,0|20@8600,-100|17@10100,0] +../fonts/gpos2_2_font4.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0012,U+0012,U+0012,U+0012:[18@-100,0|18@1500,-100|18@2900,0|18@4500,-100] +../fonts/gpos2_2_font5.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0012,U+0012,U+0012,U+0012:[18@-100,0|18@1400,0|18@2900,0|18@4500,0] diff --git a/test/shaping/data/aots/tests/gpos3.tests b/test/shaping/data/aots/tests/gpos3.tests new file mode 100644 index 000000000..d6f37bfff --- /dev/null +++ b/test/shaping/data/aots/tests/gpos3.tests @@ -0,0 +1,11 @@ +#../fonts/gpos3_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|19@1599,99|17@4500,0] +../fonts/gpos3_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0011,U+0013,U+0011:[17|18@1500,0|17@3000,0|19@4500,0|17@6000,0] +#../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0012,U+0011:[17|18@1500,0|18@1600,100|17@4500,0] +#../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|19@1599,99|17@4500,0] +#../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0014,U+0012,U+0011:[17|20@1500,0|18@1602,102|17@4500,0] +#../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0014,U+0013,U+0011:[17|20@1500,0|19@1601,101|17@4500,0] +../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0014,U+0011:[17|18@1500,0|20@3000,0|17@4500,0] +../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0012,U+0011:[17|19@1500,0|18@3000,0|17@4500,0] +../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0011:[17|19@1500,0|20@3000,0|17@4500,0] +../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012:[17|18@1500,0] +../fonts/gpos3_font3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0015,U+0015,U+0015:[17|18@1500,0|21@3000,0|21@4500,0|21@6000,0] diff --git a/test/shaping/data/aots/tests/gpos3_lookupflag.tests b/test/shaping/data/aots/tests/gpos3_lookupflag.tests new file mode 100644 index 000000000..13d593ca9 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos3_lookupflag.tests @@ -0,0 +1,2 @@ +#../fonts/gpos3_font2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0015,U+0013,U+0011:[17|18@1500,0|21@3000,0|19@1599,99|17@6000,0] +#../fonts/gpos3_font2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0015,U+0015,U+0015,U+0013,U+0011:[17|18@1500,0|21@3000,0|21@4500,0|21@6000,0|19@1599,99|17@9000,0] diff --git a/test/shaping/data/aots/tests/gpos4_lookupflag.tests b/test/shaping/data/aots/tests/gpos4_lookupflag.tests new file mode 100644 index 000000000..9d041bff2 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos4_lookupflag.tests @@ -0,0 +1,2 @@ +#../fonts/gpos4_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0011,U+0013,U+0011:[17|18@1500,0|17@3000,0|19@4500,0|17@6000,0] +#../fonts/gpos4_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|19@3000,0|17@4500,0] diff --git a/test/shaping/data/aots/tests/gpos4_multiple_anchors.tests b/test/shaping/data/aots/tests/gpos4_multiple_anchors.tests new file mode 100644 index 000000000..af9a1f5fa --- /dev/null +++ b/test/shaping/data/aots/tests/gpos4_multiple_anchors.tests @@ -0,0 +1 @@ +#../fonts/gpos4_multiple_anchors_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0013,U+0014,U+0015,U+0016,U+0012,U+0013,U+0014,U+0015,U+0016:[17|19@-100,-80|20@-91,-71|21@-102,-82|22@-93,-73|18@7500,0|19@7420,-60|20@7429,-51|21@7418,-62|22@7427,-53] diff --git a/test/shaping/data/aots/tests/gpos4_simple.tests b/test/shaping/data/aots/tests/gpos4_simple.tests new file mode 100644 index 000000000..5d605079d --- /dev/null +++ b/test/shaping/data/aots/tests/gpos4_simple.tests @@ -0,0 +1,5 @@ +#../fonts/gpos4_simple_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|19@1400,-80|17@4500,0] +#../fonts/gpos4_simple_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0011,U+0013,U+0011:[17|17@1500,0|19@3000,0|17@4500,0] +#../fonts/gpos4_simple_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0019,U+0019,U+0013,U+0011:[25|25@1500,0|19@3000,0|17@4500,0] +#../fonts/gpos4_simple_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0013,U+0011:[17|18@1500,0|19@1400,-80|19@1400,-80|17@6000,0] +#../fonts/gpos4_simple_1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0014,U+0013,U+0011:[17|18@1500,0|20@3000,0|19@1400,-80|17@6000,0] diff --git a/test/shaping/data/aots/tests/gpos5.tests b/test/shaping/data/aots/tests/gpos5.tests new file mode 100644 index 000000000..a20a0b9ea --- /dev/null +++ b/test/shaping/data/aots/tests/gpos5.tests @@ -0,0 +1,2 @@ +#../fonts/gpos5_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+001E,U+0013,U+001F,U+0011:[17|18@1500,0|19@1400,-80|17@4500,0] +#../fonts/gpos5_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+001E,U+001F,U+0013,U+0011:[17|18@1500,0|19@1401,-79|17@4500,0] diff --git a/test/shaping/data/aots/tests/gpos6.tests b/test/shaping/data/aots/tests/gpos6.tests new file mode 100644 index 000000000..e5f9b3cd5 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos6.tests @@ -0,0 +1,3 @@ +#../fonts/gpos6_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|19@1400,-80|17@4500,0] +#../fonts/gpos6_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0011,U+0013,U+0011:[17|17@1500,0|19@3000,0|17@4500,0] +#../fonts/gpos6_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0014,U+0014,U+0013,U+0011:[20|20@1500,0|19@3000,0|17@4500,0] diff --git a/test/shaping/data/aots/tests/gpos7_1.tests b/test/shaping/data/aots/tests/gpos7_1.tests new file mode 100644 index 000000000..954c8cbc6 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos7_1.tests @@ -0,0 +1,2 @@ +../fonts/gpos7_1_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1600,0|19@3200,0|20@4800,0|21@6000,0] +../fonts/gpos7_1_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0011,U+0012,U+0013,U+0011:[17|18@1500,0|17@3000,0|18@4500,0|19@6000,0|17@7500,0] diff --git a/test/shaping/data/aots/tests/gpos9.tests b/test/shaping/data/aots/tests/gpos9.tests new file mode 100644 index 000000000..cb2033308 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos9.tests @@ -0,0 +1,2 @@ +../fonts/gpos9_font1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18@1300,0|19@3000,0|20@4300,0|21@6000,0] +../fonts/gpos9_font2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0011,U+0012,U+0013,U+0014,U+0015,U+0011:[17|18@1300,0|19@2700,0|20@4300,0|21@5700,0|17@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_boundary.tests b/test/shaping/data/aots/tests/gpos_chaining1_boundary.tests new file mode 100644 index 000000000..646ff2cf9 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gpos_chaining1_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining1_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining1_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining1_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_lookupflag.tests b/test/shaping/data/aots/tests/gpos_chaining1_lookupflag.tests new file mode 100644 index 000000000..d0e6e2e0a --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_lookupflag.tests @@ -0,0 +1 @@ +#../fonts/gpos_chaining1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20@1500,0|90@3000,0|21@4500,0|91@6000,0|22@7500,0|92@9000,0|23@10520,0|93@12000,0|94@13500,0|24@15000,0|90@16500,0|25@18000,0|91@19500,0|26@21000,0|0@22500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_multiple_subrules.tests b/test/shaping/data/aots/tests/gpos_chaining1_multiple_subrules.tests new file mode 100644 index 000000000..51bbe03be --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gpos_chaining1_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|24@7500,0|0@9000,0|20@10500,0|21@12000,0|22@13520,0|23@15000,0|0@16500,0] +../fonts/gpos_chaining1_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|24@7500,0|0@9000,0|20@10500,0|21@12000,0|22@13520,0|23@15000,0|0@16500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_next_glyph.tests b/test/shaping/data/aots/tests/gpos_chaining1_next_glyph.tests new file mode 100644 index 000000000..f8be40456 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining1_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6020,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_simple.tests b/test/shaping/data/aots/tests/gpos_chaining1_simple.tests new file mode 100644 index 000000000..37efa11fd --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_simple.tests @@ -0,0 +1,11 @@ +../fonts/gpos_chaining1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|0@10500,0|0@12000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22@1500,0|23@3000,0|24@4500,0|25@6000,0|26@7500,0|0@9000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23@1500,0|24@3000,0|25@4500,0|26@6000,0|0@7500,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|0@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0] +../fonts/gpos_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016:[0|20@1500,0|21@3000,0|22@4500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining1_successive.tests b/test/shaping/data/aots/tests/gpos_chaining1_successive.tests new file mode 100644 index 000000000..7a829cf72 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining1_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining1_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25@1500,0|20@3000,0|21@4520,0|22@6020,0|23@7500,0|24@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_boundary.tests b/test/shaping/data/aots/tests/gpos_chaining2_boundary.tests new file mode 100644 index 000000000..c35b8c776 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gpos_chaining2_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining2_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining2_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining2_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_lookupflag.tests b/test/shaping/data/aots/tests/gpos_chaining2_lookupflag.tests new file mode 100644 index 000000000..8b50e1499 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_lookupflag.tests @@ -0,0 +1 @@ +#../fonts/gpos_chaining2_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20@1500,0|90@3000,0|21@4500,0|91@6000,0|22@7500,0|92@9000,0|23@10520,0|93@12000,0|94@13500,0|24@15000,0|90@16500,0|25@18000,0|91@19500,0|26@21000,0|0@22500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_multiple_subrules.tests b/test/shaping/data/aots/tests/gpos_chaining2_multiple_subrules.tests new file mode 100644 index 000000000..8ddc8b223 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gpos_chaining2_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|24@7500,0|0@9000,0|20@10500,0|21@12000,0|22@13520,0|23@15000,0|0@16500,0] +../fonts/gpos_chaining2_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|24@7500,0|0@9000,0|20@10500,0|21@12000,0|22@13520,0|23@15000,0|0@16500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_next_glyph.tests b/test/shaping/data/aots/tests/gpos_chaining2_next_glyph.tests new file mode 100644 index 000000000..34170f218 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining2_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6020,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_simple.tests b/test/shaping/data/aots/tests/gpos_chaining2_simple.tests new file mode 100644 index 000000000..32fda1b5d --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_simple.tests @@ -0,0 +1,11 @@ +../fonts/gpos_chaining2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|0@10500,0|0@12000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22@1500,0|23@3000,0|24@4500,0|25@6000,0|26@7500,0|0@9000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23@1500,0|24@3000,0|25@4500,0|26@6000,0|0@7500,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|0@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0] +../fonts/gpos_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016:[0|20@1500,0|21@3000,0|22@4500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining2_successive.tests b/test/shaping/data/aots/tests/gpos_chaining2_successive.tests new file mode 100644 index 000000000..e930863c4 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining2_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining2_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25@1500,0|20@3000,0|21@4520,0|22@6020,0|23@7500,0|24@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining3_boundary.tests b/test/shaping/data/aots/tests/gpos_chaining3_boundary.tests new file mode 100644 index 000000000..f74dedf6b --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining3_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gpos_chaining3_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining3_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining3_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining3_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining3_lookupflag.tests b/test/shaping/data/aots/tests/gpos_chaining3_lookupflag.tests new file mode 100644 index 000000000..0165fb590 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining3_lookupflag.tests @@ -0,0 +1 @@ +#../fonts/gpos_chaining3_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20@1500,0|90@3000,0|21@4500,0|91@6000,0|22@7500,0|92@9000,0|23@10520,0|93@12000,0|94@13500,0|24@15000,0|90@16500,0|25@18000,0|91@19500,0|26@21000,0|0@22500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining3_next_glyph.tests b/test/shaping/data/aots/tests/gpos_chaining3_next_glyph.tests new file mode 100644 index 000000000..614bc2eac --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining3_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining3_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0016,U+0015,U+0016,U+0015,U+0016,U+0015,U+0000:[0|22@1500,0|21@3020,0|22@4500,0|21@6020,0|22@7500,0|21@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining3_simple.tests b/test/shaping/data/aots/tests/gpos_chaining3_simple.tests new file mode 100644 index 000000000..f5977c23d --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining3_simple.tests @@ -0,0 +1,11 @@ +../fonts/gpos_chaining3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4520,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|0@10500,0|0@12000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0@1500,0|21@3000,0|22@4500,0|23@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22@1500,0|23@3000,0|24@4500,0|25@6000,0|26@7500,0|0@9000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23@1500,0|24@3000,0|25@4500,0|26@6000,0|0@7500,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|0@6000,0|24@7500,0|25@9000,0|26@10500,0|0@12000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20@1500,0|21@3000,0|22@4500,0|23@6000,0] +../fonts/gpos_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016:[0|20@1500,0|21@3000,0|22@4500,0] diff --git a/test/shaping/data/aots/tests/gpos_chaining3_successive.tests b/test/shaping/data/aots/tests/gpos_chaining3_successive.tests new file mode 100644 index 000000000..fa5a50ca2 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_chaining3_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_chaining3_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25@1500,0|20@3000,0|21@4520,0|22@6020,0|23@7500,0|24@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_boundary.tests b/test/shaping/data/aots/tests/gpos_context1_boundary.tests new file mode 100644 index 000000000..1db8fef33 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context1_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1500,0|20@3000,0|20@4500,0|20@6000,0|20@7500,0|0@9000,0] +../fonts/gpos_context1_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3020,0|20@4520,0|20@6020,0|20@7520,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_expansion.tests b/test/shaping/data/aots/tests/gpos_context1_expansion.tests new file mode 100644 index 000000000..2fc54d54b --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_expansion.tests @@ -0,0 +1 @@ +../fonts/gpos_context1_expansion_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|0@6000,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_lookupflag.tests b/test/shaping/data/aots/tests/gpos_context1_lookupflag.tests new file mode 100644 index 000000000..9e8fcd6e4 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_lookupflag.tests @@ -0,0 +1,2 @@ +#../fonts/gpos_context1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1520,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9020,0|0@10500,0] +#../fonts/gpos_context1_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1500,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_multiple_subrules.tests b/test/shaping/data/aots/tests/gpos_context1_multiple_subrules.tests new file mode 100644 index 000000000..b994f04e2 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context1_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20@1520,0|21@3000,0|22@4500,0|0@6000,0|20@7500,0|21@9020,0|0@10500,0] +../fonts/gpos_context1_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|0@6000,0|20@7500,0|21@9020,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_next_glyph.tests b/test/shaping/data/aots/tests/gpos_context1_next_glyph.tests new file mode 100644 index 000000000..e67d63583 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_context1_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3000,0|20@4520,0|20@6000,0|20@7500,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_simple.tests b/test/shaping/data/aots/tests/gpos_context1_simple.tests new file mode 100644 index 000000000..4a88e0ada --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_simple.tests @@ -0,0 +1,3 @@ +../fonts/gpos_context1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1520,0|21@3020,0|22@4520,0|0@6000,0] +../fonts/gpos_context1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000:[0|20@1500,0|0@3000,0|20@4500,0|21@6000,0|0@7500,0] +../fonts/gpos_context1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1500,0|20@3020,0|20@4500,0|20@6000,0|20@7500,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context1_successive.tests b/test/shaping/data/aots/tests/gpos_context1_successive.tests new file mode 100644 index 000000000..172d35040 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context1_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_context1_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_boundary.tests b/test/shaping/data/aots/tests/gpos_context2_boundary.tests new file mode 100644 index 000000000..ef63fbbbb --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context2_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1500,0|20@3000,0|20@4500,0|20@6000,0|20@7500,0|0@9000,0] +../fonts/gpos_context2_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3020,0|20@4520,0|20@6020,0|20@7520,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_classes.tests b/test/shaping/data/aots/tests/gpos_context2_classes.tests new file mode 100644 index 000000000..5a3d008a8 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_classes.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context2_classes_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+001A,U+001C,U+0018,U+0000,U+0015,U+001B,U+001A,U+0018,U+0000,U+0016,U+001B,U+001A,U+0018:[0|20@1500,0|26@3020,0|28@4500,0|24@6000,0|0@7500,0|21@9000,0|27@10520,0|26@12000,0|24@13500,0|0@15000,0|22@16500,0|27@18000,0|26@19500,0|24@21000,0] +../fonts/gpos_context2_classes_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0016,U+001B,U+001A,U+0018,U+0000,U+0018,U+0018,U+001D,U+0016,U+0000,U+0016,U+001B,U+001A,U+0018:[0|22@1500,0|27@3020,0|26@4500,0|24@6000,0|0@7500,0|24@9000,0|24@10500,0|29@12020,0|22@13500,0|0@15000,0|22@16500,0|27@18020,0|26@19500,0|24@21000,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_expansion.tests b/test/shaping/data/aots/tests/gpos_context2_expansion.tests new file mode 100644 index 000000000..67ed9786e --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_expansion.tests @@ -0,0 +1 @@ +../fonts/gpos_context2_expansion_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1500,0|21@3000,0|22@4500,0|0@6000,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_lookupflag.tests b/test/shaping/data/aots/tests/gpos_context2_lookupflag.tests new file mode 100644 index 000000000..f48e82502 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_lookupflag.tests @@ -0,0 +1,2 @@ +#../fonts/gpos_context2_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1520,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9020,0|0@10500,0] +#../fonts/gpos_context2_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1500,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_multiple_subrules.tests b/test/shaping/data/aots/tests/gpos_context2_multiple_subrules.tests new file mode 100644 index 000000000..44893723d --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context2_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20@1520,0|21@3000,0|22@4500,0|0@6000,0|20@7500,0|21@9020,0|0@10500,0] +../fonts/gpos_context2_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20@1500,0|21@3020,0|22@4500,0|0@6000,0|20@7500,0|21@9020,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_next_glyph.tests b/test/shaping/data/aots/tests/gpos_context2_next_glyph.tests new file mode 100644 index 000000000..e736b3bd6 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_context2_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3000,0|20@4520,0|20@6000,0|20@7500,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_simple.tests b/test/shaping/data/aots/tests/gpos_context2_simple.tests new file mode 100644 index 000000000..edbc0be33 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_simple.tests @@ -0,0 +1,3 @@ +../fonts/gpos_context2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1520,0|21@3020,0|22@4520,0|0@6000,0] +../fonts/gpos_context2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000:[0|20@1500,0|0@3000,0|20@4500,0|21@6000,0|0@7500,0] +../fonts/gpos_context2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1500,0|20@3020,0|20@4500,0|20@6000,0|20@7500,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context2_successive.tests b/test/shaping/data/aots/tests/gpos_context2_successive.tests new file mode 100644 index 000000000..8b098d59d --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context2_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_context2_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gpos_context3_boundary.tests b/test/shaping/data/aots/tests/gpos_context3_boundary.tests new file mode 100644 index 000000000..de3c05740 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context3_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context3_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1500,0|20@3000,0|20@4500,0|20@6000,0|20@7500,0|0@9000,0] +../fonts/gpos_context3_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3020,0|20@4520,0|20@6020,0|20@7520,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context3_lookupflag.tests b/test/shaping/data/aots/tests/gpos_context3_lookupflag.tests new file mode 100644 index 000000000..21f851b97 --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context3_lookupflag.tests @@ -0,0 +1,2 @@ +#../fonts/gpos_context3_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1520,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9020,0|0@10500,0] +#../fonts/gpos_context3_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20@1500,0|90@3000,0|21@4520,0|91@6000,0|92@7500,0|22@9000,0|0@10500,0] diff --git a/test/shaping/data/aots/tests/gpos_context3_next_glyph.tests b/test/shaping/data/aots/tests/gpos_context3_next_glyph.tests new file mode 100644 index 000000000..049b156aa --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context3_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gpos_context3_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20@1520,0|20@3000,0|20@4520,0|20@6000,0|20@7500,0|0@9000,0] diff --git a/test/shaping/data/aots/tests/gpos_context3_simple.tests b/test/shaping/data/aots/tests/gpos_context3_simple.tests new file mode 100644 index 000000000..3e544f04e --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context3_simple.tests @@ -0,0 +1,2 @@ +../fonts/gpos_context3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1520,0|21@3020,0|22@4520,0|0@6000,0] +../fonts/gpos_context3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000,U+0014,U+0015,U+0016,U+0000:[0|20@1500,0|0@3000,0|20@4500,0|21@6000,0|0@7500,0|20@9020,0|21@10520,0|22@12020,0|0@13500,0] diff --git a/test/shaping/data/aots/tests/gpos_context3_successive.tests b/test/shaping/data/aots/tests/gpos_context3_successive.tests new file mode 100644 index 000000000..bfcf24acb --- /dev/null +++ b/test/shaping/data/aots/tests/gpos_context3_successive.tests @@ -0,0 +1 @@ +../fonts/gpos_context3_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --ned:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20@1500,0|21@3020,0|22@4520,0|23@6000,0|0@7500,0] diff --git a/test/shaping/data/aots/tests/gsub1_1_lookupflag.tests b/test/shaping/data/aots/tests/gsub1_1_lookupflag.tests new file mode 100644 index 000000000..8865af8c7 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub1_1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub1_1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18|24|20|21] diff --git a/test/shaping/data/aots/tests/gsub1_1_modulo.tests b/test/shaping/data/aots/tests/gsub1_1_modulo.tests new file mode 100644 index 000000000..bbfff5ee2 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub1_1_modulo.tests @@ -0,0 +1 @@ +../fonts/gsub1_1_modulo_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015,U+0016,U+0017,U+0018:[17|18|17|24|23|18|23|24] diff --git a/test/shaping/data/aots/tests/gsub1_1_simple.tests b/test/shaping/data/aots/tests/gsub1_1_simple.tests new file mode 100644 index 000000000..a3a13859c --- /dev/null +++ b/test/shaping/data/aots/tests/gsub1_1_simple.tests @@ -0,0 +1 @@ +../fonts/gsub1_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|20|21] diff --git a/test/shaping/data/aots/tests/gsub1_2_lookupflag.tests b/test/shaping/data/aots/tests/gsub1_2_lookupflag.tests new file mode 100644 index 000000000..887e0479e --- /dev/null +++ b/test/shaping/data/aots/tests/gsub1_2_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub1_2_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|18|19|25|21] diff --git a/test/shaping/data/aots/tests/gsub1_2_simple.tests b/test/shaping/data/aots/tests/gsub1_2_simple.tests new file mode 100644 index 000000000..d65789738 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub1_2_simple.tests @@ -0,0 +1 @@ +../fonts/gsub1_2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|22|19|25|21] diff --git a/test/shaping/data/aots/tests/gsub2_1_lookupflag.tests b/test/shaping/data/aots/tests/gsub2_1_lookupflag.tests new file mode 100644 index 000000000..e28e59cde --- /dev/null +++ b/test/shaping/data/aots/tests/gsub2_1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub2_1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0011:[17|18|22|23|17] diff --git a/test/shaping/data/aots/tests/gsub2_1_multiple_sequences.tests b/test/shaping/data/aots/tests/gsub2_1_multiple_sequences.tests new file mode 100644 index 000000000..12cbbf606 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub2_1_multiple_sequences.tests @@ -0,0 +1 @@ +../fonts/gsub2_1_multiple_sequences_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0011:[17|20|21|22|23|17] diff --git a/test/shaping/data/aots/tests/gsub2_1_simple.tests b/test/shaping/data/aots/tests/gsub2_1_simple.tests new file mode 100644 index 000000000..d1d09690b --- /dev/null +++ b/test/shaping/data/aots/tests/gsub2_1_simple.tests @@ -0,0 +1,2 @@ +../fonts/gsub2_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013:[17|20|21|22|19] +../fonts/gsub2_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0012:[17|20|21|22|19|20|21|22] diff --git a/test/shaping/data/aots/tests/gsub3_1_lookupflag.tests b/test/shaping/data/aots/tests/gsub3_1_lookupflag.tests new file mode 100644 index 000000000..193c5c4a0 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub3_1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub3_1_lookupflag_f1.otf:--features="-test[4],test[5],test[6]=2,-test[7]" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0012,U+0012,U+0013,U+0013,U+0013,U+0013,U+0011:[17|18|18|18|19|22|23|19|17] diff --git a/test/shaping/data/aots/tests/gsub3_1_multiple.tests b/test/shaping/data/aots/tests/gsub3_1_multiple.tests new file mode 100644 index 000000000..7b1c032e1 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub3_1_multiple.tests @@ -0,0 +1 @@ +../fonts/gsub3_1_multiple_f1.otf:--features="-test[1],test[2],test[3]=2,-test[4],-test[5],test[6],test[7]=2,-test[8]" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0012,U+0012,U+0012,U+0013,U+0013,U+0013,U+0013,U+0011:[17|18|20|21|18|19|22|23|19|17] diff --git a/test/shaping/data/aots/tests/gsub3_1_simple.tests b/test/shaping/data/aots/tests/gsub3_1_simple.tests new file mode 100644 index 000000000..5e65ba055 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub3_1_simple.tests @@ -0,0 +1 @@ +../fonts/gsub3_1_simple_f1.otf:--features="-test[1],test[3],test[5]=2,test[7]=3,-test[9],test[11]" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0011,U+0012,U+0011,U+0012,U+0011,U+0012,U+0011,U+0012,U+0011,U+0012,U+0011:[17|18|17|20|17|21|17|22|17|18|17|20|17] diff --git a/test/shaping/data/aots/tests/gsub4_1_lookupflag.tests b/test/shaping/data/aots/tests/gsub4_1_lookupflag.tests new file mode 100644 index 000000000..c2c5242a4 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub4_1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub4_1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0018,U+0012,U+0018,U+0013,U+0018,U+0018,U+0014,U+0018,U+0011,U+0012,U+0013,U+0016,U+0014:[17|24|23|24|24|24|24|17|18|19|22|20] diff --git a/test/shaping/data/aots/tests/gsub4_1_multiple_ligatures.tests b/test/shaping/data/aots/tests/gsub4_1_multiple_ligatures.tests new file mode 100644 index 000000000..33c1a09f9 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub4_1_multiple_ligatures.tests @@ -0,0 +1,2 @@ +../fonts/gsub4_1_multiple_ligatures_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0011,U+0012,U+0013,U+0016,U+0014:[17|23|17|24|22|20] +../fonts/gsub4_1_multiple_ligatures_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0011,U+0012,U+0013,U+0016,U+0014:[17|24|20|17|24|22|20] diff --git a/test/shaping/data/aots/tests/gsub4_1_multiple_ligsets.tests b/test/shaping/data/aots/tests/gsub4_1_multiple_ligsets.tests new file mode 100644 index 000000000..a63aeed42 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub4_1_multiple_ligsets.tests @@ -0,0 +1 @@ +../fonts/gsub4_1_multiple_ligsets_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0015,U+0014,U+0013,U+0016:[17|23|21|24|22] diff --git a/test/shaping/data/aots/tests/gsub4_1_simple.tests b/test/shaping/data/aots/tests/gsub4_1_simple.tests new file mode 100644 index 000000000..aa4bb4b2e --- /dev/null +++ b/test/shaping/data/aots/tests/gsub4_1_simple.tests @@ -0,0 +1 @@ +../fonts/gsub4_1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0011,U+0012,U+0013,U+0016,U+0014:[17|23|17|18|19|22|20] diff --git a/test/shaping/data/aots/tests/gsub7.tests b/test/shaping/data/aots/tests/gsub7.tests new file mode 100644 index 000000000..e95b1c784 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub7.tests @@ -0,0 +1,2 @@ +../fonts/gsub7_font1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|24|20|21] +../fonts/gsub7_font2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|29|20|21] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_boundary.tests b/test/shaping/data/aots/tests/gsub_chaining1_boundary.tests new file mode 100644 index 000000000..6d99d9747 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gsub_chaining1_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|22|23|0] +../fonts/gsub_chaining1_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining1_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining1_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|62|23|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_lookupflag.tests b/test/shaping/data/aots/tests/gsub_chaining1_lookupflag.tests new file mode 100644 index 000000000..7883c0a89 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20|90|21|91|22|92|63|93|94|24|90|25|91|26|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_multiple_subrules.tests b/test/shaping/data/aots/tests/gsub_chaining1_multiple_subrules.tests new file mode 100644 index 000000000..28a52250a --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gsub_chaining1_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|24|0|20|21|62|23|0] +../fonts/gsub_chaining1_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|62|23|24|0|20|21|62|23|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_next_glyph.tests b/test/shaping/data/aots/tests/gsub_chaining1_next_glyph.tests new file mode 100644 index 000000000..82f9d95c0 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining1_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|62|63|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_simple.tests b/test/shaping/data/aots/tests/gsub_chaining1_simple.tests new file mode 100644 index 000000000..23e091f2a --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_simple.tests @@ -0,0 +1,11 @@ +../fonts/gsub_chaining1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|62|23|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20|21|62|23|24|25|26|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20|21|22|23|24|25|0|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20|21|22|23|24|25] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20|21|22|23|24] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0|21|22|23|24|25|26|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22|23|24|25|26|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23|24|25|26|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20|21|22|0|24|25|26|0] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20|21|22|23] +../fonts/gsub_chaining1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016:[0|20|21|22] diff --git a/test/shaping/data/aots/tests/gsub_chaining1_successive.tests b/test/shaping/data/aots/tests/gsub_chaining1_successive.tests new file mode 100644 index 000000000..ab3cfb1b2 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining1_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining1_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25|20|61|63|24|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_boundary.tests b/test/shaping/data/aots/tests/gsub_chaining2_boundary.tests new file mode 100644 index 000000000..b06c620ca --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gsub_chaining2_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|22|23|0] +../fonts/gsub_chaining2_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining2_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining2_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|62|23|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_lookupflag.tests b/test/shaping/data/aots/tests/gsub_chaining2_lookupflag.tests new file mode 100644 index 000000000..372b3436e --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining2_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20|90|21|91|22|92|63|93|94|24|90|25|91|26|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_multiple_subrules.tests b/test/shaping/data/aots/tests/gsub_chaining2_multiple_subrules.tests new file mode 100644 index 000000000..e2fbb5cb2 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gsub_chaining2_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|24|0|20|21|62|23|0] +../fonts/gsub_chaining2_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|62|23|24|0|20|21|62|23|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_next_glyph.tests b/test/shaping/data/aots/tests/gsub_chaining2_next_glyph.tests new file mode 100644 index 000000000..84c82522b --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining2_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|62|63|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_simple.tests b/test/shaping/data/aots/tests/gsub_chaining2_simple.tests new file mode 100644 index 000000000..53fa7e85e --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_simple.tests @@ -0,0 +1,11 @@ +../fonts/gsub_chaining2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|62|23|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20|21|62|23|24|25|26|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20|21|22|23|24|25|0|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20|21|22|23|24|25] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20|21|22|23|24] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0|21|22|23|24|25|26|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22|23|24|25|26|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23|24|25|26|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20|21|22|0|24|25|26|0] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20|21|22|23] +../fonts/gsub_chaining2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016:[0|20|21|22] diff --git a/test/shaping/data/aots/tests/gsub_chaining2_successive.tests b/test/shaping/data/aots/tests/gsub_chaining2_successive.tests new file mode 100644 index 000000000..71cbe0dd9 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining2_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining2_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25|20|61|63|24|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining3_boundary.tests b/test/shaping/data/aots/tests/gsub_chaining3_boundary.tests new file mode 100644 index 000000000..c01dc4b01 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining3_boundary.tests @@ -0,0 +1,4 @@ +../fonts/gsub_chaining3_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|22|23|0] +../fonts/gsub_chaining3_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining3_boundary_f3.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|22|23|0] +../fonts/gsub_chaining3_boundary_f4.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|21|62|23|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining3_lookupflag.tests b/test/shaping/data/aots/tests/gsub_chaining3_lookupflag.tests new file mode 100644 index 000000000..be2147bf4 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining3_lookupflag.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining3_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+0016,U+005C,U+0017,U+005D,U+005E,U+0018,U+005A,U+0019,U+005B,U+001A,U+0000:[0|20|90|21|91|22|92|63|93|94|24|90|25|91|26|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining3_next_glyph.tests b/test/shaping/data/aots/tests/gsub_chaining3_next_glyph.tests new file mode 100644 index 000000000..2493c1e90 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining3_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining3_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0016,U+0015,U+0016,U+0015,U+0016,U+0015,U+0000:[0|22|61|22|61|22|21|0] diff --git a/test/shaping/data/aots/tests/gsub_chaining3_simple.tests b/test/shaping/data/aots/tests/gsub_chaining3_simple.tests new file mode 100644 index 000000000..eb2416787 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining3_simple.tests @@ -0,0 +1,11 @@ +../fonts/gsub_chaining3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|62|23|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|20|21|62|23|24|25|26|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019,U+0000,U+0000:[0|20|21|22|23|24|25|0|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018,U+0019:[0|20|21|22|23|24|25] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0018:[0|20|21|22|23|24] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0000,U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[0|0|21|22|23|24|25|26|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0015,U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[21|22|23|24|25|26|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0016,U+0017,U+0018,U+0019,U+001A,U+0000:[22|23|24|25|26|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0018,U+0019,U+001A,U+0000:[0|20|21|22|0|24|25|26|0] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017:[0|20|21|22|23] +../fonts/gsub_chaining3_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016:[0|20|21|22] diff --git a/test/shaping/data/aots/tests/gsub_chaining3_successive.tests b/test/shaping/data/aots/tests/gsub_chaining3_successive.tests new file mode 100644 index 000000000..edcade193 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_chaining3_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_chaining3_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0019,U+0014,U+0015,U+0016,U+0017,U+0018,U+0000:[0|25|20|61|63|24|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_boundary.tests b/test/shaping/data/aots/tests/gsub_context1_boundary.tests new file mode 100644 index 000000000..9b1189266 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context1_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20|20|20|20|20|0] +../fonts/gsub_context1_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|60|60|60|60|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_expansion.tests b/test/shaping/data/aots/tests/gsub_context1_expansion.tests new file mode 100644 index 000000000..92714c5a8 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_expansion.tests @@ -0,0 +1 @@ +../fonts/gsub_context1_expansion_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20|61|62|63|22|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_lookupflag.tests b/test/shaping/data/aots/tests/gsub_context1_lookupflag.tests new file mode 100644 index 000000000..c5d976058 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_lookupflag.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context1_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|60|90|61|91|92|62|0] +../fonts/gsub_context1_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20|90|61|91|92|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_multiple_subrules.tests b/test/shaping/data/aots/tests/gsub_context1_multiple_subrules.tests new file mode 100644 index 000000000..febc41906 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context1_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|60|21|22|0|20|61|0] +../fonts/gsub_context1_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20|61|22|0|20|61|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_next_glyph.tests b/test/shaping/data/aots/tests/gsub_context1_next_glyph.tests new file mode 100644 index 000000000..12414c342 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_context1_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|20|60|20|20|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_simple.tests b/test/shaping/data/aots/tests/gsub_context1_simple.tests new file mode 100644 index 000000000..44252ecc4 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_simple.tests @@ -0,0 +1,3 @@ +../fonts/gsub_context1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000:[0|60|61|62|0] +../fonts/gsub_context1_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000:[0|20|0|20|21|0] +../fonts/gsub_context1_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20|60|20|20|20|0] diff --git a/test/shaping/data/aots/tests/gsub_context1_successive.tests b/test/shaping/data/aots/tests/gsub_context1_successive.tests new file mode 100644 index 000000000..e68d6b29f --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context1_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_context1_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|63|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_boundary.tests b/test/shaping/data/aots/tests/gsub_context2_boundary.tests new file mode 100644 index 000000000..2054277eb --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context2_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20|20|20|20|20|0] +../fonts/gsub_context2_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|60|60|60|60|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_classes.tests b/test/shaping/data/aots/tests/gsub_context2_classes.tests new file mode 100644 index 000000000..2e44007e7 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_classes.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context2_classes_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+001A,U+001C,U+0018,U+0000,U+0015,U+001B,U+001A,U+0018,U+0000,U+0016,U+001B,U+001A,U+0018:[0|20|66|28|24|0|21|67|26|24|0|22|27|26|24] +../fonts/gsub_context2_classes_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0016,U+001B,U+001A,U+0018,U+0000,U+0018,U+0018,U+001D,U+0016,U+0000,U+0016,U+001B,U+001A,U+0018:[0|22|67|26|24|0|24|24|69|22|0|22|67|26|24] diff --git a/test/shaping/data/aots/tests/gsub_context2_expansion.tests b/test/shaping/data/aots/tests/gsub_context2_expansion.tests new file mode 100644 index 000000000..af0ce71c0 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_expansion.tests @@ -0,0 +1 @@ +../fonts/gsub_context2_expansion_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000:[0|20|61|62|63|22|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_lookupflag.tests b/test/shaping/data/aots/tests/gsub_context2_lookupflag.tests new file mode 100644 index 000000000..ac419498c --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_lookupflag.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context2_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|60|90|61|91|92|62|0] +../fonts/gsub_context2_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20|90|61|91|92|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_multiple_subrules.tests b/test/shaping/data/aots/tests/gsub_context2_multiple_subrules.tests new file mode 100644 index 000000000..75225cd2a --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_multiple_subrules.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context2_multiple_subrules_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|60|21|22|0|20|61|0] +../fonts/gsub_context2_multiple_subrules_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000,U+0014,U+0015,U+0000:[0|20|61|22|0|20|61|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_next_glyph.tests b/test/shaping/data/aots/tests/gsub_context2_next_glyph.tests new file mode 100644 index 000000000..020d05fc6 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_context2_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|20|60|20|20|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_simple.tests b/test/shaping/data/aots/tests/gsub_context2_simple.tests new file mode 100644 index 000000000..5863605a4 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_simple.tests @@ -0,0 +1,3 @@ +../fonts/gsub_context2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000:[0|60|61|62|0] +../fonts/gsub_context2_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000:[0|20|0|20|21|0] +../fonts/gsub_context2_simple_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20|60|20|20|20|0] diff --git a/test/shaping/data/aots/tests/gsub_context2_successive.tests b/test/shaping/data/aots/tests/gsub_context2_successive.tests new file mode 100644 index 000000000..9aeeac71e --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context2_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_context2_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|63|0] diff --git a/test/shaping/data/aots/tests/gsub_context3_boundary.tests b/test/shaping/data/aots/tests/gsub_context3_boundary.tests new file mode 100644 index 000000000..8b40afdc2 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context3_boundary.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context3_boundary_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|20|20|20|20|20|0] +../fonts/gsub_context3_boundary_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|60|60|60|60|0] diff --git a/test/shaping/data/aots/tests/gsub_context3_lookupflag.tests b/test/shaping/data/aots/tests/gsub_context3_lookupflag.tests new file mode 100644 index 000000000..03c0647e9 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context3_lookupflag.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context3_lookupflag_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|60|90|61|91|92|62|0] +../fonts/gsub_context3_lookupflag_f2.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+005A,U+0015,U+005B,U+005C,U+0016,U+0000:[0|20|90|61|91|92|0] diff --git a/test/shaping/data/aots/tests/gsub_context3_next_glyph.tests b/test/shaping/data/aots/tests/gsub_context3_next_glyph.tests new file mode 100644 index 000000000..b28381b95 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context3_next_glyph.tests @@ -0,0 +1 @@ +../fonts/gsub_context3_next_glyph_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0014,U+0014,U+0014,U+0014,U+0000:[0|60|20|60|20|20|0] diff --git a/test/shaping/data/aots/tests/gsub_context3_simple.tests b/test/shaping/data/aots/tests/gsub_context3_simple.tests new file mode 100644 index 000000000..ec264eaa0 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context3_simple.tests @@ -0,0 +1,2 @@ +../fonts/gsub_context3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0000:[0|60|61|62|0] +../fonts/gsub_context3_simple_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0000,U+0014,U+0015,U+0000,U+0014,U+0015,U+0016,U+0000:[0|20|0|20|21|0|60|61|62|0] diff --git a/test/shaping/data/aots/tests/gsub_context3_successive.tests b/test/shaping/data/aots/tests/gsub_context3_successive.tests new file mode 100644 index 000000000..b987a61f2 --- /dev/null +++ b/test/shaping/data/aots/tests/gsub_context3_successive.tests @@ -0,0 +1 @@ +../fonts/gsub_context3_successive_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0000,U+0014,U+0015,U+0016,U+0017,U+0000:[0|20|61|63|0] diff --git a/test/shaping/data/aots/tests/lookupflag_ignore_attach.tests b/test/shaping/data/aots/tests/lookupflag_ignore_attach.tests new file mode 100644 index 000000000..6534fc09f --- /dev/null +++ b/test/shaping/data/aots/tests/lookupflag_ignore_attach.tests @@ -0,0 +1,5 @@ +../fonts/lookupflag_ignore_attach_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+000A,U+000B,U+000D,U+001A,U+000A:[10|15|10] +../fonts/lookupflag_ignore_attach_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+000A,U+000B,U+0015,U+000D,U+0016,U+0017,U+001D,U+001A,U+000A:[10|15|21|22|23|29|10] +../fonts/lookupflag_ignore_attach_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+000A,U+000B,U+0015,U+000D,U+0016,U+001B,U+001A,U+000A:[10|11|21|13|22|27|26|10] +../fonts/lookupflag_ignore_attach_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+000A,U+000B,U+001B,U+000D,U+0016,U+0017,U+001A,U+000A:[10|11|27|13|22|23|26|10] +../fonts/lookupflag_ignore_attach_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+000A,U+000B,U+001B,U+000D,U+000E,U+0017,U+001A,U+000A:[10|11|27|13|14|23|26|10] diff --git a/test/shaping/data/aots/tests/lookupflag_ignore_base.tests b/test/shaping/data/aots/tests/lookupflag_ignore_base.tests new file mode 100644 index 000000000..5f0bfdbde --- /dev/null +++ b/test/shaping/data/aots/tests/lookupflag_ignore_base.tests @@ -0,0 +1,2 @@ +../fonts/lookupflag_ignore_base_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0013,U+0014,U+0015:[17|23|21] +../fonts/lookupflag_ignore_base_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+0018,U+0018,U+0013,U+0019,U+0014,U+0015:[17|23|24|24|25|21] diff --git a/test/shaping/data/aots/tests/lookupflag_ignore_combination.tests b/test/shaping/data/aots/tests/lookupflag_ignore_combination.tests new file mode 100644 index 000000000..d34f16a14 --- /dev/null +++ b/test/shaping/data/aots/tests/lookupflag_ignore_combination.tests @@ -0,0 +1,3 @@ +../fonts/lookupflag_ignore_combination_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+0013,U+0014,U+0015:[17|23|26|21] +../fonts/lookupflag_ignore_combination_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+0013,U+0018,U+001E,U+001F,U+0014,U+0015:[17|23|26|24|30|31|21] +../fonts/lookupflag_ignore_combination_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+0013,U+0018,U+001E,U+0020,U+0014,U+0015:[17|18|26|19|24|30|32|20|21] diff --git a/test/shaping/data/aots/tests/lookupflag_ignore_ligatures.tests b/test/shaping/data/aots/tests/lookupflag_ignore_ligatures.tests new file mode 100644 index 000000000..feb31d809 --- /dev/null +++ b/test/shaping/data/aots/tests/lookupflag_ignore_ligatures.tests @@ -0,0 +1,3 @@ +../fonts/lookupflag_ignore_ligatures_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+001B,U+0013,U+001B,U+0014,U+0015:[17|23|26|27|27|21] +../fonts/lookupflag_ignore_ligatures_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+0018,U+0013,U+001B,U+0014,U+0015:[17|18|26|24|19|27|20|21] +../fonts/lookupflag_ignore_ligatures_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001A,U+002A,U+0013,U+001B,U+0014,U+0015:[17|18|26|42|19|27|20|21] diff --git a/test/shaping/data/aots/tests/lookupflag_ignore_marks.tests b/test/shaping/data/aots/tests/lookupflag_ignore_marks.tests new file mode 100644 index 000000000..962659924 --- /dev/null +++ b/test/shaping/data/aots/tests/lookupflag_ignore_marks.tests @@ -0,0 +1 @@ +../fonts/lookupflag_ignore_marks_f1.otf:--features="test" --no-clusters --no-glyph-names --no-positions:U+0011,U+0012,U+001C,U+001D,U+0013,U+001D,U+0014,U+0015:[17|23|28|29|29|21] diff --git a/test/shaping/run-tests.py b/test/shaping/run-tests.py index 17e203c03..c22d45c46 100755 --- a/test/shaping/run-tests.py +++ b/test/shaping/run-tests.py @@ -27,6 +27,7 @@ process = subprocess.Popen ([hb_shape, '--batch'], stdout=subprocess.PIPE, stderr=sys.stdout) +ran_once = False fails = 0 skips = 0 @@ -94,6 +95,8 @@ for filename in args: fontfile] + extra_options + ["--unicodes", unicodes] + (options.split (' ') if options else [])) + ran_once = True + if glyphs1 != glyphs2 and glyphs_expected != '*': print ("FT funcs: " + glyphs1) # file=sys.stderr print ("OT funcs: " + glyphs2) # file=sys.stderr @@ -115,5 +118,9 @@ if fails != 0 or skips != 0: sys.exit (1) sys.exit (77) else: - if not reference: + if not ran_once: + if not reference: + print ("No tests ran.") + sys.exit (77) + elif not reference: print ("All tests passed.")