The following inventory was last updated 2013-08-24. It was current then. Things might have changed since. Methodology was pretty rough: pick the list of all repository on git.torproject.org and have a quick look at each source tree to see if unit and integration tests were easily locatable.
Columns marked with an 'X' do not necessarily mean full coverage, but that there is at least a framework where new tests can be added. Unit means “unit tests”, Regr. means "regression tests", Integ. means “integration tests” and C.I. means “continuous integration” (tests/builds automatically run after each commit).
Repository | Description | Unit | Regr. | Integ. | C.I. | Languages | Comments |
---|---|---|---|---|---|---|---|
arm.git | Command-line status monitor... | Python | |||||
atlas.git | A web application to discover... | JavaScript (web) | |||||
brdgrd.git | Protects Tor bridges from... | C | Is brdgrd still useful? | ||||
bridgedb.git | The bridge distribution database | X | This test suite runs the old unittests twice, monkeypatching in the old code and the new code rsp., to guarantee compatible behaviour with unchanged code. | Fake bridge descriptors are generated with Leekspin for testing purposes. | X | Python | Missing Nagios checks for the reachability of the BridgeDB service on the production server. |
There is currently a staging instance (only run while being actively tested) setup on the production server, however, because BridgeDB's [mailto:bridges@torproject.org email distributor] cannot have two instances running on the same server, there is a new dedicated server for the staging instances which needs to be finished being setup. | |||||||
builders/gitian-builder.git | Tor's version of the gitian... | Ruby, Shell | |||||
builders/tor-browser-bundle.git | Build scripts for the Tor... | Shell | Should the build system itself be tested? Probably just the result… | ||||
chutney.git | The chutney tool for testing... | Python | |||||
compass.git | Script and website to extract... | Python + webdev | Also missing a staging environment and Nagios checks | ||||
flashproxy.git | Browser-based proxy | Py, JS, Go | Also missing a staging environment and Nagios checks for the facilitator (?) | ||||
gettor.git | Distributors for the Tor softw... | Python | Also missing a staging environment and Nagios checks | ||||
githax.git | Miscellaneous git support... | Shell, Perl, Py | |||||
metrics-db.git | Metrics data processor and... | Java | Staging? Nagios checks? | ||||
metrics-lib.git | A Java library that fetches... | X | Java | phased out for Stem | |||
metrics-utils.git | Metrics utilities | Java, Python | Contains ExoneraTor and VisiTor. Repository should be split. ExanoraTor should have a staging environment and Nagios checks | ||||
metrics-web.git | Metrics website | Java + webdev | Staging? Nagios checks? | ||||
onionoo.git | A web-based protocol to learn... | X | Java | Staging? Nagios checks? | |||
ooni-probe.git | open observatory of network... | X | Python | C.I done by Travis | |||
ooni/oonib.git | open observatory of network... | X | Python | C.I done by Travis. Staging? Nagios checks? | |||
pluggable-transports/bundle.git | Pluggable transports browser... | Makefile | |||||
pluggable-transports/obfsproxy.git | Python pluggable transport... | X | X | X | Python | ||
pluggable-transports/pyptlib.git | Python pluggable transport... | X | X | Python | |||
pyonionoo.git | A web-based protocol to learn... | Python | |||||
stegotorus.git | Steganographic stealth proxy... | X | X | C++ | |||
stem.git | Tor control library for Python | X | X | X | Python | C.I. also doing integration test for tor control port code | |
tlsdate.git | Learn the current time from... | X | X | C | |||
tor-browser.git | The Tor Browser | X | X | C++ | TBB patches are breaking some tests | ||
tor-cloud.git | Tor images for the cloud | Shell | |||||
tor-launcher.git | tor-launcher component of TBB | JavaScript / XUL | Might not really be testable outside TBB | ||||
tor-ramdisk.git | Build system for x86/x86_64... | Shell | |||||
tor.git | Tor's source code | X | X | C | C.I. for Linux, Windows, Linux with clang | ||
torbirdy.git | Torbutton for Thunderbird... | JavaScript / XUL | |||||
torbrowser.git | Scripts to build the Tor Brows... | Shell | |||||
torbutton.git | Firefox extension for safe... | JavaScript / XUL | Might not really be tesable outside TBB | ||||
tordnsel.git | DNS exitlist checker | X | Haskell | ||||
torflow.git | Python tools for measuring... | X | Python | Not all components have unit tests | |||
torouter.git | Torouter packaging utensils... | Shell, Makefile | |||||
torperf.git | Tor performance evaluation... | Python, C | |||||
torsocks.git | Wrapper to safely torify appli... | X | C | ||||
translation-tools.git | tools to manage the translatio... | Shell | |||||
weather.git | Email alerts for Tor relay... | Python | Also missing a staging environment and Nagios checks | ||||
webstats.git | Code and website to sanitize... | Java | |||||
Not considered: |
Repository | Description | Reason |
---|---|---|
doctor.git | service that periodically... | Java version being phased out for Python+Stem |
https-everywhere.git | HTTPS Everywhere Firefox Addon | Not maintained by the Tor Project |
jtor.git | Java implementation of the... | Not maintained by the Tor Project |
metrics-tasks.git | Technical reports and code... | Almost all are one shot scripts |
orbot.git | Orbot: Tor on Android | Not maintained by the Tor Project |
pytorctl.git | Tor control library for Python | Users should migrate to Stem |
Deprecated or abandoned projects:
Repository | Description |
---|---|
apaf.git | Anonymous Python Application... |
jtorctl.git | Tor controller, written in... |
pluggable-transports/obfsproxy-legacy.git | The old (pre 2013) obfuscating... |
puppetor.git | A controller for private networks |
thandy.git | Tor's secure updater |
torbel.git | Tor exit list exporter and... |
torstatus.git | Web tool to display informatio... |
vidalia-plugins.git | Vidalia plugins |
vidalia.git | Vidalia's source code |
Misc. resources: