.TH fiu-run 1 "16/Jun/2009"
.SH NAME
fiu-run - a script to launch programs using libfiu
.SH SYNOPSIS
fiu-run [options] program [program arguments]
.SH DESCRIPTION
fiu-run is a script to make it easier to launch programs using
\fBlibfiu\fR(3). It can enable failure points and start libfiu's remote
control capabilities before starting to execute the program, avoiding the need
to write a special launcher to inject failures.
It is specially useful when used to inject failures in the POSIX/libc
functions, because it does not require any program modifications.
After launching programs with fiu-run, \fBfiu-ctrl\fR(1) can be used to enable
and disable their failure points at runtme.
For additional documentation, go to the project's website at
.IR http://blitiri.com.ar/p/libfiu .
.SH OPTIONS
.TP
.B "-c command"
Run the given libfiu remote control command before executing the program (see
below for reference).
.TP
.B -x
Use the POSIX libfiu preload library, allows simulate failures in the POSIX
and C standard library functions.
.TP
.B "-f ctrlpath"
Enable remote control over named pipes with the given path as base name, the
process id will be appended (defaults to "$TMPDIR/fiu-ctrl", or
"/tmp/fiu-ctrl" if "$TMPDIR" is not set). Set to "" to disable remote control
over named pipes.
.TP
.B "-l path"
Path where to find the libfiu preload libraries. Defaults to the path where
they were installed, so it is usually correct.
.P
Remote control commands are of the form
"\fIcommand param1=value1,param2=value2\fR".
Valid commands are:
.TP
.B 'enable name=NAME'
Enables the NAME failure point unconditionally.
.TP
.B 'enable_random name=NAME,probability=P'
Enables the NAME failure point with a probability of P.
.P
All of the \fIenable*\fR commands can also optionally take \fIfailnum\fR and
\fIfailinfo\fR parameters, analogous to the ones taken by the C functions.
.SH EXAMPLES
The following will run the \fBfortune\fR(1) program simulating faults in
read() with 5% probability (note that the \fB-x\fR parameter is required in
this case to enable failure points in the POSIX and libc functions):
.RS
.nf
fiu\-run \-x \-c "enable_random name=posix/io/rw/read,probability=0.05" fortune
.fi
.RE
By running it multiple times you will see that sometimes it works, but most of
the time you get different errors, resulting from the simulated failures.
.SH SEE ALSO
.BR libfiu (3),
.BR fiu-ctrl (1).
.SH BUGS
If you want to report bugs, or have any questions or comments, just let me
know at albertito@blitiri.com.ar. For more information about libfiu, you can
go to http://blitiri.com.ar/p/libfiu.