Commit Briefs
Update (gh-pages)
Add error injection with operation slowdown
Closes #29
Add error injection that returns random errno
Add a new fault injection that returns random errno supported by performed FUSE operation. The source of errnos for a POSIX function is a POSIX standard. Source of errnos for other functions are Linux, macOS, FreeBSD and OpenBSD manual pages. TODO: - support errno_regexp, by default - random supported errnos - describe details in manual page Closes #6 Closes #8
Use code instead of name for FUSE operation
In upcoming patch with implementation of fault injection that returns random errno we need to resolve FUSE operation and to make it easier error_inject() switched from using FUSE operation name to using operation code. Part of: #6
Add error injection that kills caller
Closes #28
Fix no-op fault injection
Follows up: #18
Add configuration support
Patch adds command line options and configuration file support to unreliablefs. unreliablefs can be managed in runtime using simple .INI configuration file. unreliablefs config uses configuration language which provides a structure similar to what's found in Microsoft Windows INI files or used by configparser Python module [2]. To make it possible third-party C library [1] has been imported. There is only one supported error injection - "errinj_noop" that replaces file operation with no operation. More error injections are coming. 1. https://github.com/benhoyt/inih 2. https://docs.python.org/3/library/configparser.html Closes #3 Closes #18 Closes #1 Closes #7 Closes #12 Closes #60
cmake: add ASAN and UBSAN sanitizers
Disabled by default
cmake: set CFLAGS using target_compile_options()
Using target_compile_options() is one of the best practice for CMake so replaced CMAKE_C_FLAGS and CMAKE_CXX_FLAGS by target_compile_options(). Also patch adds options -Wall and -Wextra.
ci: remove macOS 10.15
brew install --cask osxfuse ==> Tapping homebrew/cask Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'... Error: Invalid cask: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/emacs.rb Cask ''/Applications/Emacs.app/Contents/Resources/man/man1/ebrowse.1.gz' is not a valid man page name' definition is invalid. Error: Cannot tap homebrew/cask: invalid syntax in tap! 1. https://cirrus-ci.com/task/6024547758505984