| 1 | {% extends "_layout.html" %} |
|---|
| 2 | {% block title %}Bounty unittests{% endblock %} |
|---|
| 3 | {% block content %}<p>To improve I2P's maintainability, we want to have a solid set of |
|---|
| 4 | automated unit tests for the critical code. While we do have some |
|---|
| 5 | unit tests at the moment, they are ad-hoc and partly unfinished. |
|---|
| 6 | This bounty is for someone to check the existant tests and move over |
|---|
| 7 | old ones to jUnit, automate their execution, extend them to provide |
|---|
| 8 | better code coverage, and publish the report online. Its a massive |
|---|
| 9 | effort, but can be broken down into phases, listed below (phase 2 |
|---|
| 10 | must occur first, but further phases may happen in any order). |
|---|
| 11 | As this needs some reading of code, it is the best start point for |
|---|
| 12 | new devs to get a good overview of I2P code and coding. A good job |
|---|
| 13 | for college students, interns or anyone who is just interested. |
|---|
| 14 | </p> |
|---|
| 15 | |
|---|
| 16 | <h2>Phase 1: <a name="jenkins">CI jenkins and IRC bot</a></h2> |
|---|
| 17 | <b>Bounty: </b><i>in work by MathisDM</i><br /> |
|---|
| 18 | |
|---|
| 19 | <p>To collect this bounty, a continuous integration server (Jenkins, |
|---|
| 20 | old name was Hudson) must be set up and a connected IRC bot needs |
|---|
| 21 | to set up in the channel #i2p-dev on IRC2p network to print out |
|---|
| 22 | results of build tests.<br> |
|---|
| 23 | The server needs to be run long term. |
|---|
| 24 | </p> |
|---|
| 25 | <br> |
|---|
| 26 | |
|---|
| 27 | <h2>Phase 2: <a name="sdk">Check existing SDK tests </a></h2> |
|---|
| 28 | <b>Bounty: </b> <br /> |
|---|
| 29 | |
|---|
| 30 | <p>To collect this bounty, the existing SDK tests must be checked |
|---|
| 31 | and made to work again. The need to be integrated into the ant |
|---|
| 32 | build scripts ("ant test"), and tied in with a code coverage tool (e.g. |
|---|
| 33 | <a href="http://www.cenqua.com/clover/">Clover</a>). The ant script |
|---|
| 34 | must be capable of generating test status results as a web page, |
|---|
| 35 | which will be published online.</p> |
|---|
| 36 | <br> |
|---|
| 37 | |
|---|
| 38 | <h2>Phase 3: <a name="sdk_coverage">SDK test coverage</a></h2> |
|---|
| 39 | <b>Bounty: </b><br /> |
|---|
| 40 | |
|---|
| 41 | <p>To collect this bounty, the automated unit tests must meet a |
|---|
| 42 | measured code coverage of 90% of the SDK (i2p/core/java/src).</p> |
|---|
| 43 | |
|---|
| 44 | <h2>Phase 4: <a name="router">Router test migration</a></h2> |
|---|
| 45 | <b>Bounty: </b><br /> |
|---|
| 46 | |
|---|
| 47 | <p>As with phase 2, the existing unit tests for the router must be |
|---|
| 48 | moved over to the automated system.</p> |
|---|
| 49 | |
|---|
| 50 | <h2>Phase 5: <a name="router_coverage">Router test coverage</a></h2> |
|---|
| 51 | <b>Bounty: </b><br /> |
|---|
| 52 | |
|---|
| 53 | <p>To collect this bounty, the automated unit tests must meet a |
|---|
| 54 | measured code coverage of 90% of the router (i2p/router/java/src).</p> |
|---|
| 55 | |
|---|
| 56 | <h2>Phase 6: <a name="streaming">Streaming lib tests</a></h2> |
|---|
| 57 | <b>Bounty: </b><br /> |
|---|
| 58 | |
|---|
| 59 | <p>To collect this bounty, a new set of unit tests must meet a |
|---|
| 60 | measured code coverage of 90% of the streaming lib |
|---|
| 61 | (i2p/apps/ministreaming/ and i2p/apps/streaming/).</p> |
|---|
| 62 | |
|---|
| 63 | <h2>Phase 7: <a name="multirouter">MultiRouter simulation</a></h2> |
|---|
| 64 | <b>Bounty: </b><br /> |
|---|
| 65 | |
|---|
| 66 | <p>To collect this bounty, the existant in-memory multi-router |
|---|
| 67 | simulation must be checked, made work again and extend to simulate |
|---|
| 68 | lots of routers in memory on a single machine. |
|---|
| 69 | </p> |
|---|
| 70 | |
|---|
| 71 | <p> |
|---|
| 72 | Judge on all these works is the donor and donor decides if a phase is |
|---|
| 73 | called succesfull done and money can be paid. |
|---|
| 74 | </p> |
|---|
| 75 | |
|---|
| 76 | <p><i>Note: bounty amounts may be increased by further donations. Do |
|---|
| 77 | you think these are important? <a href="donate">Add in your donation</a>, |
|---|
| 78 | marking the amount for the unit test bounty!</i></p> |
|---|
| 79 | {% endblock %} |
|---|