blob: 1d5d5d18861b27c0785bf2c16e524b296b8a6be5 (
plain)
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
91
|
Nick's goals:
go from "cautiously optimistic on the approach" to "workable" or
"unworkable".
come up with "my favorite tests" and verify that they're
implementable by me
The main criterion:
* "can a general person who is not familiar with the system write
a useful test?"
* "can a person with zero knowledge of the system run the
resulting tests?"
Portability notes:
supported Debian & Fedora releases
XP & later
10.5 & later
all other unixes: support on demand
marginal:
Win2k
OS X 10.4
Tests X Networks:
functional tests:
does the network bootstrap?
can I reach foo.com?
can I reach a hidden service?
can I reach the client's DNS "resolver"?
can I use the server's DNS client?
no crashes are observed under any test inputs?
map address functionality works?
do all of socks 4, 4a, 5 work?
(w/ two versions of tor?)
(w/ tor running on three platforms?)
"run the fast machine stuff"
"pick up after a test failed"
"run a test by name"
"run tests in parallel"
bridge-related stuff:
run a network with bridges on it
make sure that clients can use bridges
make sure that bridges announce themselves to a bridge authority
testable invariants & surprises:
all circuits get built "correctly"
almost always, keep some clean circuits connected to useful
exit nodes
tricky stuff:
unusually configured clients
(i.e. options for specifying what nodes tor will use for
building paths)
stream isolation design
load tests
(short, medium, and long-term)
configuration transitions
familialy related nodes should not be used in the same circuit
demonstrate that, for all inputs, no crashes occur
assertions made in the man page & specs:
bandwidth limiting works
bandwidth accounting works
clients respect advertised exit policies
advertised exit policies are enforced
Information flows:
what networks are statically feasible for the given tests?
are there ever flows from the tests to the networks?
even if there are: aren't they just "requirements"
query the network and its nodes for config data
Implementation questions:
Twisted?
something Erlang-ish?
(neither of us is thrilled with expect...)
|