[tor-dev] First test "report"

Esteban Manchado Velázquez emanchado at demiurgo.org
Sat Feb 11 12:12:25 UTC 2012

Hi there,

I'm done with the first batch of work on the test side. You have the  
(rebased just now) work here:  
https://github.com/emanchado/tor/commits/master. The rest of this e-mail  
summarises what I've done and explains my plan for further work.

The content of the commits
I have reviewed the whole test_util.c and made three kinds of changes:

1. Added more tests. Some of them failed, and after checking with other  
people on IRC the conclusion seems to be that they should pass (ie. they  
reproduce actual bugs in the code). To keep the test suite from failing,  
they are inside "#if 0" blocks. So someone should look for "#if 0" inside  
test_util.c and fix the code that makes those fail. Or maybe I should file  
bugs for those?

2. In comparison assertions, the general convention seems to be to place  
the expected value first ("test_eq(0, functioncall(...))" rather than  
"test_eq(functioncall(...), 0)"). I have modified the assertions not  
following that convention, so they all look the same.

3. General clean up, small code reorganisations, fix typos and such. Eg, I  
have turned all the "tt_int_op(a, ==, b)" into "test_eq(a, b)".

I was thinking of blogging about what I saw (esp. related to point 1). I  
think there are valuable lessons to be learned, which will help other  
people writing tests (both for Tor and outside of Tor). I'm not sure if  
there's enough content for a blog post, but if I do it after all, should I  
post the link here?

Plan for the future

As I haven't explored coverage yet, I'll start with that for the code in  
src/common/ and see what I can do. My gut feeling (without having looked  
at other parts of the code yet!) is that tackling unit tests for code in  
src/or/ will be hard for me, and it seems better to explain what kind of  
things I have done in src/common/ so others, more familiar with that code,  
can fix/improve the unit tests for src/or/*. In other words, it seems much  
more effective for me to support someone who knows the code in src/or/*,  
rather than the other way around.

After I'm done with what I think is easy enough for me to do with the unit  
tests, I'll have a look at Stem (Damian's suggestion) and chutney (Nick's  
suggestion), and decide what I do next.


More information about the tor-dev mailing list