1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
|
!= download-1.html download-1-notref.html
== download-2.html download-2-ref.html
!= download-2.html about:blank
random-if(winWidget||gtkWidget) == download-2-big.html download-2-big-otf.html # bug 470713
!= download-2-big-otf.html about:blank
asserts-if(Android&&!asyncPan,1-8) != download-3-notref.html download-3.html # bug 1019192
asserts-if(Android,0-8) == download-3-ref.html download-3.html # same bugs as above
asserts-if(Android,0-8) == fallback-to-system-1.html fallback-to-system-1-ref.html # just delayed assertions from above tests
== name-override-simple-1.html name-override-simple-1-ref.html
!= name-override-simple-1.html download-1-notref.html
fails == name-override-1.html name-override-1-ref.html
== multiple-descriptor-1.html multiple-descriptor-1-ref.html
!= multiple-descriptor-1.html multiple-descriptor-1-notref.html
== src-list-1.html src-list-1-ref.html
== src-list-2.html src-list-2-ref.html
random-if(winWidget||gtkWidget) == src-list-2-big-otf.html src-list-2-big-ref.html # bug 470713
== src-list-format-1.html src-list-format-1-ref.html
== src-list-format-2.html src-list-format-2-ref.html
== src-list-format-4.html src-list-format-1-ref.html
== src-list-format-5.html src-list-format-2-ref.html
== src-list-format-7.html src-list-format-3-ref.html
fails-if(Android) == src-list-local-full.html src-list-local-full-ref.html
fails-if(Android) == src-list-local-full-quotes.html src-list-local-full-ref.html
== src-list-local-fallback.html src-list-local-fallback-ref.html
# data url tests (these don't need the HTTP server)
== src-list-data-1.html src-list-data-ref.html
== src-list-data-2.html src-list-data-ref.html
== src-list-data-3.html src-list-data-ref.html
== src-list-data-4.html src-list-data-ref.html
# load with data url vs. font data load
== src-list-actual-font-ref.html src-list-data-1.html
# localized full fontnames should *not* match, only English ones (need locale-invariant key)
skip == src-list-local-localized.html src-list-local-localized-ref.html # 486787, 486497
# postscript name lookup
# fontconfig only supports postscript name lookup from 2.10.92, Android not supported
fails-if(Android) random-if(gtkWidget) == src-list-local-ps.html src-list-local-full-ref.html
# Mac-specific test of 100 weight faces
random-if(!cocoaWidget) == helveticaneue-ultra.html helveticaneue-ultra-ref.html
== order-1.html order-1-ref.html
== order-2.html order-2-ref.html
== order-3.html order-3-ref.html
== multiple-in-family-1.html multiple-in-family-1-ref.html
== multiple-in-family-1b.html multiple-in-family-1-ref.html
!= multiple-in-family-1.html multiple-in-family-1-notref.html
== prop-order-over-rule-order-1a.html prop-order-over-rule-order-2a.html
== prop-order-over-rule-order-1b.html prop-order-over-rule-order-2b.html
!= prop-order-over-rule-order-1a.html prop-order-over-rule-order-1b.html
== cross-iframe-1.html cross-iframe-1-ref.html
# unicode-range
== unicoderange-1.html unicoderange-1-ref.html
== unicoderange-2.html unicoderange-2-ref.html
== unicoderange-3.html unicoderange-3-ref.html
== unicoderange-4.html unicoderange-4-ref.html
# Dynamic changes
# we need to skip these because of the bug that's causing order-2.html to fail
== enable-sheet-1.html enable-sheet-1-ref.html
skip == enable-sheet-2.html multiple-in-family-1-ref.html
skip == enable-sheet-3.html multiple-in-family-1-ref.html
== enable-sheet-4.html enable-sheet-4-ref.html
== enable-sheet-5.html enable-sheet-4-ref.html
skip == enable-sheet-6.html multiple-in-family-1-ref.html
skip == enable-sheet-7.html multiple-in-family-1-ref.html
== disable-sheet-1.html disable-sheet-1-ref.html
# We're missing disable-sheet-{2,3,6,7} (analogs to
# enable-sheet{2,3,6,7}) because I don't know how to detect test
# completion for those cases.
== disable-sheet-4.html disable-sheet-4-ref.html
== disable-sheet-5.html disable-sheet-4-ref.html
== sheet-set-base-1.html sheet-set-base-1-ref.html
== sheet-set-switch-1.html sheet-set-switch-1-ref.html
== insert-rule-1a.html insert-rule-1-ref.html
== insert-rule-1b.html insert-rule-1-ref.html
== delete-rule-1.html delete-rule-1-ref.html
== media-query-add-1.html media-query-add-1-ref.html
== media-query-remove-1.html media-query-remove-1-ref.html
!= media-query-add-1-ref.html media-query-remove-1-ref.html
== ahem-metrics-1.html ahem-metrics-1-ref.html
== ex-unit-1.html ex-unit-1-ref.html
== ex-unit-1-dynamic.html ex-unit-1-ref.html
== local-1.html local-1-ref.html
== local-styled-1.html local-styled-1-ref.html
== synthetic-weight-style.html synthetic-weight-style-ref.html
== synthetic-variations.html synthetic-variations-ref.html
# Leak test
load 486974-1.html
# compare fonts with and without bad head checksum
== load-badchecksum.html load-badchecksum-ref.html
# @font-face names take precedence over names of platform fonts (bug 494360)
== name-collision.html name-collision-ref.html
== name-collision-bad-url.html name-collision-bad-url-ref.html
== name-collision-with-prefs-font.html name-collision-with-prefs-font-ref.html # bug 668758
== load-badfullname.html load-badfullname-ref.html
# 507960-1-* : a collection of tests using DeLarge from openfontlibrary.org
# check that the original DeLarge face (ttf) loads; if this fails,
# none of the following tests are meaningful
!= 507960-1-nofont.html 507960-1-ref.html
# check that the WOFF version loads, with and without a format hint
== 507960-1-woff.html 507960-1-ref.html
== 507960-1-woff-hint.html 507960-1-ref.html
# try damaged fonts that should still load (bad checksums)
== 507960-1-bad-checksums-ttf.html 507960-1-ref.html
== 507960-1-bad-checksums-woff.html 507960-1-ref.html
# try versions that should NOT load (bad offsets, signatures, hint)
!= 507960-1-bad-sfnt-version-ttf.html 507960-1-ref.html
!= 507960-1-bad-sfnt-version-woff.html 507960-1-ref.html
!= 507960-1-bad-woff-sig.html 507960-1-ref.html
!= 507960-1-bad-offset-woff.html 507960-1-ref.html
!= 507960-1-woff-bad-hint.html 507960-1-ref.html
# Tests for bug 523717
== underline-offset-change-1.html underline-offset-change-1-ref.html
== underline-offset-change-2.html underline-offset-change-2-ref.html
!= underline-offset-change-1-ref.html underline-offset-change-2-ref.html
!= 534352-1-extra-cmap-sentinel.html 534352-1-extra-cmap-sentinel-ref.html
== bug533251.html bug533251-ref.html
# Bug 875287
== font-familiy-whitespace-1.html font-familiy-whitespace-1-ref.html
!= font-familiy-whitespace-1.html font-familiy-whitespace-1-notref.html
skip-if(Android) == ivs-1.html ivs-1-ref.html # Android bug 1250229
skip-if(Android) == cjkcisvs-1.html cjkcisvs-1-ref.html # Android bug 1250229, Bug 1392106
== missing-names.html missing-names-ref.html
# Tests for bug 670900 - handling of 404 (not found) error in @font-face URL
# (using Chunkfive font data returned from a .sjs file)
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) == font-error-404-1.html font-error-404-1-ref.html # HTTP status 404, don't load
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) == font-error-404-2.html font-error-404-2-ref.html # HTTP status 200, load # random on win7, see bug 1786796 comment 9
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) != font-error-404-1.html font-error-404-2.html # sanity-check that the results differ
# Font load redirection
HTTP(..) == font-redirect.html order-1-ref.html
# Tests for potential regressions from bug 879963
== dynamic-duplicate-rule-1a.html dynamic-duplicate-rule-1-ref.html
== dynamic-duplicate-rule-1b.html dynamic-duplicate-rule-1-ref.html
== dynamic-duplicate-rule-1c.html dynamic-duplicate-rule-1-ref.html
# Test for COLR and CPAL support
fuzzy-if(OSX,198-198,172-172) == color-1a.html color-1-ref.html
!= color-1a.html color-1-notref.html
fuzzy-if(OSX,198-198,172-172) == color-1b.html color-1-ref.html
== color-2a.html color-2-ref.html
!= color-2a.html color-2-notref.html
# COLRv1 (enhanced color font) format
# Comparing COLRv1 glyph rendering to CSS backgrounds we can expect "fuzz" in lots of gradients
# and along antialiased diagonals, etc., but the differences are barely perceptible to the eye.
# These are skipped on Win7 because lack of font-variation support means the COLR table
# in the test font CAhem.ttf will be dropped.
defaults pref(gfx.font_rendering.colr_v1.enabled,true)
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-200) == colrv1-01.html#A colrv1-01-ref.html#A
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-32,0-200) == colrv1-01.html#B colrv1-01-ref.html#B
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-8,0-10100) == colrv1-01.html#C colrv1-01-ref.html#C
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-600) == colrv1-01.html#D colrv1-01-ref.html#D
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-398) == colrv1-01.html#E colrv1-01-ref.html#E
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-398) == colrv1-01.html#F colrv1-01-ref.html#F
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-596) == colrv1-01.html#G colrv1-01-ref.html#G
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-596) == colrv1-01.html#H colrv1-01-ref.html#H
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-10100) == colrv1-01.html#I colrv1-01-ref.html#I
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-6806) == colrv1-01.html#J colrv1-01-ref.html#J
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-1,0-748) == colrv1-01.html#K colrv1-01-ref.html#K
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-67,0-9494) == colrv1-01.html#L colrv1-01-ref.html#L
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-3578) == colrv1-01.html#M colrv1-01-ref.html#M
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-64,0-6116) == colrv1-01.html#N colrv1-01-ref.html#N
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-80,0-5491) == colrv1-01.html#O colrv1-01-ref.html#O
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-112,0-300) == colrv1-01.html#P colrv1-01-ref.html#P
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-138,0-484) == colrv1-01.html#Q colrv1-01-ref.html#Q
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-214,0-461) == colrv1-01.html#R colrv1-01-ref.html#R
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-255,0-373) == colrv1-01.html#S colrv1-01-ref.html#S
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-237,0-477) == colrv1-01.html#T colrv1-01-ref.html#T
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-1,0-1) == colrv1-03.html colrv1-03-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-1,0-1800) fuzzy-if(Android,0-64,0-37100) == colrv1-04.html colrv1-04-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy-if(Android,8-8,1484-1484) == colrv1-05.html colrv1-05-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-1,0-291) == colrv1-06.html colrv1-06-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) fuzzy(0-128,0-264) == colrv1-07.html colrv1-07-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == colrv1-08.html colrv1-08-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) == colrv1-09.html colrv1-09-ref.html
defaults
# Check that the tech(color-COLRv1) function responds to whether COLRv1 support is enabled.
defaults pref(layout.css.font-tech.enabled,true)
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) pref(gfx.font_rendering.colr_v1.enabled,true) == colrv1-02.html colrv1-02a-ref.html
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) pref(gfx.font_rendering.colr_v1.enabled,false) == colrv1-02.html colrv1-02b-ref.html
defaults
== woff2-1.html woff2-1-ref.html
== woff2-totalsfntsize.html woff2-totalsfntsize-ref.html
# sanity tests for reflow behavior with downloadable fonts
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) == reflow-sanity-1.html reflow-sanity-1-ref.html # random on win7, see bug 1786796 comment 9
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) == reflow-sanity-1-data.html reflow-sanity-1-ref.html
random-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) HTTP(..) == reflow-sanity-1.html reflow-sanity-1-data.html
HTTP(..) == reflow-sanity-delay-1a.html reflow-sanity-1-ref.html
HTTP(..) == reflow-sanity-delay-1b.html reflow-sanity-1-ref.html
HTTP(..) == reflow-sanity-delay-1c.html reflow-sanity-1-ref.html
HTTP(..) == reflow-sanity-delay-1-metrics.html reflow-sanity-1-ref.html
HTTP(..) == bug-1481905-cancel-load.html bug-1481905-cancel-load-ref.html
# font-display, with the timeouts extended so that slow (debug) builds have a better chance to keep up
pref(gfx.downloadable_fonts.fallback_delay,10000) pref(gfx.downloadable_fonts.fallback_delay_short,1000) HTTP(..) == font-display-1.html font-display-1-ref.html # normal font load (~500ms), bug 1392106
HTTP(..) == font-display-2.html font-display-2-ref.html # font load takes 4500ms
# Testing hack for Meiryo
== meiryo-en.html meiryo-ja.html
== meiryo-en-bold.html meiryo-ja-bold.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),255-255,14462-14462) == meiryo-en-italic.html meiryo-ja-italic.html # Bug 1392106
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),255-255,14462-14462) == meiryo-en-oblique.html meiryo-ja-oblique.html # Bug 1392106
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),255-255,16299-16299) == meiryo-en-bolditalic.html meiryo-ja-bolditalic.html # Bug 1392106
!= meiryo-en-bold.html meiryo-en.html
!= meiryo-en-italic.html meiryo-en.html
!= meiryo-en-oblique.html meiryo-en.html
!= meiryo-en-bolditalic.html meiryo-en.html
!= meiryo-en-bolditalic.html meiryo-en-bold.html
# test support of variation-font format hints
defaults pref(layout.css.font-variations.enabled,false)
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1a.html variation-format-hint-1A-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1b.html variation-format-hint-1A-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1c.html variation-format-hint-1A-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1d.html variation-format-hint-1A-ref.html
defaults pref(layout.css.font-variations.enabled,true)
# Currently Windows 7 and macOS all fail on
# treeherder because our OS versions are too old to support variation fonts
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1a.html variation-format-hint-1B-ttf-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1b.html variation-format-hint-1B-otf-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1c.html variation-format-hint-1B-woff-ref.html
fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),0-255,0-2777) == variation-format-hint-1d.html variation-format-hint-1B-woff2-ref.html
defaults
|