Commit dd4c54c6 authored by louiz’'s avatar louiz’ 🐗

Add a paragraph describing the automated tests

parent 0878a034
......@@ -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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment