Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
c478157
added script to create fallback TTF file
streude Sep 2, 2025
1e02e14
adding script that changes the IFT format value to something invalid
streude Sep 2, 2025
0de35ad
made fallback script able to create either type of TTF
streude Sep 9, 2025
50d30ce
Changed to capital letters
streude Sep 9, 2025
82fdb42
Organizing the directory structure to match WOFF2 tests
streude Sep 15, 2025
33aae40
Adding some 'starting point' font files
streude Sep 15, 2025
9d08658
organizing the code
streude Sep 15, 2025
62cbc15
clean-up
streude Sep 15, 2025
42c32c1
implemented paths import
streude Sep 15, 2025
afe6d55
updated paths to use client fonts directory
streude Sep 16, 2025
fa3c973
adding client code
streude Sep 16, 2025
929d207
added sub-directory for test IFT
streude Sep 16, 2025
c3825ed
moved source fonts to sub-directories
streude Sep 16, 2025
a50b637
adding additional IFT files
streude Sep 16, 2025
45a9635
moved fonts to sub-directories
streude Sep 16, 2025
36491eb
Adding font that works
streude Sep 16, 2025
f04c990
fixed IFT issue
streude Sep 16, 2025
cf209bc
added copying of segmentation files
streude Sep 16, 2025
a66a3e0
fixing client issues
streude Sep 16, 2025
2136e00
reversed P/F for fallback font
streude Sep 16, 2025
7114f39
Fixing class names
streude Sep 16, 2025
e1f5318
removed helper script
streude Sep 16, 2025
ba951b3
removing duplicate script
streude Sep 16, 2025
e25da7b
adding ignore for python cache
streude Sep 16, 2025
a580145
adding ignore for python cache
streude Sep 16, 2025
a3a46bd
Added comment to explain next steps
streude Sep 16, 2025
dfcb265
adding functionality to allow multiple tests to be on one page
streude Sep 17, 2025
ec735ce
Added check of 'pass/fail' class before assigning fallback font
streude Sep 17, 2025
0ce56ae
added try/catch for missing IFT files
streude Sep 17, 2025
3b76751
Added second test to see how it handles more than one
streude Sep 17, 2025
d6bec42
removed unneeded fallback font reference
streude Sep 17, 2025
3ea7407
removed unnecessary pass/fail mode
streude Sep 17, 2025
6ba86a9
updated name of fallback font
streude Sep 17, 2025
3f7e57c
removed unneeded code
streude Sep 17, 2025
16c5d05
added back argument to specify glyph to word mapping
streude Sep 18, 2025
413a997
added test_name variable
streude Sep 18, 2025
51d5567
Merge branch 'main' into test_font_creation
streude Sep 18, 2025
43f0d90
updated command line arguments so they make more sense
streude Sep 18, 2025
02ca6d9
renamed script to make more sense
streude Sep 18, 2025
c76eafa
added WOFF2 generator scripts as starting point
streude Sep 25, 2025
403570c
added function to build invalid IFT file
streude Sep 25, 2025
990f850
more clean-up from WOFF2 stuff
streude Sep 25, 2025
03cf229
Adding resources for browser client
streude Sep 25, 2025
a24d8e8
updated makeTest to return IFT data
streude Sep 26, 2025
3439bdd
changed 'data' to function reference
streude Sep 26, 2025
c353d87
removed return statement
streude Sep 26, 2025
eb9819e
moved final location of altered IFT files
streude Sep 26, 2025
c21f86a
changed output directory
streude Sep 26, 2025
785c727
moved dependencies into sub-directories
streude Sep 26, 2025
651b77a
updating for IFT
streude Sep 26, 2025
10e3572
Adding font CSS file
streude Sep 26, 2025
f0b9b82
Hooked up client to test
streude Sep 26, 2025
922a66a
added second writeTest as a test
streude Sep 26, 2025
1e37cd6
moved IFT directories to root of test directory
streude Sep 26, 2025
4e3471e
changed zip creation to zip up IFT directories instead of font files
streude Sep 26, 2025
7535e0b
removed unnecessary check
streude Sep 26, 2025
122338b
a little clean-up
streude Sep 26, 2025
03d990a
Fixed fallback font
streude Sep 26, 2025
77e2091
added fallback TTF
streude Sep 26, 2025
bd6c076
added cache-buster for IFT file
streude Sep 26, 2025
69efb42
Fixed test result
streude Sep 30, 2025
2e09677
Fixed test result
streude Sep 30, 2025
7f1ea34
Fixed grammar issue
streude Sep 30, 2025
8cb207c
Added python dependencies
streude Sep 30, 2025
ef4e5f1
Merge branch 'main' into test_font_creation
streude Oct 4, 2025
463a7af
removed demo test and updated rust client
streude Oct 8, 2025
a29412a
Added concept test groups
streude Oct 8, 2025
40f1c08
Fixed directory name for IFT
streude Oct 8, 2025
a743b36
remove 'flavor' argument
streude Oct 8, 2025
ec20730
cleaned up documentation in generator
streude Oct 8, 2025
c41217f
Adding fallback font
streude Oct 8, 2025
01f2fd4
removed old client files
streude Oct 8, 2025
944c1ed
added client test directory to ignore
streude Oct 8, 2025
007630c
removed test file
streude Oct 9, 2025
1c9cb4f
Added conditional for test HTML
streude Oct 9, 2025
86e0bb7
removed unused paths
streude Oct 9, 2025
36023d6
removed unused TTF
streude Oct 9, 2025
b059db0
removed unused dependency
streude Oct 9, 2025
824a057
added documentation to utility script
streude Oct 9, 2025
9fb9f4b
Fixed title of test
streude Oct 9, 2025
aa3125c
removed conditionals unrelated to tests (from demo)
streude Oct 9, 2025
d5494be
refactoring to remove repeated strings
streude Oct 9, 2025
1095651
more refactoring
streude Oct 9, 2025
0e5c799
fixed comment
streude Oct 9, 2025
aacb1db
Added test for invalid design space segment end value
streude Oct 15, 2025
30b62f7
added temporary variable font
streude Oct 15, 2025
c8c4f0e
removed references to WOFF specs
streude Oct 27, 2025
8fed8a3
removed references to 'metadataIsValid'
streude Oct 27, 2025
29afed2
removed references to 'metadataToDisplay'
streude Oct 27, 2025
69dee8d
removed references to 'extraMetadataNotes'
streude Oct 27, 2025
801f273
moved IFT test directory creation to separate function
streude Oct 29, 2025
31c2635
created constants for magic numbers
streude Oct 29, 2025
1f962ee
Made all variables camel-case
streude Oct 29, 2025
161bcbc
made function for writing test IFT file
streude Oct 29, 2025
44ab1e2
Added comment to makeIFTWithInvalidDesignSpaceSegmentEndValue to indi…
streude Oct 29, 2025
df2cd83
Started adding NFT file class
streude Oct 29, 2025
5c63856
updated second test to use the class
streude Oct 29, 2025
e790b13
fixed magic number
streude Oct 29, 2025
8673554
removed redundant functions
streude Oct 29, 2025
e4f4f0f
made filename a static variable
streude Oct 29, 2025
6a6e58f
fixed comment
streude Oct 29, 2025
673b1e0
started documenting test generator
streude Oct 30, 2025
5b855e5
started documenting test generator
streude Oct 30, 2025
14adca9
fixed formatting
streude Oct 30, 2025
64e003e
more clarification
streude Oct 30, 2025
6d512d5
removed unneeded dependency
streude Oct 30, 2025
5f0025b
removed unused functions
streude Oct 31, 2025
cd73388
Cleaning up directory structures
streude Oct 31, 2025
42170f5
adding source TTF file
streude Oct 31, 2025
bc1d66f
added ignore file
streude Oct 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
covered-test-plan-ids.txt
test-plan-coverage-report.txt
test-plan-coverage-report.txt
IFTClient/
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,33 @@ make all
To generate test and test plan coverage reports (test-coverage-report.txt and
test-plan-coverage-report.txt) that specify which specification client
conformance statements are not covered.

## Generate Client Tests

The test cases here are generated by the Python scripts in the generators directory.

* `ClientTestCaseGenerator.py`

The scripts are dependent on the following package:

* FontTools https://github.com/behdad/fonttools

To compile a particular test suite, simply run the relevant script:

>>> python ClientTestCaseGenerator.py

To generate the subsetted fonts files needed for these tests, you can run the following command:

For the fallback font:

>>>python makeSubsettedFont.py fallback

(this will generate a font file that substitutes the `p` glyph with `fail` and the `f` glyph with `pass`)

For the font that will be used as the source for the IFT:

>>>python makeSubsettedFont.py IFT

(this will generate a font file that substitutes the `f` glyph with `fail` and the `p` glyph with `pass`)

The fallback font can be used as-is and the IFT source font can be used with the IFT encoder (https://github.com/w3c/ift-encoder) to create an IFT font that is then modified by the conformance test generator scripts.
1 change: 1 addition & 0 deletions generators/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
subsettedFonts/
Loading