[tor-dev] Quickly testing TOR using Chutney and Fluxcapacitor

Marek Majkowski marek at popcount.org
Sun Sep 8 16:35:24 UTC 2013


Tor ships with some testing facilities (tor/src/test/test), but they
are not comprehensive.  (I'm aware there's an ongoing effort on
improving these tests).

To test anything non trivial it is necessary to run a tor node as a
part of a tor network. There is another tool called chutney [1] that
can be used to set up a small testing Tor network: it generates plenty
of torrc configs and spawns a number of Tor servers locally.

This is very handy, but it can take a while before the network starts
working - the Auth servers need to establish the consensus and do all
the things I have no clue about.

Here's a simple shell script [2]:
 - It uses chutney to start a testing tor network.
 - It waits for it to work by trying to establish a connection to localhost:22.
 - Finally it tears down the network.

Normally it takes around 5 minutes for the network to converge:

$ time ./go.sh
real    4m8.330s
user    0m2.064s
sys     0m0.392s

Of course, you don't have to set a completely fresh Tor network for
every single test, but that's what I often do. I'd be eager to hear
how people are reusing chutney networks.

In past I wrote this thing called fluxcapacitor [3], it's a tool that
speeds up tests. After a few fixes I was able to run chutney on it:

$ time /tmp/fluxcapacitor/fluxcapacitor ./go.sh

real    0m11.450s
user    0m2.340s
sys     0m2.120s

Running stuff under fluxcapacitor is not deterministic, sometimes it
takes 8 seconds, sometimes 15 but it generally works and should go
pretty quick.

That's it. I thought someone may find it useful.

Cheers,
    Marek


[1] https://gitweb.torproject.org/chutney.git
[2] https://github.com/majek/dump/blob/master/tor/go.sh
[3] https://github.com/majek/fluxcapacitor.git


More information about the tor-dev mailing list