• Show log

    Commit

  • Hash : e1339133
    Author : David Turner
    Date : 2020-06-08T13:31:55

    Make macros for header file names optional. We no longer have to take care of the 8.3 file name limit; this allows us (a) to introduce longer, meaningful file names, and (b) to avoid macro names in `#include' lines altogether since some compilers (most notably Visual C++) doesn't support this properly. */*: Replace #include FOO_H with #include <freetype/foo.h> or something similar. Also update the documentation.

  • README

  • ftrandom
    ========
    
    This program expects a set of directories containing good fonts, and a set
    of extensions of fonts to be tested.  It will randomly pick a font, copy it,
    introduce an error and then test it.
    
    The FreeType tests are quite basic; for each erroneous font ftrandom
    
      . forks off a new tester,
      . initializes the library,
      . opens each font in the file,
      . loads each glyph,
      . optionally reviews the contours of the glyph,
      . optionally rasterizes the glyph, and
      . closes the face.
    
    If a tester takes longer than 20 seconds, ftrandom saves the erroneous font
    and continues.  If the tester exits normally or with an error, then the
    superstructure removes the test font and continues.
    
    
    Command line options
    --------------------
    
      --all                    Test every font in the directory(ies) no matter
                               what its extension.
      --check-outlines         Call `FT_Outline_Decompose' on each glyph.
      --dir <dir>              Append <dir> to the list of directories to search
                               for good fonts.  No recursive search.
      --error-count <cnt>      Introduce <cnt> single-byte errors into the
                               erroneous fonts (default: 1).
      --error-fraction <frac>  Multiply the file size of the font by <frac> and
                               introduce that many errors into the erroneous
                               font file.  <frac> should be in the range [0;1]
                               (default: 0.0).
      --ext <ext>              Add <ext> to the set of font types tested.
      --help                   Print out this list of options.
      --nohints                Specify FT_LOAD_NO_HINTING when loading glyphs.
      --rasterize              Call `FT_Render_Glyph' as well as loading it.
      --result <dir>           This is the directory in which test files are
                               placed.
      --test <file>            Run a single test on a pre-generated testcase.
                               This is done in the current process so it can be
                               debugged more easily.
    
    The default font extensions tested by ftrandom are
    
      .ttf .otf .ttc .cid .pfb .pfa .bdf .pcf .pfr .fon .otb .cff
    
    The default font directory is controlled by the macro `GOOD_FONTS_DIR' in
    the source code (and can be thus specified during compilation); its default
    value is
    
      /usr/local/share/fonts
    
    The default result directory is `results' (in the current directory).
    
    
    Compilation
    -----------
    
    Two possible solutions.
    
    . Run ftrandom within a debugging tool like `valgrind' to catch various
      memory issues.
    
    . Compile FreeType with sanitizer flags as provided by gcc or clang, for
      example, then link it with ftrandom.