WOFF 2.0 CR Test Suite

Overall file structure and basic data types (30 tests)

Test Refs Flags Info
+ 3 Overall file structure and basic data types
blocks-extraneous-data-001 = Extraneous Data Between Header and Directory
  • There are four null bytes between the header and the table directory.
blocks-extraneous-data-002 = Extraneous Data Between Directory and Table Data
  • There are four null bytes between the table directory and the table data.
blocks-extraneous-data-003 = Extraneous Data After Table Data
  • There are four null bytes after the table data block and there is no metadata or private data.
blocks-extraneous-data-004 = Extraneous Data Between Table Data and Metadata
  • There are four null bytes between the table data and the metadata.
blocks-extraneous-data-005 = Extraneous Data Between Table Data and Private Data
  • There are four null bytes between the table data and the private data.
blocks-extraneous-data-006 = Extraneous Data Between Metdata and Private Data
  • There are four null bytes between the metadata and the private data.
blocks-extraneous-data-007 = Extraneous Data After Metadata
  • There are four null bytes after the metadata and there is no private data.
blocks-extraneous-data-008 = Extraneous Data After Private Data
  • There are four null bytes after the private data.
blocks-overlap-001 = Metadata Overlaps Table Data
  • The metadata offset is four bytes before the end of the table data.
blocks-overlap-002 = Private Data Overlaps Table Data
  • The private data offset is four bytes before the end of the table data.
blocks-overlap-003 = Private Data Overlaps Metadata
  • The private data offset is four bytes before the end of the metadata.
valid-001 = Valid WOFF 1
  • Valid CFF flavored WOFF with no metadata and no private data
valid-002 = Valid WOFF 2
  • Valid CFF flavored WOFF with metadata
valid-003 = Valid WOFF 3
  • Valid CFF flavored WOFF with private data
valid-004 = Valid WOFF 4
  • Valid CFF flavored WOFF with metadata and private data
valid-005 = Valid WOFF 5
  • Valid TTF flavored WOFF with no metadata and no private data
valid-006 = Valid WOFF 6
  • Valid TTF flavored WOFF with metadata
valid-007 = Valid WOFF 7
  • Valid TTF flavored WOFF with private data
valid-008 = Valid WOFF 8
  • Valid TTF flavored WOFF with metadata and private data
blocks-extraneous-data-001 = Extraneous Data Between Header and Directory
  • There are four null bytes between the header and the table directory.
blocks-extraneous-data-002 = Extraneous Data Between Directory and Table Data
  • There are four null bytes between the table directory and the table data.
blocks-extraneous-data-003 = Extraneous Data After Table Data
  • There are four null bytes after the table data block and there is no metadata or private data.
blocks-extraneous-data-004 = Extraneous Data Between Table Data and Metadata
  • There are four null bytes between the table data and the metadata.
blocks-extraneous-data-005 = Extraneous Data Between Table Data and Private Data
  • There are four null bytes between the table data and the private data.
blocks-extraneous-data-006 = Extraneous Data Between Metdata and Private Data
  • There are four null bytes between the metadata and the private data.
blocks-extraneous-data-007 = Extraneous Data After Metadata
  • There are four null bytes after the metadata and there is no private data.
blocks-extraneous-data-008 = Extraneous Data After Private Data
  • There are four null bytes after the private data.
blocks-overlap-001 = Metadata Overlaps Table Data
  • The metadata offset is four bytes before the end of the table data.
blocks-overlap-002 = Private Data Overlaps Table Data
  • The private data offset is four bytes before the end of the table data.
blocks-overlap-003 = Private Data Overlaps Metadata
  • The private data offset is four bytes before the end of the metadata.
+ 3.1 Data types
datatypes-alt-255uint16-001 = Different Representations of 255UInt16
  • Valid TTF flavored WOFF with different valid representation of the same 255UInt16 encoded number
datatypes-invalid-base128-001 = Invalid UIntBase128 With Leading Zeros
  • Invalid TTF flavored WOFF that has UIntBase128 numbers with leading zeros
datatypes-invalid-base128-002 = Invalid UIntBase128 That Exceeds 2^{32}-1
  • Invalid TTF flavored WOFF that has UIntBase128 numbers which exceed 2^{32}-1
datatypes-invalid-base128-003 = Invalid UIntBase128 Longer Than 5 Bytes
  • Invalid TTF flavored WOFF that has UIntBase128 numbers longer than 5 bytes
+ 3.2 WOFF2 Header
header-length-001 = Header Length Too Short
  • The length field contains a value that is four bytes shorter than the actual data.
header-length-002 = Header Length Too Long
  • The length field contains a value that is four bytes longer than the actual data.
header-numtables-001 = Header Number of Tables Set to Zero
  • The header contains 0 in the numTables field. A table directory and table data are present.
header-reserved-001 = Header Reserved Invalid Value
  • The reserved field contains 1.
header-signature-001 = Header Signature Invalid Value
  • The signature field contains XXXX instead of wOFF.
header-totalsfntsize-001 = Header TotalSfntSize Too Small
  • The totalSfntSize field contains a too small incorrect value.
header-totalsfntsize-002 = Header TotalSfntSize Too Big
  • The totalSfntSize field contains a too big incorrect value.
header-totalsfntsize-001 = Header TotalSfntSize Too Small
  • The totalSfntSize field contains a too small incorrect value.
header-totalsfntsize-002 = Header TotalSfntSize Too Big
  • The totalSfntSize field contains a too big incorrect value.
header-reserved-001 = Header Reserved Invalid Value
  • The reserved field contains 1.
header-signature-001 = Header Signature Invalid Value
  • The signature field contains XXXX instead of wOFF.