- Description:
- A FUSE-based fault injection filesystem.
- Last Change:
- Clone URL:
Commit Briefs
cmake: build rpm and deb packages (cpack)
Closes #21
ci: enable regression testing
Closes #5
test: initial regression test suite
Added initial regression test suite that covers different filesystem operations on filesystem in passthrough mode. Part of #5
Disable fault injections in debug build
There is no possibility to manage fault injections from outside. To enable regression testing on continuous integration it is required to disable fault injection and allow to test filesystem in passthough mode. Part of: #5 See also: #3
cmake: adjust minimal version
Follows up #22
ci: get rid of Travis CI
Ubuntu 18.04 Linux has been moved to Cirrus CI
Bump minimal required CMake version
Set CMake version used in Ubuntu Bionic (18.04) Closes #22
Fix build on FreeBSD and macOS
Accidentally commands to build a project has been missed for build jobs on FreeBSD and macOS in a Cirrus CI config file. Patch fixes it and fix source to be make it possible to build on these operating systems.
Branches
Tags
Tree
README.md
## UnreliableFS [![Build Status](https://api.cirrus-ci.com/github/ligurio/unreliablefs.svg)](https://cirrus-ci.com/github/ligurio/unreliablefs) is a FUSE-based fault injection filesystem that allows to change fault-injections in runtime using simple configuration file. Supported fault injections are: - `errinj_errno` - return error value and set random errno. - `errinj_kill_caller` - send SIGKILL to a process that invoked file operation. - `errinj_noop` - replace file operation with no operation (similar to [libeatmydata](https://github.com/stewartsmith/libeatmydata), but applicable to any file operation). - `errinj_slowdown` - slowdown invoked file operation. ### Building Prerequisites: - CentOS: `dnf install -y gcc -y cmake fuse fuse-devel` - Ubuntu: `apt-get install -y gcc cmake fuse libfuse-dev` - FreeBSD: `pkg install gcc cmake fusefs-libs pkgconf` - OpenBSD: `pkg_add cmake` - macOS: `brew install --cask osxfuse` ```sh $ cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug $ cmake --build build --parallel ``` ### Packages [![Packaging status](https://repology.org/badge/vertical-allrepos/fusefs:unreliablefs.svg)](https://repology.org/project/fusefs:unreliablefs/versions) ### Using ```sh $ mkdir /tmp/fs $ unreliablefs /tmp/fs -basedir=/tmp -seed=1618680646 $ cat << EOF > /tmp/fs/unreliablefs.conf [errinj_noop] op_regexp = .* path_regexp = .* probability = 30 EOF $ ls -la $ umount /tmp/fs ``` ### Documentation See documentation in [unreliablefs.1](https://ligurio.github.io/unreliablefs/unreliablefs.1.html) and [unreliablefs.conf.5](https://ligurio.github.io/unreliablefs/unreliablefs.conf.5.html). ### License MIT License, Copyright (c) 2020-2023, Sergey Bronnikov BSD-3-Clause, Copyright (C) 2009-2020, Ben Hoyt