This commit is contained in:
echelon
2012-02-12 11:11:29 +00:00
parent df92c58e1c
commit d25ffdbd8a

View File

@ -2,56 +2,77 @@
{% block title %}Bounty unittests{% endblock %}
{% block content %}<p>To improve I2P's maintainability, we want to have a solid set of
automated unit tests for the critical code. While we do have some
unit tests at the moment, they are ad-hoc. This bounty is for
someone to move the tests over to jUnit, automate their execution,
extend them to provide better code coverage, and publish the report
online. Its a massive effort, but can be broken down into phases,
listed below (phase 1 must occur first, but further phases may happen
in any order)</p>
<p>
NOTICE: this is the old state of the bounty, new state is in work!
unit tests at the moment, they are ad-hoc and partly unfinished.
This bounty is for someone to check the existant tests and move over
old ones to jUnit, automate their execution, extend them to provide
better code coverage, and publish the report online. Its a massive
effort, but can be broken down into phases, listed below (phase 2
must occur first, but further phases may happen in any order).
As this needs some reading of code, it is the best start point for
new devs to get a good overview of I2P code and coding. A good job
for college students, interns or anyone who is just interested.
</p>
<h2>Phase 1: <a name="sdk">SDK test migration</a></h2>
<b>Bounty: $300</b> <i>CLAIMED! By ComWiz</i><br />
<h2>Phase 1: <a name="jenkins">CI jenkins and IRC bot</a></h2>
<b>Bounty: <EFBFBD></b><i>in work by MathisDM</i><br />
<p>To collect this bounty, the existing SDK tests must be moved over
to jUnit, integrated into the ant build scripts ("ant test"), and
tied in with a code coverage tool (e.g.
<p>To collect this bounty, a continuous integration server (Jenkins,
old name was Hudson) must be set up and a connected IRC bot needs
to set up in the channel #i2p-dev on IRC2p network to print out
results of build tests.<br>
The server needs to be run long term.
</p>
<br>
<h2>Phase 2: <a name="sdk">Check existing SDK tests </a></h2>
<b>Bounty: <20></b> <br />
<p>To collect this bounty, the existing SDK tests must be checked
and made to work again. The need to be integrated into the ant
build scripts ("ant test"), and tied in with a code coverage tool (e.g.
<a href="http://www.cenqua.com/clover/">Clover</a>). The ant script
must be capable of generating test status results as a web page,
which will be published online.</p>
<br>
<p>
This was done by ComWiz but is currently heavyly outdated.<br>
New Phase 1: make sure the core unit tests work.
</p>
<h2>Phase 2: <a name="sdk_coverage">SDK test coverage</a></h2>
<b>Bounty: $300</b><br />
<h2>Phase 3: <a name="sdk_coverage">SDK test coverage</a></h2>
<b>Bounty: <EFBFBD></b><br />
<p>To collect this bounty, the automated unit tests must meet a
measured code coverage of 90% of the SDK (i2p/core/java/src).</p>
<h2>Phase 3: <a name="router">Router test migration</a></h2>
<b>Bounty: $300</b><br />
<h2>Phase 4: <a name="router">Router test migration</a></h2>
<b>Bounty: <EFBFBD></b><br />
<p>As with phase 1, the existing unit tests for the router must be
<p>As with phase 2, the existing unit tests for the router must be
moved over to the automated system.</p>
<h2>Phase 4: <a name="router_coverage">Router test coverage</a></h2>
<b>Bounty: $300</b><br />
<h2>Phase 5: <a name="router_coverage">Router test coverage</a></h2>
<b>Bounty: <EFBFBD></b><br />
<p>To collect this bounty, the automated unit tests must meet a
measured code coverage of 90% of the router (i2p/router/java/src).</p>
<h2>Phase 5: <a name="streaming">Streaming lib tests</a></h2>
<b>Bounty: $300</b><br />
<h2>Phase 6: <a name="streaming">Streaming lib tests</a></h2>
<b>Bounty: <EFBFBD></b><br />
<p>To collect this bounty, a new set of unit tests must meet a
measured code coverage of 90% of the streaming lib
(i2p/apps/ministreaming/ and i2p/apps/streaming/).</p>
<h2>Phase 7: <a name="multirouter">MultiRouter simulation</a></h2>
<b>Bounty: <20></b><br />
<p>To collect this bounty, the existant in-memory multi-router
simulation must be checked, made work again and extend to simulate
lots of routers in memory on a single machine.
</p>
<p>
Judge on all these works is the donor and donor decides if a phase is
called succesfull done and money can be paid.
</p>
<p><i>Note: bounty amounts may be increased by further donations. Do
you think these are important? <a href="donate">Add in your donation</a>,
marking the amount for the unit test bounty!</i></p>