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