unifuzz(1) Emit strings designed to test Unicode handling


unifuzz ([option flags])


unifuzz emits strings designed to test the ability of programs intended to accept Unicode input to handle unexpected input. These include: characters from all Unicode ranges, Private Use characters, surrogates, undefined characters, non-characters, control characters, exotic space characters, sequences violating normalization rules, unexpected sequences (e.g. a base character from one range followed by a combining character from another range), and long sequences of combining characters. It can also generate very long lines, strings containing embedded nulls, and ill-formed UTF-8.


Restrict the output to the Basic Multilingual Plane (Plane 0).
Do not emit specific characters.
Print usage information.
Emit very long lines.
Emit string with embedded nulls.
Be quiet. Omit commentary.
-r <number>
Set the number of random characters to emit.
Scan ranges - emit a character from each range.
-s <seed>
Set the seed for the random number generator.
Emit ill-formed UTF-8.
Print version information.

The sequence of random characters is determined by a pseudorandom number generator, so the same sequence can be obtained by setting the seed to the same value. If not set on the command line, a seed is chosen based on the time of execution. The seed used is included in the output in a line of the form "Seed = NNNNNN" immediately preceding the random character sequence. Note that in order to obtain the same sequence it is necessary to keep the same setting for restriction of output to the BMP.


Unicode Standard, version 5.0


Bill Poser
[email protected]


GNU General Public License