54 lines
1.6 KiB
Markdown
54 lines
1.6 KiB
Markdown
# arti-testing
|
|
|
|
Tool for running an Arti client with unusual behavior or limitations.
|
|
|
|
Example use:
|
|
|
|
```sh
|
|
$ 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.
|
|
|
|
License: MIT OR Apache-2.0
|