34 lines
1.0 KiB
Markdown
34 lines
1.0 KiB
Markdown
# FunFail
|
|
|
|
Funfail is a shared library that is used to simulate failures in memory allocation (`malloc`, `calloc`) and I/O operations (`write`, `read`) after a set number of uses. This can be useful for testing the robustness and error-handling capabilities of your programs.
|
|
|
|
## Usage
|
|
|
|
After making the shared object:
|
|
|
|
```
|
|
make
|
|
```
|
|
|
|
### Script Usage
|
|
The script `funfail.sh` can be used to run your program with the funfail.so preloaded.
|
|
|
|
To run your program `myapp` and simulate a failure in `malloc` after 10 calls, use:
|
|
```
|
|
./funfail.sh ./myapp
|
|
```
|
|
Follow the prompts to select `malloc` and enter `10` as the number of calls after which it should fail.
|
|
|
|
### Manual Usage
|
|
Copy the funfail.so to the path of the program `myapp` you want to test. Preloading the funfail.so can be done using the `LD_PRELOAD` environment variable in Linux. Run your program while preloading the funfail.so and use one of the following env variables:
|
|
- MAX_MALLOC_CALLS
|
|
- MAX_CALLOC_CALLS
|
|
- MAX_WRITE_CALLS
|
|
- MAX_READ_CALLS
|
|
|
|
Example:
|
|
```
|
|
LD_PRELOAD=./funfail.so MAX_MALLOC_CALLS=5 ./myapp
|
|
```
|
|
|