-
Notifications
You must be signed in to change notification settings - Fork 3
/
TODO
90 lines (81 loc) · 3.65 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
- default behavior in testmod.py of catching all exceptions is extremely
annoying when debugging a test, when it would be useful to have full
backtrace. For now workaround is to patch like:
--- a/nfs4.0/testserver.py
+++ b/nfs4.0/testserver.py
@@ -364,6 +364,8 @@ def main():
pickle.dump(tests, fd, 0)
if not clean_finish:
nfail = testmod.printresults(tests, opt)
+ except:
+ raise
try:
fail = False
env.finish()
- need BIND_CONN_TO_SESSION, other trunking tests.
- jlayton suggests: open and get a delegation or try to get a
blocking lock, close socket, break deleg/drop conflicting
lock, open new socket, BIND_CONN_TO_SESSION, see if you get
the callback.
- same sort of test but bind several connections, close all
sockets but one and see if the callback gets through
- need more tests using malformed XDR. See e.g. kernel commit fc788f64f1f3
- test permission-checking:
- example, probably pre-4.3 failure:
- get delegation on file not readable by uid 1.
- as uid 1:
- [putfh, read] with putfh for filehandle
readable by uid 1, but read using deleg
stateid.
- fail if the read succeeds.
- in absence of explicit --minorversion, allow negotiating versions as
necessary to run all tests.
- Create a new INFO result, lower-priority than WARN or FAIL, but that
might tell you interesting things about the server. (E.g., whether it
supports some optional feature. In which case further tests may
depend on it in some way.) ? Actually, note there's already an
UNSUPPORTED result--maybe we just need to make better use of that.
- Just out of curiosity--it would be interesting to open a file and then
rename it, to see whether a server allows it or returns
NFS4ERR_FILE_OPEN. (Either is OK.)
- I suspect we're sloppy about cleaning up state. E.g. make sure opens
are normally closed.
- make block/char/etc tests more automatic: use an INFO level test to
probe whether the server allows creating these things as a regular
user, or as root, give an INFO level result, and make further tests
depend on this somehow. SATT18 and possibly others could also use
some sort of "needs root" tag.
- Search for other similar pieces between 4.0 and 4.1 which can obviously be
shared--any .x files?
- compound length problem:
- everything should start with putfh of root of testdir rather
than of root!
- first make use_obj an NFS4Client method, or replace it
by one that is.
- then teach it to do absolute lookups (paths beginning
with one '' component) and lookups relative to test root,
simultaneously making all paths absolute (probably
that's just --useXXX paths and homedir path).
- then slowly start using relative paths in various
places.
- break up lookup into multiple compounds?
- consider also whether server could allow more.
- Also track down remaining failures, reexamine skip lists.
- Basic v4.0 DRC test.
- More reorganization to make 4.0&4.1 directories parallel:
- note nfs4client.py is false parallelism.
- make testserver.py work for both, move to top level?
- revisit Fred's email
- Add pynfs test to make sure server allows reclaims on next
reboot iff client has done reclaim_complete? Unfortunately
I think this would be linux-specific. What to do?:
- lock(file, range 0-2)
- send reclaim_complete
- reboot
- reclaim lock(file, range 3-4)
- reboot
- reclaim lock(file, range 3-4)
- if second succeeds (so server does not track individual
locks), then second should fail (because client did
not reclaim_complete)
? But that's still not completely right