Commit f2ff7329c72de29e016f2f59a9e1bd335c4b9662

Werner Lemberg 2007-06-03T19:50:57

Some explanations, taken from an email sent by George.

diff --git a/src/tools/ftrandom/README b/src/tools/ftrandom/README
new file mode 100644
index 0000000..c093f15
--- /dev/null
+++ b/src/tools/ftrandom/README
@@ -0,0 +1,48 @@
+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 and error and then test it.
+
+The FreeType tests are quite basic:
+
+  For each erroneous font it
+    forks off a new tester;
+    initializes the library;
+    opens each font in the file;
+    loads each glyph;
+      (optionally reviewing the contours of the glyph)
+      (optionally rasterizing)
+    closes the face.
+
+If the tester exits with a signal, or takes longer than 20 seconds then
+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.
+
+Arguments are:
+
+  --all                    Test every font in the directory(ies) no matter
+                           what its extension (some CID-keyed fonts have no
+                           extension).
+  --check-outlines         Call FT_Outline_Decompose on each glyph.
+  --dir <dir>              Append <dir> to the list of directories to search
+                           for good fonts.
+  --error-count <cnt>      Introduce <cnt> single-byte errors into the
+                           erroneous fonts.
+  --error-fraction <frac>  Multiply the file size of the font by <frac> and
+                           introduce that many errors into the erroneous
+                           font file.
+  --ext <ext>              Add <ext> to the set of font types tested.  Known
+                           extensions are `ttf', `otf', `ttc', `cid', `pfb',
+                           `pfa', `bdf', `pcf', `pfr', `fon', `otb', and
+                           `cff'.
+  --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. 
+                           Done in the current process so it can be debugged
+                           more easily.