The test driver `lzotest' has grown into a fairly powerful program
of it's own. Here is a short description of the various options.

[ to be written - this is only a very first draft ]


Usage:
======

lzotest [option..] file...


Basic options:
==============

  -m#     compression method
  -b#     set input block size (default 262144, max 1310720)
  -n#     number of compression/decompression runs
  -c#     number of compression runs
  -d#     number of decompression runs
  -S      use safe decompressor (if available)
  -A      use assembler decompressor (if available)
  -F      use fast assembler decompressor (if available)
  -O      optimize compressed data (if available)
  -s DIR  process Calgary Corpus test suite in directory `DIR'
  -@      read list of files to compress from stdin
  -q      be quiet
  -L      display software license


More about `-m':
================

Use `-m' to list all available methods.

You can select methods by number:
-m71

You can select methods by name:
-mlzo1x-1
-mlzo1x-999
-mlzo1x-1(11)

You can select some predefined method groups:
-mall
-mlzo
-mm1
-mm99
-mm999
-m1x999
-m1y999

You can specify multiple methods/groups separated by ',':
-m1,2,3,4
-m1,2,3,4,lzo1x-1,m99,81

And finally you can use multiple `-m' options:
-m962,972 -mm99,982,m1


Other options:
==============

--max-data-length=LEN

--dict=FILENAME
--max-dict-length=LEN

--dump=FILENAME

--adler32
--crc32
--execution-time
--totals

