funfail/README.md
2025-01-19 16:27:38 +01:00

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
```