DependableSystemsLab / LLFI

LLFI is an LLVM based fault injection tool, that injects faults into the LLVM IR of the application source code. The faults can be injected into specific program points, and the effect can be easily tracked back to the source code. Please refer to the paper below. NOTE: If you publish a paper using LLFI, please add it to PaperLLFI.bib
http://blogs.ubc.ca/karthik/2014/02/23/quantifying-the-accuracy-of-high-level-fault-injection-techniques/
Other
68 stars 35 forks source link

Fixed profile/injectfault blocking on large inputs #68

Closed chipbuster closed 9 years ago

chipbuster commented 9 years ago

Changed profile.py and injectfault.py to no longer hang on large input sizes, as discussed in DSL/LLFI Issue #67. The fix uses a Python3.3+ construct, the timeout parameter in popen.communicate().

The new version fails a few software tests, but since most of the software tests failed before the changes, I don't really know whether that's a problem. The new versions pass all non-software tests.

Note that this slightly changes the behavior of the injectfault script: if the program times out, it will now place whatever output the program created into the appropriate file, bracketed by a message that notes that the program was killed by LLFI. To restore the old behavior (no output on timeout), delete lines 171-173 and 177-179 in injectfault.py and add if not program_timed_out: before the write to the outputFile.