This patch series introduce the syscall fault injection in strace. Fault injection is a technique that allow one to - among other things - improve the code coverage of a test by introducing faults. Without fault injection the error handlers are often trusted as it, without proof of work because a complex setup is often required to get into those failing conditions. The modest API in this patch series introduce a simple way to make syscall fail based on user input. The following example describe how to discard the second write ls try to issue returning an EAGAIN:
./strace -e fault=write:2:EAGAIN ls Finally, some work is still needed to get this work on every other architectures strace support. Also, the fuzzy part have to be implemented, more information on the third patch of this series. Nahim El Atmani (4): util.c: Add helper for string to int conversions syscall.c: Add helpers for vector reallocation, syscall and errno finder Introduce syscall fault injection feature tests: check syscall fault injection behavior and error handling Makefile.am | 5 ++ configure.ac | 22 ++++- defs.h | 26 ++++++ linux/i386/fault.h | 42 +++++++++ linux/x86_64/fault.h | 42 +++++++++ syscall.c | 220 +++++++++++++++++++++++++++++++++++++++++++++-- tests/Makefile.am | 13 +++ tests/fault.c | 112 ++++++++++++++++++++++++ tests/fault.test | 37 ++++++++ tests/fault_parsing.test | 65 ++++++++++++++ tests/is_x86.c | 42 +++++++++ util.c | 15 ++++ 12 files changed, 632 insertions(+), 9 deletions(-) create mode 100644 linux/i386/fault.h create mode 100644 linux/x86_64/fault.h create mode 100644 tests/fault.c create mode 100755 tests/fault.test create mode 100755 tests/fault_parsing.test create mode 100644 tests/is_x86.c -- Nahim El Atmani ------------------------------------------------------------------------------ _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel