Expand description
Tool for running an Arti client with unusual behavior or limitations.
Example use:
$ cat ~/.arti_testing.toml
[storage]
cache_dir = "${USER_HOME}/.arti_testing/cache"
state_dir = "${USER_HOME}/.arti_testing/state"
$ ./target/debug/arti-testing bootstrap --config ~/.arti-testing.toml \
--timeout 120 --expect=success
[...lots of logs]
Operation succeeded [as expected]
TCP stats: TcpCount { n_connect_attempt: 4, n_connect_ok: 2, n_accept: 0, n_bytes_send: 461102, n_bytes_recv: 3502811 }
Total events: Trace: 6943, Debug: 17, Info: 13, Warn: 0, Error: 0
$ faketime '1 year ago' ./target/debug/arti-testing connect \
--config ~/.arti-testing.toml
--target www.torproject.org:80
--timeout 60
--expect=timeout
[...lots of logs...]
Timeout occurred [as expected]
TCP stats: TcpCount { n_connect_attempt: 3, n_connect_ok: 3, n_accept: 0, n_bytes_send: 10917, n_bytes_recv: 16704 }
Total events: Trace: 77, Debug: 21, Info: 10, Warn: 2, Error: 0
ยงTODO
-
More ways to break
- make TCP connections fail only sporadically
- make TLS fail
- With wrong cert
- Mysteriously
- With complete junk
- TLS succeeds, then sends nonsense
- Authenticating with wrong ID.
- Munge directory before using it
- May require some dirmgr plug-in. :p
- May require
-
More things to look at
- do something on the connection
- look at bootstrapping status and events
- Make streams repeatedly on different circuits with some delay.
-
Make sure we can replicate all/most test situations from arti#329
-
Actually implement those tests.
Modulesยง
- config ๐Reading configuration and command line issues in arti-testing.
- dirfilter ๐Support for modifying directories in various ways in order to cause different kinds of network failure.
- rt ๐Runtimes designed for testing.
- traces ๐Code to count the traces at different severities.
Structsยง
- Job ๐Descriptions of an action to take, and what to expect as an outcome.
- TcpBreakage ๐Describes how (if at all) to break TCP connection attempts
Enumsยง
- Action ๐A possible action for the tool to try to take
- Breakage
Stage ๐At what stage to install a kind of breakage - Expectation ๐What we expect to happen when we run a given job.
Functionsยง
- main ๐