WOFF: Authoring Tool Test Suite (24 tests)

The files used in these test can be obtained individually here or as a single zip file here.
The tests in this suite represent SFNT data to be used for WOFF conversion without any alteration or correction. An authoring tool may allow the explicit or silent modification and/or correction of SFNT data. In such a case, the tests in this suite that are labeled as "should not convert" may be converted, so long as the problems in the files have been corrected. In that case, there is no longer any access to the "input font" as defined in the WOFF specification, so the bitwise identical tests should be skipped.

Valid SFNTs

These files are valid SFNTs that should be converted to WOFF.

validsfnt-001: Valid CFF SFNT

The CFF flavored SFNT data is valid.

Should Convert to WOFF: Yes

Documentation

validsfnt-002: Valid TTF SFNT

The TTF flavored SFNT data is valid.

Should Convert to WOFF: Yes

Documentation

Invalid SFNT Tests

These files are invalid SFNTs that should not be converted to WOFF.

invalidsfnt-checksum-001: Table Directory Contains Invalid CheckSum

The checksum for the OS/2 table is set to 0.

Should Convert to WOFF: No

Documentation

invalidsfnt-checksum-002: Font head Table Incorrect CheckSum Adjustment

The head table checksum adjustment is set to 0.

Should Convert to WOFF: No

Documentation

invalidsfnt-padding-001: Table Data Missing Padding

There is no padding between two tables. The head check sum adjustment is also incorrect as a result.

Should Convert to WOFF: No

Documentation

invalidsfnt-padding-002: Final Table in Table Data Is Not Padded

There is no padding after the final table.

Should Convert to WOFF: No

Documentation

invalidsfnt-padding-003: Unnecessary Padding Between Tables

There are four extra bytes after the head table. The head check sum adjustment is also incorrect as a result.

Should Convert to WOFF: No

Documentation

invalidsfnt-padding-004: Unnecessary Padding After Final Table

There are four extra bytes after the final table. The head check sum adjustment is also incorrect as a result.

Should Convert to WOFF: No

Documentation

invalidsfnt-padding-005: Invalid Padding Bytes in Table Data

There is padding after the head table that is not null.

Should Convert to WOFF: No

Documentation

invalidsfnt-blocks-001: Table Data Blocks Overlap

Two table blocks overlap.

Should Convert to WOFF: No

Documentation

invalidsfnt-blocks-002: Table Data Block Begins Before End Of Directory

The first table has an offset that is before the end of the table directory.

Should Convert to WOFF: No

Documentation

invalidsfnt-blocks-003: Table Data Block Offset + Length Extends Past End of File

The final table has an offset + length that is four bytes past the end of the file.

Should Convert to WOFF: No

Documentation

invalidsfnt-directory-order-001: Table Directory Not In Ascending Order

The table directory is in descending order.

Should Convert to WOFF: No

Documentation

invalidsfnt-searchrange-001: Invalid searchRange

The searchRange is set to 0.

Should Convert to WOFF: No

Documentation

invalidsfnt-entryselector-001: Invalid entrySelector

The entrySelector is set to 0.

Should Convert to WOFF: No

Documentation

invalidsfnt-rangeshift-001: Invalid rangeShift

The rangeShift is set to 0.

Should Convert to WOFF: No

Documentation

SFNT Table Data Tests

These files are valid SFNTs that excercise conversion of the table data.

tabledata-compression-size-001: The "TEST" Table Must Not Be Compressed

The "TEST" table will be larger when compressed so it must not be compressed.

Should Convert to WOFF: Yes

Documentation

SFNT Table Directory Tests

These files are valid SFNTs that excercise conversion of the table directory.

tabledirectory-ascending-001: The Table Directory Must Be In Ascending Order

The SFNT contains 1AAA, 2AAA, A1AA, A2AA, AA1A, AA2A, AAA1, AAA2, AAAA, AAAB, AABA, ABAA, BAAA, 8ZZZ, 9ZZZ, Z8ZZ, Z9ZZ, ZZ8Z, ZZ9Z, ZZZ8, ZZZ9, YZZZ, ZYZZ, ZZYZ, ZZZY, ZZZZ, 1aaa, 2aaa, a1aa, a2aa, aa1a, aa2a, aaa1, aaa2, aaaa, aaab, aaba, abaa, baaa, 8zzz, 9zzz, z8zz, z9zz, zz8z, zz9z, zzz8, zzz9, yzzz, zyzz, zzyz, zzzy, zzzz tables in addition to the standard tables. The result of conversion to WOFF should be checked to ensure that the directory is in ascending order.

Should Convert to WOFF: Yes

Documentation

SFNT Bitwise Identical Tests

These files are provided as test cases for checking that the result of converting to WOFF and back to SFNT results in a file that is bitwise identical to the original SFNT.

bitwiseidentical-001: SFNT With Common CFF Structure

The SFNT has a common CFF structure. The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation

bitwiseidentical-002: SFNT With Common TTF Structure

The SFNT has a common TTF structure. The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation

bitwiseidentical-003: SFNT With Uncommon Table

The SFNT has a DSIG table. (Note: this is not a valid DSIG. It should not be used for testing anything other than the presence of the table after the conversion process.) The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation

bitwiseidentical-004: SFNT With Non-Standard Table

The SFNT has a TEST table. The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation

bitwiseidentical-005: SFNT Without Recommended CFF Table Order

The SFNT has a table order that does not follow the recommended CFF table ordering as defined in the OpenType specification. The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation

bitwiseidentical-006: SFNT Without Recommended TTF Table Order

The SFNT has a table order that does not follow the recommended TTF table ordering as defined in the OpenType specification. The process of converting to WOFF and back to SFNT should result in a file that is bitwise identical.

Should Convert to WOFF: Yes

Documentation