[tor-commits] r26098: {website} Adding a project to expand stem's tests to more dedicatedly (website/trunk/getinvolved/en)

Damian Johnson atagar1 at gmail.com
Sat Mar 9 06:41:12 UTC 2013


Author: atagar
Date: 2013-03-09 06:41:12 +0000 (Sat, 09 Mar 2013)
New Revision: 26098

Modified:
   website/trunk/getinvolved/en/volunteer.wml
Log:
Adding a project to expand stem's tests to more dedicatedly test tor

This is a project that I have been batting around with Nick for a bit. It
doesn't include the 'grand vision' he wants for covering inter-network
components, but it would provide dedicated tests for a very substantial portion
of Tor's codebase.

While I think a more complicated network simulator and testing suite would
yield greater benefits, I also think it would be *vastly* harder to make and
hence quite likely to never happen. Presently our automated testing of Tor is
pretty poor and there's no need to let the perfect be the enemy of the good on
this.



Modified: website/trunk/getinvolved/en/volunteer.wml
===================================================================
--- website/trunk/getinvolved/en/volunteer.wml	2013-03-09 02:40:52 UTC (rev 26097)
+++ website/trunk/getinvolved/en/volunteer.wml	2013-03-09 06:41:12 UTC (rev 26098)
@@ -660,7 +660,8 @@
 
     <p>
     <b>Project Ideas:</b><br />
-    <i><a href="#stemUsability">Stem Usability and Porting</a></i>
+    <i><a href="#stemUsability">Stem Usability and Porting</a></i><br />
+    <i><a href="#stemTestingForTor">Stem Tests for Tor</a></i>
     </p>
 
     <a id="project-txtorcon"></a>
@@ -1694,6 +1695,37 @@
     <b>As part of your application for this project please write a script that does something interesting with stem.</b> Bonus points if this is something that we can <a href="https://stem.torproject.org/tutorial.html">make a tutorial</a> around!
     </p>
 
+    <a id="stemTestingForTor"></a>
+    <li>
+    <b>Stem Tests for Tor</b>
+    <br>
+    Effort Level: <i>Medium</i>
+    <br>
+    Skill Level: <i>Medium</i>
+    <br>
+    Likely Mentors: <i>Damian (atagar)</i>
+    <p>
+    Stem is a library for interacting with Tor (see '<a href="#stemUsability">Stem Usability and Porting</a>' above for a summary). The library has both <a href="https://gitweb.torproject.org/stem.git/tree/HEAD:/test/unit">unit</a> and <a href="https://gitweb.torproject.org/stem.git/tree/HEAD:/test/integ">integration</a> tests. The unit tests provide a quick, direct test of stem's codebase while the integration test exercises its functionality against a live instance of Tor.
+    </p>
+
+    <p>
+    Stem's integration tests have thus far been (unsurprisingly) designed to test stem but there's no need for them to be limited to that. Stem is a complete implementation of Tor's <a href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt">control-spec</a> and <a href="https://gitweb.torproject.org/torspec.git/blob/HEAD:/dir-spec.txt">dir-spec</a>. As such, stem's tests could be easily expanded to more dedicatedly test behavior involved in those portions of Tor's codebase, as well as provide a smoke test for its general functionality.
+    </p>
+
+    <p>
+    This project would involve several components:
+    </p>
+
+    <ol>
+      <li>Determine what kind of tests we need. <b>This should be done during the application phase</b> by <a href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev/">contacting tor-dev@</a>. Hopefully this will give us an idea of what would be the most useful kind of tests of this nature for Tor development.</li>
+      <li>To be useful our integration tests need to continually run against the present tip of Tor's codebase. To do this we'll want to (1) fetch and compile the latest version of Tor, (2) run our integration tests against it, (3) compose the results as an html formatted email, and send it to a list. (<a href="https://trac.torproject.org/8261">ticket</a>)</li>
+      <li>Implement the new suite of integration tests for Tor. This will likely include expanding Tor to support better testability. One useful candidate, for instance, would be a controller method to fetch our own descriptor. This would let us easily test various configurations to see if they provide valid descriptor content.</li>
+    </ol>
+
+    <p>
+    <b>As part of your application for this project please write some code to expand stem's tests.</b> Bonus points if it impelments one of your suggestions for better testing Tor!
+    </p>
+
     <!--
     <a id="tailsServer"></a>
     <li>



More information about the tor-commits mailing list