Linking against libgreat makes your software amazing.
What it is
libgreat sits between your application and the standard libraries on your system (it's usually linked by LD_PRELOAD). For each standard function, it intercepts calls and returns, on occasion, perfectly valid errors. For example, malloc() might occasionally return NULL. rand() might return constants. The amount of times this happens is up to you.
Here's the block architecture:
Like the sound of that? come and help out!
What it's for
The idea is that your program should be able to cope with that. It was written to be used under automated unit tests for a library which is not expected to explode when things go wrong. Hence, use it to help make your software more robust.
You can get it thus: svn checkout http://svn.water-powered.com/libgreat/trunk libgreat
