Skip to content

Commit 2dea91e

Browse files
authored
Update README (#268)
We barely changed the content since 2015 while irctest changed a lot. This commit better reflects the current project goals, status, and removes unmaintained software from the examples.
1 parent df626de commit 2dea91e

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

README.md

+31-30
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,38 @@
33
This project aims at testing interoperability of software using the
44
IRC protocol, by running them against common test suites.
55

6+
It is also used while editing [the "Modern" specification](https://modern.ircdocs.horse/)
7+
to check behavior of a large selection of servers at once.
8+
69
## The big picture
710

811
This project contains:
912

10-
* IRC protocol test cases
11-
* small wrappers around existing software to run tests on them
13+
* IRC protocol test cases, primarily checking conformance to
14+
[the "Modern" specification](https://modern.ircdocs.horse/) and
15+
[IRCv3 extensions](https://ircv3.net/irc/), but also
16+
[RFC 1459](https://datatracker.ietf.org/doc/html/rfc1459) and
17+
[RFC 2812](https://datatracker.ietf.org/doc/html/rfc2812).
18+
Most of them are for servers but also some for clients.
19+
Only the client-server protocol is tested; server-server protocols are out of scope.
20+
* Small wrappers around existing software to run tests on them.
21+
So far this is restricted to headless software (servers, service packages,
22+
and clients bots).
1223

1324
Wrappers run software in temporary directories, so running `irctest` should
1425
have no side effect.
1526

27+
Test results for the latest version of each supported software, and respective logs,
28+
are [published daily](https://dashboard.irctest.limnoria.net/).
29+
1630
## Prerequisites
1731

1832
Install irctest and dependencies:
1933

2034
```
2135
sudo apt install faketime # Optional, but greatly speeds up irctest/server_tests/list.py
2236
cd ~
23-
git clone https://github.com/ProgVal/irctest.git
37+
git clone https://github.com/progval/irctest.git
2438
cd irctest
2539
pip3 install --user -r requirements.txt
2640
```
@@ -40,18 +54,23 @@ You can usually invoke it with `python3 -m pytest` command; which can often
4054
be called by the `pytest` or `pytest-3` commands (if not, alias them if you
4155
are planning to use them often).
4256

57+
After installing `pytest-xdist`, you can also pass `pytest` the `-n 10` option
58+
to run `10` tests in parallel.
59+
4360
The rest of this README assumes `pytest` works.
4461

4562
## Test selection
4663

4764
A major feature of pytest that irctest heavily relies on is test selection.
4865
Using the `-k` option, you can select and deselect tests based on their names
49-
and/or markers (listed in `pytest.ini`).
5066
For example, you can run `LUSERS`-related tests with `-k lusers`.
51-
Or only tests based on RFC1459 with `-k rfc1459`.
67+
68+
Using the `-m` option, you can select and deselect and them based on their markers
69+
(listed in `pytest.ini`).
70+
For example, you can run only tests based on RFC1459 with `-m rfc1459`.
5271

5372
By default, all tests run; even niche ones. So you probably always want to
54-
use these options: `-k 'not Ergo and not deprecated and not strict`.
73+
use these options: `-m 'not Ergo and not deprecated and not strict`.
5574
This excludes:
5675

5776
* `Ergo`-specific tests (included as Ergo uses irctest as its official
@@ -63,6 +82,10 @@ This excludes:
6382

6483
## Running tests
6584

85+
This list is non-exhaustive, see `workflows.yml` for software not listed here.
86+
If software you want to test is not listed their either, please open an issue
87+
or pull request to add support for it.
88+
6689
### Servers
6790

6891
#### Ergo:
@@ -89,20 +112,6 @@ make install
89112
pytest --controller irctest.controllers.solanum -k 'not Ergo and not deprecated and not strict'
90113
```
91114

92-
#### Charybdis:
93-
94-
```
95-
cd /tmp/
96-
git clone https://github.com/atheme/charybdis.git
97-
cd charybdis
98-
./autogen.sh
99-
./configure --prefix=$HOME/.local/
100-
make -j 4
101-
make install
102-
cd ~/irctest
103-
pytest --controller irctest.controllers.charybdis -k 'not Ergo and not deprecated and not strict'
104-
```
105-
106115
#### InspIRCd:
107116

108117
```
@@ -123,14 +132,6 @@ cd ~/irctest
123132
pytest --controller irctest.controllers.inspircd -k 'not Ergo and not deprecated and not strict'
124133
```
125134

126-
#### Mammon:
127-
128-
```
129-
pip3 install --user git+https://github.com/mammon-ircd/mammon.git
130-
cd ~/irctest
131-
pytest --controller irctest.controllers.mammon -k 'not Ergo and not deprecated and not strict'
132-
```
133-
134135
#### UnrealIRCd:
135136

136137
```
@@ -147,8 +148,8 @@ pytest --controller irctest.controllers.unreal -k 'not Ergo and not deprecated a
147148

148149
### Servers with services
149150

150-
Besides Ergo (that has built-in services), most server controllers can optionally run
151-
service packages.
151+
Besides Ergo (that has built-in services) and Sable (that ships its own services),
152+
most server controllers can optionally run service packages.
152153

153154
#### Atheme:
154155

0 commit comments

Comments
 (0)