irctest/README.md

90 lines
2.1 KiB
Markdown
Raw Normal View History

2015-12-18 16:26:55 +00:00
# irctest
2015-12-19 18:11:17 +00:00
2016-12-01 09:21:25 +00:00
This software intends to test IRC clients and servers, to ensure that they behave how they're expected to today.
2015-12-19 18:11:17 +00:00
2016-12-01 09:21:25 +00:00
The tests in this repo are based on [RFC 1459](https://tools.ietf.org/html/rfc1459), [RFC 2812](https://tools.ietf.org/html/rfc2812), the [Modern docs](http://modern.ircdocs.horse/) and generally-accepted software behaviour.
2015-12-19 18:11:17 +00:00
2016-12-01 09:21:25 +00:00
This project is very young and doesn't contain a lot of test cases. However, it should still be useful and can highlight unexpected issues, particularly with newly-developed software.
2015-12-19 18:11:17 +00:00
2016-12-01 09:21:25 +00:00
## Installing
2015-12-19 18:11:17 +00:00
2016-12-01 09:21:25 +00:00
Clone the repo and install the relevant depdencies:
2015-12-19 18:11:17 +00:00
```
2016-12-01 09:21:25 +00:00
git clone https://github.com/DanielOaks/irctest.git
2015-12-19 23:16:01 +00:00
cd irctest
2015-12-19 18:11:17 +00:00
pip3 install --user -r requirements.txt
```
2015-12-19 22:57:22 +00:00
2016-12-01 09:21:25 +00:00
## Running Tests
For almost every client / server, all we require is that the software is installed and the binary is in the PATH.
Here are examples of how to install various software and run tests with them:
2015-12-19 22:57:22 +00:00
2016-12-01 09:21:25 +00:00
### Clients
2015-12-19 22:57:22 +00:00
2016-12-01 09:21:25 +00:00
To run tests on Limnoria:
2015-12-19 18:11:17 +00:00
```
pip3 install --user limnoria
2016-12-01 09:21:25 +00:00
python3 test.py irctest.controllers.limnoria
2015-12-19 18:11:17 +00:00
```
2016-12-01 09:21:25 +00:00
To run tests on Sopel:
2015-12-19 18:11:17 +00:00
```
pip3 install --user sopel
mkdir ~/.sopel/
2016-12-01 09:21:25 +00:00
python3 test.py irctest.controllers.sopel
2015-12-19 18:11:17 +00:00
```
2015-12-19 22:57:22 +00:00
2016-12-01 09:21:25 +00:00
### Servers
To run tests on InspIRCd:
2015-12-19 22:57:22 +00:00
```
cd /tmp/
2015-12-19 23:16:01 +00:00
git clone https://github.com/inspircd/inspircd.git
2015-12-19 22:57:22 +00:00
cd inspircd
./configure --prefix=$HOME/.local/ --development
make -j 4
make install
2016-12-01 09:21:25 +00:00
python3 test.py irctest.controllers.inspircd
2015-12-19 22:57:22 +00:00
```
2016-12-01 09:21:25 +00:00
To run tests on Mammon:
2015-12-21 21:54:03 +00:00
```
pip3 install --user git+https://github.com/mammon-ircd/mammon.git
2016-12-01 09:21:25 +00:00
python3 test.py irctest.controllers.mammon
2015-12-21 21:54:03 +00:00
```
2016-12-01 09:21:25 +00:00
To run tests on Charybdis::
2015-12-21 21:54:03 +00:00
```
cd /tmp/
git clone https://github.com/atheme/charybdis.git
cd charybdis
./configure --prefix=$HOME/.local/
make -j 4
make install
2016-12-01 09:21:25 +00:00
python3 test.py irctest.controllers.charybdis
2015-12-21 21:54:03 +00:00
```
2016-12-01 09:21:25 +00:00
## Program Help
For more complete help, run `./test --help`
2016-12-01 09:21:25 +00:00
## What this is not
2016-12-01 09:21:25 +00:00
This isn't a formal proof that a given piece of IRC software follows the IRC specs to the letter, or is definitely going to be interoperable with other software.
2016-12-01 09:21:25 +00:00
At best, this can help you find issues with your software, but it may still have false-positives.