Jakob Unterwurzacher
fa98664d8a
tests: add len2elen.sh
...
Check plaintext file name length -> encrypted file name length relation
Example output:
0 22
2 22
3 22
4 22
5 22
6 22
7 22
8 22
9 22
10 22
11 22
12 22
13 22
14 22
15 22
16 43
17 43
18 43
19 43
20 43
21 43
22 43
23 43
24 43
25 43
26 43
27 43
28 43
29 43
30 43
31 43
32 64
33 64
34 64
35 64
36 64
37 64
38 64
39 64
40 64
41 64
42 64
43 64
44 64
45 64
46 64
47 64
48 86
49 86
50 86
51 86
52 86
53 86
54 86
55 86
56 86
57 86
58 86
59 86
60 86
61 86
62 86
63 86
64 107
65 107
66 107
67 107
68 107
69 107
70 107
71 107
72 107
73 107
74 107
75 107
76 107
77 107
78 107
79 107
80 128
81 128
82 128
83 128
84 128
85 128
86 128
87 128
88 128
89 128
90 128
91 128
92 128
93 128
94 128
95 128
96 150
97 150
98 150
99 150
100 150
101 150
102 150
103 150
104 150
105 150
106 150
107 150
108 150
109 150
110 150
111 150
112 171
113 171
114 171
115 171
116 171
117 171
118 171
119 171
120 171
121 171
122 171
123 171
124 171
125 171
126 171
127 171
128 192
129 192
130 192
131 192
132 192
133 192
134 192
135 192
136 192
137 192
138 192
139 192
140 192
141 192
142 192
143 192
144 214
145 214
146 214
147 214
148 214
149 214
150 214
151 214
152 214
153 214
154 214
155 214
156 214
157 214
158 214
159 214
160 235
161 235
162 235
163 235
164 235
165 235
166 235
167 235
168 235
169 235
170 235
171 235
172 235
173 235
174 235
175 235
176 67
177 67
178 67
179 67
180 67
181 67
182 67
183 67
184 67
185 67
186 67
187 67
188 67
189 67
190 67
191 67
192 67
193 67
194 67
195 67
196 67
197 67
198 67
199 67
200 67
201 67
202 67
203 67
204 67
205 67
206 67
207 67
208 67
209 67
210 67
211 67
212 67
213 67
214 67
215 67
216 67
217 67
218 67
219 67
220 67
221 67
222 67
223 67
224 67
225 67
226 67
227 67
228 67
229 67
230 67
231 67
232 67
233 67
234 67
235 67
236 67
237 67
238 67
239 67
240 67
241 67
242 67
243 67
244 67
245 67
246 67
247 67
248 67
249 67
250 67
251 67
252 67
253 67
254 67
255 67
2019-02-17 16:03:43 +01:00
Jakob Unterwurzacher
5826ff8c9c
tests: parallel_cp.sh: automount fs
...
Teach the script to automatically mount and unmount.
2019-02-17 16:02:30 +01:00
Jakob Unterwurzacher
b86cc3304f
tests: simplify parallel_cp.sh
...
Get rid of one extra directory level. Hopefully makes it
easier to follow the debug logs.
2019-01-23 22:14:31 +01:00
Jakob Unterwurzacher
da3ba5e7f5
tests: darwin: ignore error in TestMvWarningSymlink
...
https://github.com/rfjakob/gocryptfs/issues/349
2019-01-20 17:20:30 +01:00
Jakob Unterwurzacher
ec4c9f2adb
tests: check that we can delete directories with all permission
...
Regression test for https://github.com/rfjakob/gocryptfs/issues/354
2019-01-20 14:32:59 +01:00
Jakob Unterwurzacher
fab585ec01
tests: matrix: split out directory tests into their own file
...
matrix_test.go is already too big.
2019-01-20 13:41:20 +01:00
Jakob Unterwurzacher
3d6b2685fb
Revert "syscallcompat: drop Faccessat AT_SYMLINK_NOFOLLOW helper"
...
Breaks mounting on MacOS: unix.Faccessat on Darwin does NOT (yet)
support AT_SYMLINK_NOFOLLOW. See d44fe89ba4
.
This reverts commit 0805a63df1
.
2019-01-20 13:10:59 +01:00
Jakob Unterwurzacher
0805a63df1
syscallcompat: drop Faccessat AT_SYMLINK_NOFOLLOW helper
...
unix.Faccessat has added support for AT_SYMLINK_NOFOLLOW in July 2018,
bd9dbc187b (diff-341484dbbe3180cd7a31ef2ad2d679b6)
which means we no longer need our own helper.
Closes https://github.com/rfjakob/gocryptfs/issues/347
2019-01-20 12:59:59 +01:00
Sebastian Lackner
1d2ce9c213
tests: Increase timeout in Mount() function.
...
This avoids sporadic test failures on macOS.
2019-01-15 22:08:20 +01:00
Jakob Unterwurzacher
20140e24ed
tests: reduce noise on MacOS
...
This should get rid of
Openat: O_NOFOLLOW missing: flags = 0x0
Fchmodat: adding missing AT_SYMLINK_NOFOLLOW flag
sys_common_test.go:203: chmod on symlink should have failed, but did not. New mode=0333
UnmountErr: "[...]/057376762.mnt" was not found in MountInfo, cannot check for FD leak
and add some context to
--- FAIL: TestUtimesNano (0.00s)
matrix_test.go:628: no such file or directory
See https://github.com/rfjakob/gocryptfs/pull/343#issuecomment-453888006
for full test output
2019-01-14 22:11:15 +01:00
Jakob Unterwurzacher
5c8e7feabd
tests: check that fallocate does not over-allocate space
...
We currently allocate 18 bytes too much:
https://github.com/rfjakob/gocryptfs/issues/311
2019-01-06 20:56:53 +01:00
Jakob Unterwurzacher
c83aa417e4
tests: move fallocate tests to its own file
...
matrix_test.go is already too big.
2019-01-06 20:31:41 +01:00
Jakob Unterwurzacher
db425cab9e
tests: TestFallocate: comment what "d" and "h" means
...
Document what "d" and "h" means in the fancy ASCII diagrams.
https://github.com/rfjakob/gocryptfs/pull/326
2019-01-06 12:49:27 +01:00
Jakob Unterwurzacher
fb705f9978
tests: add parallel_cp stress test
...
Modeled after xfstests generic/273
https://github.com/rfjakob/gocryptfs/issues/322
2019-01-05 18:20:04 +01:00
Sebastian Lackner
5055f39bd5
fusefrontend: Allow to set/remove xattr on directory without read permission.
...
Setting/removing extended attributes on directories was partially fixed with
commit eff35e60b6
. However, on most file systems
it is also possible to do these operations without read access (see tests).
Since we cannot open a write-access fd to a directory, we have to use the
/proc/self/fd trick (already used for ListXAttr) for the other operations aswell.
For simplicity, let's separate the Linux and Darwin code again (basically revert
commit f320b76fd1
), and always use the
/proc/self/fd trick on Linux. On Darwin we use the best-effort approach with
openBackingFile() as a fallback.
More discussion about the available options is available in
https://github.com/rfjakob/gocryptfs/issues/308 .
2019-01-05 12:34:40 +01:00
Sebastian Lackner
f17721c364
A few more spelling fixes.
2019-01-05 12:27:55 +01:00
Jakob Unterwurzacher
65eded4a22
tests: bump maxCacheFds to 3
...
As the dirCache now has 3 entries, the tests should accept
up to 3 extra fds without declaring an fd leak.
2019-01-04 23:50:01 +01:00
Jakob Unterwurzacher
eff35e60b6
fusefrontend: fix setting xattrs on directories
...
Directories cannot be opened read-write. Retry with RDONLY.
2019-01-04 22:22:24 +01:00
Jakob Unterwurzacher
58f62ada46
tests: reverse: verify that longname .name files are exluded as well
...
Currently fails, will be fixed in the next commit.
https://github.com/rfjakob/gocryptfs/issues/286
2019-01-04 17:57:57 +01:00
Jakob Unterwurzacher
a2f83acc30
tests: fix VerifyExistence() helper, it missed unstat()able files
...
VerifyExistence missed unstat()able files in the directory listing
because ioutil.ReadDir() filtered them out.
https://github.com/rfjakob/gocryptfs/issues/285
2019-01-04 17:36:06 +01:00
Jakob Unterwurzacher
1c9fb707fe
tests: overengineer extractloop_plot_csv.m a little
...
Plot iteration time on second y axis, adjust line styles
2019-01-03 18:24:14 +01:00
Sebastian Lackner
a1ba4b6576
Omit syscall.O_RDONLY flag when passing O_PATH.
...
When O_PATH is specified in flags, flag bits other than O_CLOEXEC, O_DIRECTORY,
and O_NOFOLLOW are ignored.
2019-01-03 18:24:05 +01:00
Jakob Unterwurzacher
71d07b7c73
tests: extractloop: renice to level 19
...
Run at low priority to not annoy the user too much.
2019-01-03 16:14:05 +01:00
Jakob Unterwurzacher
bb9884549b
tests: allow one extra fd in fd leak detector (dirCache)
...
The gocryptfs process may keep one fd open for up to one second
in the dirCache.
2019-01-03 15:38:51 +01:00
Jakob Unterwurzacher
f6dad8d0fa
nametransform: simplify WriteDirIV to WriteDirIVAt
...
Un-spaghettify the function and let the callers open
the directory.
2019-01-03 15:31:13 +01:00
Jakob Unterwurzacher
59f1300591
tests: retry longer when we see a fd leak
...
Hopefully gets rid of the false positives on travis.
2019-01-02 21:03:26 +01:00
Jakob Unterwurzacher
d269c28d16
tests: xattr: set on 0200 file, list on 0000 file
...
https://github.com/rfjakob/gocryptfs/issues/308
2019-01-02 20:45:55 +01:00
Jakob Unterwurzacher
55a27a47df
tests: better error message for TestBase64XattrRead
...
Make clear what we have and what we want.
2019-01-02 16:55:51 +01:00
Jakob Unterwurzacher
772afa93f9
tests: add fd leak retry logic to UnmountErr, really return error
...
Give the gocryptfs process one extra millisecond to close
files. Allows us to drop several other sleeps.
UnmountErr now really returns an error when it detects an fd leak
instead of just printing a message.
2019-01-02 01:09:09 +01:00
Jakob Unterwurzacher
d5a74d2a3e
tests: ListFds(): filter out pipe and eventpoll fds
...
These are created on demand by the Go runtime and are usually
not interesting.
2019-01-02 00:09:17 +01:00
Jakob Unterwurzacher
b1819143c5
tests: make MountInfo field accessible
...
Tests outside the test_helpers package may want to look
at this.
2019-01-02 00:09:17 +01:00
Jakob Unterwurzacher
035b3367b7
tests: reverse: add ctlsocket cleanup delay
2019-01-02 00:09:17 +01:00
Jakob Unterwurzacher
035834dd51
tests: ListFds: show r/w status
...
Also, drop entries that disappear while we stat them.
2019-01-01 22:27:40 +01:00
Jakob Unterwurzacher
e276e255dc
tests: split mount_unmount.go from helpers.go
...
With the FD leak logic, the mount/unmount functions have
become complex enough to give them their own file.
2019-01-01 22:27:10 +01:00
Jakob Unterwurzacher
10de105c13
tests: detect fd leaks on unmount
...
For now, this only prints a message but does not fail the tests.
2019-01-01 22:01:49 +01:00
Jakob Unterwurzacher
887d5aa8e7
tests: teach ListFds() to check other processes
2019-01-01 20:05:38 +01:00
Jakob Unterwurzacher
817c485bb7
tests: save gocryptfs process id in test_helpers.MountPID
...
This will allow to tests to monitor fd usage and maybe other things.
2019-01-01 19:34:12 +01:00
Jakob Unterwurzacher
60e7a0ca9f
fusefrontend: xattr: fix hang on FIFOs
...
An Open() a fifo blocks until it is opened for writing.
This meant that xattr operations on FIFOs would block.
Pass O_NONBLOCK to fix that, and add a test.
2019-01-01 16:24:25 +01:00
Jakob Unterwurzacher
2286372603
fusefrontend: make GetXAttr() symlink-safe on Linux
...
Uses the /proc/self/fd trick, which does not work
on Darwin.
2019-01-01 16:24:25 +01:00
Jakob Unterwurzacher
b97d7d1d33
tests: add Flistxattr/Fgetxattr/Fremovexattr tests
...
Test for the upcoming fd-based xattr support.
2019-01-01 16:24:25 +01:00
Jakob Unterwurzacher
ed6ed513d7
fusefrontend: make Access() symlink-safe.
...
Make Access() symlink-safe through use of faccessat.
2019-01-01 16:24:09 +01:00
Sebastian Lackner
874eaf9734
Assorted spelling fixes.
...
Mostly detected with the 'codespell' utility, but also includes some
manual grammar fixes.
2018-12-27 15:19:55 +01:00
Jakob Unterwurzacher
e537ecbe2e
tests: fix golint error
...
Error was:
tests/cli/cli_test.go:552: declaration of "err" shadows declaration at tests/cli/cli_test.go:544
2018-10-11 20:57:52 +02:00
Jakob Unterwurzacher
04241455a2
tests: add idle timeout test
...
Mount with idle timeout 10ms and check that the process exits by itself
within 5 seconds.
2018-10-11 20:43:28 +02:00
Jakob Unterwurzacher
4f2feb1be7
tests: catch "name too long" symlink failure on XFS
...
Retry with length 1000 if length 4000 fails, which
should work on all filesystems.
Failure was:
--- FAIL: TestTooLongSymlink (0.00s)
correctness_test.go:198: symlink xxx[...]xxxx /tmp/xfs.mnt/gocryptfs-test-parent/549823072/365091391/TooLongSymlink: file name too long
https://github.com/rfjakob/gocryptfs/issues/267
2018-10-10 22:40:55 +02:00
Jakob Unterwurzacher
5a1ebdb4f7
tests: respect TMPDIR if set
...
Setting TMPDIR now allows to run the tests against
a directory of your choice, making it easier to test
different filesystems.
2018-10-10 22:24:20 +02:00
Jakob Unterwurzacher
c270b21efc
fusefrontend: get rid of os.File* wrapping
...
Directly use int file descriptors for the dirfd
and get rid of one level of indirection.
2018-09-23 12:17:26 +02:00
Jakob Unterwurzacher
05c8d4a1c4
tests: add symlink_race tool
...
Help uncover symlink races.
2018-09-23 12:17:26 +02:00
Jakob Unterwurzacher
9e6ee47bc9
tests: detect and report chmod failures earlier
...
Instead of reporting the consequence:
matrix_test.go:906: modeHave 0664 != modeWant 0777
Report it if chmod itself fails, and also report the old file mode:
matrix_test.go:901: chmod 000 -> 777 failed: bad file descriptor
2018-09-22 13:39:17 +02:00
Jakob Unterwurzacher
5ca6243eeb
main: sanitize commas from fsname
...
The cipherdir path is used as the fsname, as displayed
in "df -T". Now, having a comma in fsname triggers a sanity check
in go-fuse, aborting the mount with:
/bin/fusermount: mount failed: Invalid argument
fuse.NewServer failed: fusermount exited with code 256
Sanitize fsname by replacing any commas with underscores.
https://github.com/rfjakob/gocryptfs/issues/262
2018-09-18 19:39:52 +02:00