sapling/eden/integration
Adam Simpkins b6e9844eca add new snapshot-based integration tests for fsck
Summary:
This is the basic framework for some new tests for `eden fsck` that work by
unpacking one of the existing saved snapshot files, breaking it in various
ways, and then running `eden fsck` to fix it.

Using an existing snapshot file rather than creating a new mount point on the
fly in the test has a few advantages:

- This lets us confirm that newer versions of Eden can still correctly repair
  and mount old file formats, even if we update the mount point data formats
  in the future.
- Unpacking a snapshot is much faster than starting Eden, creating an hg
  repository, cloning a new Eden checkout from the repo, and then unmounting
  the checkout.
- The inode number allocations for the snapshot are fixed, which makes it
  easier for the test code to manipulate specific inode numbers and always
  know which path this refers to.  If we created a mount point on the fly we
  can't guarantee ahead of time which inode numbers would map to each file,
  and we would need to do more work to look up this information after creating
  the checkout.

These tests are pretty basic at the moment, but I plan to expand them as I
check in more of the fsck logic to repair errors.

Reviewed By: wez

Differential Revision: D12955045

fbshipit-source-id: 5d5a96cec812f8e72caf93e57bf0f1311e28aab8
2018-11-09 14:29:17 -08:00
..
fsck add new snapshot-based integration tests for fsck 2018-11-09 14:29:17 -08:00
helpers error out if users run "edenfs" directly instead of "eden" 2018-11-08 12:09:42 -08:00
hg re-enable test_hg_clone_non_eden_repo_within_eden_repo for treemanifest 2018-11-06 18:08:09 -08:00
lib error out if users run "edenfs" directly instead of "eden" 2018-11-08 12:09:42 -08:00
snapshot have the snapshot code also fix up stored UIDs and GIDs 2018-11-07 19:19:52 -08:00
basic_test.py have "eden clone" create a README file for unmounted checkouts 2018-06-26 21:06:42 -07:00
chown_test.py Add command to chown a mount 2018-11-07 08:58:31 -08:00
clone_test.py Fix handling of -- in 'eden start' 2018-11-07 12:08:18 -08:00
corrupt_overlay_test.py Fix crash during inode scan 2018-09-17 14:23:53 -07:00
debug_getpath_test.py update the debug subcommands to use find_checkout() 2018-08-22 11:06:48 -07:00
doteden_test.py enable Black python formatting and apply to eden 2018-05-09 21:37:07 -07:00
edenclient_test.py enable typechecking on Eden Python libraries 2018-08-03 15:07:00 -07:00
fsck_test.py enable typechecking on Eden Python libraries 2018-08-03 15:07:00 -07:00
glob_test.py define paths as binary rather than strings in the thrift interface 2018-08-11 01:35:49 -07:00
health_test.py Delete dead code in health_test.py 2018-10-30 14:04:41 -07:00
help_test.py improve the run_unchecked() API in the integration tests 2018-07-19 12:42:53 -07:00
hypothesis_simple_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
info_test.py remove support for non-toml configs 2018-10-10 12:49:16 -07:00
materialized_query_test.py fixup root cause of ESTALE 2018-11-07 15:20:58 -08:00
mmap_test.py enable Black python formatting and apply to eden 2018-05-09 21:37:07 -07:00
oexcl_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
patch_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
persistence_test.py have Overlay track nextInodeNumber_ instead of InodeMap 2018-05-31 01:46:15 -07:00
rage_test.py fix the eden rage command 2018-07-23 13:22:08 -07:00
rc_test.py remove support for non-toml configs 2018-10-10 12:49:16 -07:00
remount_test.py have "eden clone" create a README file for unmounted checkouts 2018-06-26 21:06:42 -07:00
rename_test.py update mtime on directories when renaming 2018-06-01 11:39:01 -07:00
repo_test.py remove support for non-toml configs 2018-10-10 12:49:16 -07:00
restart_test.py Improve test coverage of 'eden start', 'eden stop', and 'eden restart' 2018-10-31 15:26:39 -07:00
sed_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
setattr_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
stale_test.py add integration tests for CLI behavior inside a stale mount 2018-07-27 18:36:55 -07:00
start_test.py error out if users run "edenfs" directly instead of "eden" 2018-11-08 12:09:42 -08:00
stop_test.py Improve test coverage of 'eden start', 'eden stop', and 'eden restart' 2018-10-31 15:26:39 -07:00
systemd_fixture_test.py Create test utilities for systemd service management 2018-10-31 16:13:19 -07:00
systemd_test.py Add opt-in for experimental systemd mode 2018-10-22 20:27:25 -07:00
takeover_test.py add test verifying flush_cache works after a graceful restart 2018-05-31 18:52:27 -07:00
thrift_test.py Fix eden debug unload . from the root of the checkout 2018-09-13 14:55:03 -07:00
unixsocket_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
unlink_test.py Upgrade to 18.5b1 2018-05-30 01:11:47 -07:00
xattr_test.py Update mypy to 0.641 2018-11-06 14:52:19 -08:00