sapling/eden/fs/utils
Adam Simpkins 37fd4f5cfb add a fault injection framework
Summary:
Add a new class for injecting faults into Eden.  This will make it easier to
build tests that exercise specific error conditions or specifically control
the ordering of operations that might otherwise race.

To minimize the performance impact, the fault injection framework is disabled
by default and must be explicitly enabled at process startup using a command
line flag.  If this command line flag was not specified all fault injection
checks short-circuit into a no-op.  The `checkAsync()` version does still add
some extra overhead due to the addition of a new `folly::SemiFuture` into the
code path.

Reviewed By: wez

Differential Revision: D14079489

fbshipit-source-id: 3e8725d2e51e5c829199a602e90574424ea52636
2019-02-15 19:27:17 -08:00
..
test add a fault injection framework 2019-02-15 19:27:17 -08:00
BucketedLog.h eden: fixup std::min for differently sized args 2018-12-15 13:43:31 -08:00
Bug.cpp add EdenBug::throwException 2018-05-01 16:52:06 -07:00
Bug.h add EdenBug::throwException 2018-05-01 16:52:06 -07:00
Clock.cpp Started Eden for Windows and integrated hg store with it. 2018-08-21 17:53:38 -07:00
Clock.h make Clock::getRealtime() const 2018-02-01 11:19:15 -08:00
CMakeLists.txt add CMake build files 2018-04-30 14:37:46 -07:00
CoverageSet.cpp eden: macos has no std::set::node_type 2018-12-15 13:43:31 -08:00
CoverageSet.h use CoverageSet to drop blobs when they're fully read by FUSE 2018-12-06 12:04:17 -08:00
DirType.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FaultInjector.cpp add a fault injection framework 2019-02-15 19:27:17 -08:00
FaultInjector.h add a fault injection framework 2019-02-15 19:27:17 -08:00
FutureUnixSocket.cpp add attachEventBase()/detachEventBase() to UnixSocket 2018-05-23 11:51:59 -07:00
FutureUnixSocket.h add attachEventBase()/detachEventBase() to UnixSocket 2018-05-23 11:51:59 -07:00
HgCommand.cpp Future<T>::then 1/n: Future<T>::then(try-task) -> Future<T>::thenTry(task). 2018-07-23 18:51:38 -07:00
HgCommand.h Removed all folly::fbstring uses from eden. 2018-01-03 16:41:34 -08:00
IDGen.cpp microoptimize unique ID generation - hot path is six instructions 2018-11-10 11:12:45 -08:00
IDGen.h make generateUniqueID noexcept 2018-11-10 11:12:45 -08:00
IoFuture.cpp throw all errno exceptions as std::generic_category 2018-03-20 13:38:45 -07:00
IoFuture.h add a new IoFuture helper class 2017-10-10 15:51:15 -07:00
LeaseCache.h convert some deprecated Future::then() calls 2018-10-23 13:42:12 -07:00
MappedDiskVector.h eden: macos has no mremap, adjust MappedDiskVector 2018-12-17 15:53:15 -08:00
PathFuncs.cpp add pathFuncs expandUser() for tilde expansion 2018-11-09 11:24:37 -08:00
PathFuncs.h Don't include FBVector.h in String.h 2018-11-29 11:52:37 -08:00
PathMap.h remove Allocator template parameter from PathMap 2018-06-01 12:23:31 -07:00
ProcessAccessLog.cpp reenable ProcessNameCache 2019-01-24 15:45:29 -08:00
ProcessAccessLog.h reenable ProcessNameCache 2019-01-24 15:45:29 -08:00
ProcessNameCache.cpp switch ProcessNameCache from std::condition_variable to LifoSem 2019-01-24 15:45:29 -08:00
ProcessNameCache.h switch ProcessNameCache from std::condition_variable to LifoSem 2019-01-24 15:45:29 -08:00
ProcUtil.cpp folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
ProcUtil.h folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
SortedInsert.h Fixing merge screw-up caught by Adam TYVM 2018-01-04 14:35:26 -08:00
SSLContext.cpp folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
SSLContext.h folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
StatTimes.h eden: add helper for accessing stat fields as timespecs 2018-12-16 18:31:46 -08:00
Synchronized.h folly::Optional -> std::optional 2018-10-23 17:05:11 -07:00
SystemError.h check for std::generic_category when looking for errno errors 2018-03-20 13:38:45 -07:00
TimeUtil.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
TimeUtil.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
UnboundedQueueExecutor.cpp Use a deterministic executor in TestMount 2018-08-21 12:23:00 -07:00
UnboundedQueueExecutor.h Use a deterministic executor in TestMount 2018-08-21 12:23:00 -07:00
UnixSocket.cpp eden: sendmsg portability for macos 2018-12-17 20:16:18 -08:00
UnixSocket.h add attachEventBase()/detachEventBase() to UnixSocket 2018-05-23 11:51:59 -07:00
XAttr.cpp add fsattr utility for testing purposes 2018-01-30 21:50:39 -08:00
XAttr.h add fsattr utility for testing purposes 2018-01-30 21:50:39 -08:00