syncthing/lib/fs
Jakob Borg d27463268d lib/fs: Add fakefs (#5235)
* lib/fs: Add fakefs

This adds a new fake filesystem type. It's described rather extensively
in fakefs.go, but the main point is that it's for testing: when you want
to spin up a Syncthing and have a terabyte or two of random files that
can be synced somewhere, or an inifitely large filesystem to sync files
into.

It has pseudorandom properties such that data read from one fakefs can
be written into another fakefs and read back and it will look
consistent, without any of the data actually being stored.

To use:

    <folder id="default" path="whatever" ...>
        <filesystemType>fake</filesystemType>

This will create an empty fake filesystem. You can also specify that it
should be prefilled with files:

    <folder id="default" path="whatever?size=2000000" ...>
        <filesystemType>fake</filesystemType>

This will create a filesystem filled with 2TB of random data that can be
scanned and synced. There are more options, see fakefs.go.

Prefilled data is based on a deterministic seed, so you can index the
data and restart Syncthing and the index is still correct for all the
stored data.
2018-10-02 19:29:06 +01:00
..
basicfs_test.go lib/fs: Case insensitive conversion to rel path on windows (fixes #5183) (#5176) 2018-09-11 22:30:32 +02:00
basicfs_unix.go lib/fs: Try EvalSymlinks without '\\?\' prefix on failure (fixes #5226) (#5227) 2018-09-26 19:28:20 +01:00
basicfs_watch_errors_linux.go lib/fs: Fix and update error about inotify watch limit (fixes #4833) (#4835) 2018-03-23 12:56:38 +01:00
basicfs_watch_errors_others.go all: Add filesystem notification support 2017-10-20 14:52:55 +00:00
basicfs_watch_eventtypes_fen.go vendor: github.com/Zillode/notify is now github.com/syncthing/notify (#4813) 2018-03-14 14:48:22 +01:00
basicfs_watch_eventtypes_inotify.go vendor: github.com/Zillode/notify is now github.com/syncthing/notify (#4813) 2018-03-14 14:48:22 +01:00
basicfs_watch_eventtypes_kqueue.go vendor: github.com/Zillode/notify is now github.com/syncthing/notify (#4813) 2018-03-14 14:48:22 +01:00
basicfs_watch_eventtypes_other.go vendor: github.com/Zillode/notify is now github.com/syncthing/notify (#4813) 2018-03-14 14:48:22 +01:00
basicfs_watch_eventtypes_readdcw.go lib/fs: Catch size-preserving changes on windows (fixes #5050) (#5056) 2018-07-09 18:29:22 +01:00
basicfs_watch_test.go lib/fs: Try EvalSymlinks without '\\?\' prefix on failure (fixes #5226) (#5227) 2018-09-26 19:28:20 +01:00
basicfs_watch_unsupported.go all: Add filesystem notification support 2017-10-20 14:52:55 +00:00
basicfs_watch.go lib/fs: Try EvalSymlinks without '\\?\' prefix on failure (fixes #5226) (#5227) 2018-09-26 19:28:20 +01:00
basicfs_windows_test.go lib/fs: Case insensitive conversion to rel path on windows (fixes #5183) (#5176) 2018-09-11 22:30:32 +02:00
basicfs_windows.go lib/fs: Try EvalSymlinks without '\\?\' prefix on failure (fixes #5226) (#5227) 2018-09-26 19:28:20 +01:00
basicfs.go lib/fs: Case insensitive conversion to rel path on windows (fixes #5183) (#5176) 2018-09-11 22:30:32 +02:00
debug.go lib/fs: Introduce walkfs debug facility (#4712) 2018-02-05 11:07:56 +01:00
errorfs.go lib/fs: harmonize CreateSymlink definitions (fixes #4567) 2018-01-14 14:25:04 +00:00
fakefs_test.go lib/fs: Add fakefs (#5235) 2018-10-02 19:29:06 +01:00
fakefs.go lib/fs: Add fakefs (#5235) 2018-10-02 19:29:06 +01:00
filesystem_test.go lib/scanner, lib/fs: Don't create file infos with abs paths (fixes #4799) (#4800) 2018-03-12 13:18:59 +01:00
filesystem.go lib/fs: Add fakefs (#5235) 2018-10-02 19:29:06 +01:00
folding_test.go all: Fix typos (#4772) 2018-02-24 08:51:29 +01:00
folding.go lib/fs: Add case insensitivity to MtimeFS 2017-11-17 12:10:16 +00:00
fsfileinfo_unix.go lib/fs: Handle deduplicated files on NTFS (fixes #1845) 2017-12-29 21:23:06 +00:00
fsfileinfo_windows.go all: Adjust windows perms in fs package (#5200) 2018-09-16 16:09:56 +02:00
logfs.go lib/fs: harmonize CreateSymlink definitions (fixes #4567) 2018-01-14 14:25:04 +00:00
lstat_broken.go lib/scanner: Use fs.Filesystem for all operations 2017-04-01 09:04:11 +00:00
lstat_regular.go lib/scanner: Use fs.Filesystem for all operations 2017-04-01 09:04:11 +00:00
mtimefs_test.go lib/fs: Add case insensitivity to MtimeFS 2017-11-17 12:10:16 +00:00
mtimefs.go lib/fs: Add case insensitivity to MtimeFS 2017-11-17 12:10:16 +00:00
tempname_test.go lib: Folder marker is now a folder 2017-09-02 05:52:38 +00:00
tempname.go lib/scanner: Fix UTF-8 normalization on ZFS (fixes #4649) 2018-01-05 18:11:09 +00:00
types.go lib/fs: Add fakefs (#5235) 2018-10-02 19:29:06 +01:00
util.go all: Add invalid/ignored files to global list, announce to peers (fixes #623) 2017-11-11 19:18:17 +00:00
walkfs.go lib/scanner, lib/fs: Don't create file infos with abs paths (fixes #4799) (#4800) 2018-03-12 13:18:59 +01:00