~singpolyma/biboumi

dd4c54c6cde55c034d756fb736259ce51e0120dc — louiz’ 7 years ago 0878a03
Add a paragraph describing the automated tests
1 files changed, 40 insertions(+), 0 deletions(-)

M CONTRIBUTING.rst
M CONTRIBUTING.rst => CONTRIBUTING.rst +40 -0
@@ 39,6 39,42 @@ It is also recommended to add some unit or end-to-end tests for the proposed
changes.


Tests
-----

There are two test suites for biboumi:

- unit tests that can be run simply using `make check`.
  These tests use the Catch test framework, are written in pure C++
  and they should always succeed, in all possible build configuration.

- a more complex end-to-end test suite. This test suite is written in python3,
  uses a specific IRC server (`charybdis`_), and only tests the most complete
  biboumi configuration (when all dependencies are used). To run it, you need
  to install various dependencies: refer to fedora’s `Dockerfile.base`_ and
  `Dockerfile`_ to see how to install charybdis, slixmpp, botan, litesql, an
  ssl certificate, etc.

  Once all the dependencies are correctly installed, the tests are run with

  `make e2e`

  To run one or more specific tests, you can do something like this:

  `make biboumi && python3 ../tests/end_to_end  self_ping  basic_handshake_success`

  This will run two tests, self_ping and basic_handshake_success.

  To write additional tests, you need to add a Scenario
  into `the __main__.py file`_. If you have problem running this end-to-end
  test suite, or if you struggle with this weird code (that would be
  completely normal…), don’t hesitate to ask for help.


All these tests automatically run with various configurations, on various
platforms, using gitlab CI.


Coding style
------------
Please try to follow the existing style:


@@ 55,3 91,7 @@ Please try to follow the existing style:
.. _gitlab merge request: https://lab.louiz.org/louiz/biboumi/merge_requests/new
.. _github pull request: https://github.com/louiz/biboumi/pulls
.. _XMPP chatroom: xmpp:biboumi@muc.poez.io
.. _Dockerfile.base: docker/biboumi-test/fedora/Dockerfile.base
.. _Dockerfile: docker/biboumi-test/fedora/Dockerfile
.. _charybdis: https://github.com/charybdis-ircd/charybdis
.. _the __main__.py file: tests/end_to_end/__main__.py
\ No newline at end of file