Files
I2P_Website/i2p2www/pages/site/get-involved/bounties/unit-tests.html

133 lines
4.8 KiB
HTML
Raw Normal View History

{% extends "global/bounty.html" %}
{% block title %}{{ _('Bounty unittests') }}{% endblock %}
{% block donatename %}{{ _('unit test') }}{% endblock %}
{% block bountydetails %}
2013-01-15 19:12:10 +00:00
<!-- file version 2013.01.15.01 -->
<p>{% trans -%}
To improve I2P's maintainability, we want to have a solid set of
2005-04-20 22:03:26 +00:00
automated unit tests for the critical code. While we do have some
2012-02-12 11:11:29 +00:00
unit tests at the moment, they are ad-hoc and partly unfinished.
2012-02-12 16:40:27 +00:00
This bounty is for someone to check the existing tests and move over
2012-02-12 11:11:29 +00:00
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.
{%- endtrans %}</p>
<p>{% trans -%}
2013-01-15 19:12:10 +00:00
Take care! Jobs and bounties shuffled a bit!
Phase 6,7 and 8 are still open!
{%- endtrans %}</p>
2013-01-15 19:12:10 +00:00
2005-04-20 22:03:26 +00:00
<h2>{% trans phase=1 %}Phase {{ phase }}:{% endtrans %}
<a name="jenkins">{{ _('CI jenkins and IRC bot') }}</a></h2>
<b>{% trans euro=500 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> <i>{{ _('server runs and this section is blocked') }}</i><br />
2005-04-20 22:03:26 +00:00
<p>{% trans -%}
To collect this bounty, a continuous integration server (Jenkins,
2012-02-12 11:11:29 +00:00
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.
{%- endtrans %}</p>
<br />
2012-02-12 11:11:29 +00:00
<h2>{% trans phase=2 %}Phase {{ phase }}:{% endtrans %}
<a name="sdk">{{ _('Check existing SDK tests') }}</a></h2>
<b>{% trans euro=150 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> {{ _('paid to str4d') }}<br />
2012-02-12 11:11:29 +00:00
<p>{% trans clover='https://www.atlassian.com/software/clover/overview' -%}
To collect this bounty, the existing SDK tests must be checked
2012-02-12 11:11:29 +00:00
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="{{ clover }}">Clover</a>). The ant script
2005-04-20 22:03:26 +00:00
must be capable of generating test status results as a web page,
which will be published online.
{%- endtrans %}</p>
<br />
2005-04-20 22:03:26 +00:00
<h2>{% trans phase=3 %}Phase {{ phase }}:{% endtrans %}
<a name="sdk_coverage">{{ _('SDK test coverage') }}</a></h2>
<b>{% trans euro=200 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> {{ _('paid to unittests dev team') }}<br />
2005-04-20 22:03:26 +00:00
<p>{% trans -%}
2013-01-15 19:12:10 +00:00
To collect this bounty, the automated unit tests of the SDK
(i2p/core/java/src) must work again.
{%- endtrans %}</p>
<br />
2005-04-20 22:03:26 +00:00
<h2>{% trans phase=4 %}Phase {{ phase }}:{% endtrans %}
<a name="router">{{ _('Router test migration') }}</a></h2>
<b>{% trans euro=150 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> {{ _('paid to str4d') }}<br />
2005-04-20 22:03:26 +00:00
<p>{% trans -%}
As with phase 2, the existing unit tests for the router must be
moved over to the automated system.
{%- endtrans %}</p>
<br />
2005-04-20 22:03:26 +00:00
<h2>{% trans phase=5 %}Phase {{ phase }}:{% endtrans %}
<a name="router_coverage">{{ _('Router test coverage') }}</a></h2>
<b>{% trans euro=200 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> {{ _('paid to unittests dev team') }}<br />
2005-04-20 22:03:26 +00:00
<p>{% trans -%}
2013-01-15 19:12:10 +00:00
To collect this bounty, the automated unit tests of the router
(i2p/router/java/src) must work again.
{%- endtrans %}</p>
<br />
2005-04-20 22:03:26 +00:00
<h2>{% trans phase=6 %}Phase {{ phase }}:{% endtrans %}
<a name="streaming">{{ _('Streaming lib tests') }}</a></h2>
<b>{% trans euro=300 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b><br />
2005-04-20 22:03:26 +00:00
2013-01-15 19:12:10 +00:00
<p>{% trans -%}
To collect this bounty, a new set of unit tests must meet a
2005-04-20 22:03:26 +00:00
measured code coverage of 90% of the streaming lib
(i2p/apps/ministreaming/ and i2p/apps/streaming/).
{%- endtrans %}</p>
<br />
2005-04-20 22:43:42 +00:00
<h2>{% trans phase=7 %}Phase {{ phase }}:{% endtrans %}
<a name="coverage">{{ _('Unit tests coverage') }}</a></h2>
<b>{% trans euro=500 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b><br />
2013-01-15 19:12:10 +00:00
<p>{% trans -%}
2013-01-15 19:12:10 +00:00
To collect this bounty, all above unit tests must meet the 100%
coverage marker (except for log statements).
{%- endtrans %}</p>
<br />
2013-01-15 19:12:10 +00:00
<h2>{% trans phase=8 %}Phase {{ phase }}:{% endtrans %}
<a name="multirouter">{{ _('MultiRouter simulation') }}</a></h2>
<b>{% trans euro=1000 %}Bounty: {{ euro }} &euro;
{%- endtrans %}</b> {{ _('will be split in more sub-tasks') }}<br />
2012-02-12 11:11:29 +00:00
<p>{% trans -%}
To collect this bounty, the existing in-memory multi-router
2012-02-12 11:11:29 +00:00
simulation must be checked, made work again and extend to simulate
lots of routers in memory on a single machine. This bounty will
be split in more fine grained subworks.
{%- endtrans %}</p>
{% endblock %}
2012-02-12 11:11:29 +00:00
{% block bountyjudge %}
<p>{% trans -%}
2012-02-12 11:11:29 +00:00
Judge on all these works is the donor and donor decides if a phase is
called succesfull done and money can be paid.
{%- endtrans %}</p>
2012-09-15 03:18:17 +00:00
{% endblock %}
{% block bountynotesouter %}{% endblock %}