summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2018-01-10 03:22:08 +0100
committerBehdad Esfahbod <behdad@behdad.org>2018-01-10 03:22:08 +0100
commit46e4ed552fb1205eb6cbc16450bb231998fc7347 (patch)
treef202405fdfe28d78c77b0cab248cdf27aa8a6eef
parent2b3f62fc4de8f10c2168f212b1368478312e6dec (diff)
[test/text-rendering-tests] Hook up font variations
Six more passing. Twelve failing now.
-rwxr-xr-xtest/shaping/data/text-rendering-tests/extract-tests.py6
-rw-r--r--test/shaping/data/text-rendering-tests/tests/AVAR-1.tests34
-rw-r--r--test/shaping/data/text-rendering-tests/tests/CFF2-1.tests18
-rw-r--r--test/shaping/data/text-rendering-tests/tests/CVAR-1.tests6
-rw-r--r--test/shaping/data/text-rendering-tests/tests/CVAR-2.tests6
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GPOS-5.tests10
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-1.tests18
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-2.tests18
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-3.tests18
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-4.tests22
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-5.tests22
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-6.tests22
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-7.tests14
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-8.tests12
-rw-r--r--test/shaping/data/text-rendering-tests/tests/GVAR-9.tests20
-rw-r--r--test/shaping/data/text-rendering-tests/tests/HVAR-1.tests12
-rw-r--r--test/shaping/data/text-rendering-tests/tests/HVAR-2.tests12
17 files changed, 137 insertions, 133 deletions
diff --git a/test/shaping/data/text-rendering-tests/extract-tests.py b/test/shaping/data/text-rendering-tests/extract-tests.py
index e8717781..06978b13 100755
--- a/test/shaping/data/text-rendering-tests/extract-tests.py
+++ b/test/shaping/data/text-rendering-tests/extract-tests.py
@@ -32,6 +32,7 @@ for elt in html.findall(".//*[@class='expected'][@ft:id]", namespaces):
name = elt.get(ns('ft:id'))
text = elt.get(ns('ft:render'))
font = elt.get(ns('ft:font'))
+ vars = elt.get(ns('ft:var'), '').replace(':', '=').replace(';', ',')
glyphs = []
for use in elt.findall(".//use"):
x = int(use.get('x'))
@@ -40,6 +41,9 @@ for elt in html.findall(".//*[@class='expected'][@ft:id]", namespaces):
assert href[0] == '#'
glyphname = '.'.join(href[1:].split('/')[1].split('.')[1:])
glyphs.append((glyphname, x, y))
- print("../fonts/%s:--font-size=1000 --ned --font-funcs=ft:%s:%s" % (font, unistr(text), glyphstr(glyphs)))
+ opts = '--font-size=1000 --ned --font-funcs=ft'
+ if vars:
+ opts = opts + ' --variations=%s' % vars
+ print ("../fonts/%s:%s:%s:%s" % (font, opts, unistr(text), glyphstr(glyphs)))
sys.exit(0 if found else 1)
diff --git a/test/shaping/data/text-rendering-tests/tests/AVAR-1.tests b/test/shaping/data/text-rendering-tests/tests/AVAR-1.tests
index 3da6dc54..63172d6a 100644
--- a/test/shaping/data/text-rendering-tests/tests/AVAR-1.tests
+++ b/test/shaping/data/text-rendering-tests/tests/AVAR-1.tests
@@ -1,17 +1,17 @@
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
-../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=100:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=150:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=200:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=250:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=300:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=350:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=400:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=450:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=500:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=550:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=600:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=650:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=700:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=750:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=800:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=850:U+2A01:[gid1]
+../fonts/TestAVAR.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=900:U+2A01:[gid1]
diff --git a/test/shaping/data/text-rendering-tests/tests/CFF2-1.tests b/test/shaping/data/text-rendering-tests/tests/CFF2-1.tests
index d2c93961..51da1ec9 100644
--- a/test/shaping/data/text-rendering-tests/tests/CFF2-1.tests
+++ b/test/shaping/data/text-rendering-tests/tests/CFF2-1.tests
@@ -1,9 +1,9 @@
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar.nostroke]
-../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft:U+0024:[dollar.nostroke]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=100:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=200:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=500:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=700:U+0024:[dollar]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=800:U+0024:[dollar.nostroke]
+../fonts/AdobeVFPrototype-Subset.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=900:U+0024:[dollar.nostroke]
diff --git a/test/shaping/data/text-rendering-tests/tests/CVAR-1.tests b/test/shaping/data/text-rendering-tests/tests/CVAR-1.tests
index 70cb738d..98f92757 100644
--- a/test/shaping/data/text-rendering-tests/tests/CVAR-1.tests
+++ b/test/shaping/data/text-rendering-tests/tests/CVAR-1.tests
@@ -1,3 +1,3 @@
-../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@595,0|uni006E@1126,0]
-../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@635,0|uni006E@1212,0]
-../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@691,0|uni006E@1331,0]
+../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=28,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@595,0|uni006E@1126,0]
+../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=94,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@635,0|uni006E@1212,0]
+../fonts/TestCVARGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=194,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@691,0|uni006E@1331,0]
diff --git a/test/shaping/data/text-rendering-tests/tests/CVAR-2.tests b/test/shaping/data/text-rendering-tests/tests/CVAR-2.tests
index 51de9200..0db163a6 100644
--- a/test/shaping/data/text-rendering-tests/tests/CVAR-2.tests
+++ b/test/shaping/data/text-rendering-tests/tests/CVAR-2.tests
@@ -1,3 +1,3 @@
-../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@595,0|uni006E@1126,0]
-../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@635,0|uni006E@1212,0]
-../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+0068,U+006F,U+006E:[uni0068|uni006F@691,0|uni006E@1331,0]
+../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=28,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@595,0|uni006E@1126,0]
+../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=94,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@635,0|uni006E@1212,0]
+../fonts/TestCVARGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=194,wdth=100,opsz=72:U+0068,U+006F,U+006E:[uni0068|uni006F@691,0|uni006E@1331,0]
diff --git a/test/shaping/data/text-rendering-tests/tests/GPOS-5.tests b/test/shaping/data/text-rendering-tests/tests/GPOS-5.tests
index 00bfd589..f0a73571 100644
--- a/test/shaping/data/text-rendering-tests/tests/GPOS-5.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GPOS-5.tests
@@ -1,5 +1,5 @@
-../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+0634,U+0652:[uni0652@663,144|uni0634]
-../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+0634,U+0652:[uni0652@680,165|uni0634]
-../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+0634,U+0652:[uni0652@730,246|uni0634]
-../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+0634,U+0652:[uni0652@750,282|uni0634]
-../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+0634,U+0652:[uni0652@784,351|uni0634]
+../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=100:U+0634,U+0652:[uni0652@663,144|uni0634]
+../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+0634,U+0652:[uni0652@680,165|uni0634]
+../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+0634,U+0652:[uni0652@730,246|uni0634]
+../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=700:U+0634,U+0652:[uni0652@750,282|uni0634]
+../fonts/TestGPOSFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=900:U+0634,U+0652:[uni0652@784,351|uni0634]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-1.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-1.tests
index d70f2293..620fcfc7 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-1.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-1.tests
@@ -1,9 +1,9 @@
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=350:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=450:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=500:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=550:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=650:U+5F4C:[gid2]
+../fonts/TestGVAROne.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=700:U+5F4C:[gid2]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-2.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-2.tests
index fe097776..3b2932c9 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-2.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-2.tests
@@ -1,9 +1,9 @@
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=350:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=450:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=500:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=550:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=650:U+5F4C:[gid2]
+../fonts/TestGVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=700:U+5F4C:[gid2]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-3.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-3.tests
index 700c7351..05d07438 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-3.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-3.tests
@@ -1,9 +1,9 @@
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
-../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=350:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=450:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=500:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=550:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=650:U+5F4C:[gid2]
+../fonts/TestGVARThree.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=700:U+5F4C:[gid2]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-4.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-4.tests
index f51a95c8..700a287b 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-4.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-4.tests
@@ -1,11 +1,11 @@
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-1.0,T1=0.0:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.8,T1=0.1:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.6,T1=0.2:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.4,T1=0.3:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.2,T1=0.4:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.0,T1=0.5:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.2,T1=0.6:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.4,T1=0.7:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.6,T1=0.8:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.8,T1=0.9:U+1F98E:[gid5]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=1.0,T1=1.0:U+1F98E:[gid5]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-5.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-5.tests
index 7328e73a..27670f12 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-5.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-5.tests
@@ -1,11 +1,11 @@
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-1.0:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.8:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.6:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.4:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=-0.2:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.0:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.2:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.4:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.6:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=0.8:U+1F31D:[gid15]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=M1=1.0:U+1F31D:[gid15]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-6.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-6.tests
index c632d465..61e060ad 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-6.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-6.tests
@@ -1,11 +1,11 @@
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
-../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.0:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.1:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.2:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.3:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.4:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.5:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.6:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.7:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.8:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=0.9:U+1F422:[gid12]
+../fonts/Zycon.ttf:--font-size=1000 --ned --font-funcs=ft --variations=T1=1.0:U+1F422:[gid12]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-7.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-7.tests
index bc06d56b..1280d714 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-7.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-7.tests
@@ -1,7 +1,7 @@
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@706,0|uni004F@1072,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1074,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1075,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1076,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1077,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1078,0]
-../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft:U+004F,U+0049,U+004F:[uni004F|uni0049@706,0|uni004F@1079,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=150:U+004F,U+0049,U+004F:[uni004F|uni0049@706,0|uni004F@1072,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=200:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1074,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=250:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1075,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=300:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1076,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=350:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1077,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+004F,U+0049,U+004F:[uni004F|uni0049@707,0|uni004F@1078,0]
+../fonts/TestGVARFour.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=450:U+004F,U+0049,U+004F:[uni004F|uni0049@706,0|uni004F@1079,0]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-8.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-8.tests
index e5bd2572..209f3253 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-8.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-8.tests
@@ -1,6 +1,6 @@
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
-../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=0.0:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=-0.2:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=-0.4:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=-0.6:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=-0.8:U+0048:[H]
+../fonts/TestGVAREight.ttf:--font-size=1000 --ned --font-funcs=ft --variations=HV=-1.0:U+0048:[H]
diff --git a/test/shaping/data/text-rendering-tests/tests/GVAR-9.tests b/test/shaping/data/text-rendering-tests/tests/GVAR-9.tests
index e4f2d75f..ababf5d6 100644
--- a/test/shaping/data/text-rendering-tests/tests/GVAR-9.tests
+++ b/test/shaping/data/text-rendering-tests/tests/GVAR-9.tests
@@ -1,10 +1,10 @@
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
-../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=-1.0:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=-0.5:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.0:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.5:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.6:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.7:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.8:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.9:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=0.944444:U+0041:[A]
+../fonts/TestGVARNine.ttf:--font-size=1000 --ned --font-funcs=ft --variations=TEST=1.0:U+0041:[A]
diff --git a/test/shaping/data/text-rendering-tests/tests/HVAR-1.tests b/test/shaping/data/text-rendering-tests/tests/HVAR-1.tests
index d57e9a3a..d5dea06d 100644
--- a/test/shaping/data/text-rendering-tests/tests/HVAR-1.tests
+++ b/test/shaping/data/text-rendering-tests/tests/HVAR-1.tests
@@ -1,6 +1,6 @@
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@520,0|C@1094,0]
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@533,0|C@1115,0]
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@546,0|C@1135,0]
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@558,0|C@1155,0]
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@571,0|C@1175,0]
-../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042,U+0043:[A|B@584,0|C@1196,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=0:U+0041,U+0042,U+0043:[A|B@520,0|C@1094,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=200:U+0041,U+0042,U+0043:[A|B@533,0|C@1115,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+0041,U+0042,U+0043:[A|B@546,0|C@1135,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+0041,U+0042,U+0043:[A|B@558,0|C@1155,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=800:U+0041,U+0042,U+0043:[A|B@571,0|C@1175,0]
+../fonts/TestHVAROne.otf:--font-size=1000 --ned --font-funcs=ft --variations=wght=1000:U+0041,U+0042,U+0043:[A|B@584,0|C@1196,0]
diff --git a/test/shaping/data/text-rendering-tests/tests/HVAR-2.tests b/test/shaping/data/text-rendering-tests/tests/HVAR-2.tests
index 88d90b52..23113b05 100644
--- a/test/shaping/data/text-rendering-tests/tests/HVAR-2.tests
+++ b/test/shaping/data/text-rendering-tests/tests/HVAR-2.tests
@@ -1,6 +1,6 @@
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@450,0]
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@515,0]
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@584,0]
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@673,0]
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@761,0]
-../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft:U+0041,U+0042:[uni0041|uni0042@850,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=0:U+0041,U+0042:[uni0041|uni0042@450,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=200:U+0041,U+0042:[uni0041|uni0042@515,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=400:U+0041,U+0042:[uni0041|uni0042@584,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=600:U+0041,U+0042:[uni0041|uni0042@673,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=800:U+0041,U+0042:[uni0041|uni0042@761,0]
+../fonts/TestHVARTwo.ttf:--font-size=1000 --ned --font-funcs=ft --variations=wght=1000:U+0041,U+0042:[uni0041|uni0042@850,0]