mirror of https://github.com/progval/irctest.git
75 lines
1.7 KiB
Markdown
75 lines
1.7 KiB
Markdown
# irctest
|
|
|
|
This project aims at testing interoperability of software using the
|
|
IRC protocol, by running them against test suites and making different
|
|
software communicate with each other.
|
|
|
|
It is very young and does not contain a lot of test cases yet.
|
|
|
|
## The big picture
|
|
|
|
This project contains:
|
|
|
|
* IRC protocol test cases
|
|
* small wrappers around existing software to run tests on them
|
|
(only Limnoria, Sopel, and InspIRCd for the moment)
|
|
|
|
Wrappers run software in temporary directories, so running `irctest` should
|
|
have no side effect, with [the exception of Sopel](https://github.com/sopel-irc/sopel/issues/946).
|
|
|
|
## Prerequisites
|
|
|
|
|
|
Install irctest and dependencies:
|
|
|
|
```
|
|
git clone https://github.com/ProgVal/irctest.git
|
|
cd irctest
|
|
pip3 install --user -r requirements.txt
|
|
python3 setup.py install --user
|
|
```
|
|
|
|
Add `~/.local/bin/` to your `PATH` if it is not.
|
|
|
|
```
|
|
export PATH=$HOME/.local/bin/:$PATH
|
|
```
|
|
|
|
## Run tests
|
|
|
|
To run tests with Limnoria:
|
|
|
|
```
|
|
pip3 install --user limnoria
|
|
python3 -m irctest irctest.controllers.limnoria
|
|
```
|
|
|
|
To run tests with Sopel:
|
|
|
|
```
|
|
pip3 install --user sopel
|
|
mkdir ~/.sopel/
|
|
python3 -m irctest irctest.controllers.sopel
|
|
```
|
|
|
|
To run tests with InspIRCd:
|
|
|
|
```
|
|
cd /tmp/
|
|
git clone https://github.com/inspircd/inspircd.git
|
|
cd inspircd
|
|
./configure --prefix=$HOME/.local/ --development
|
|
make -j 4
|
|
make install
|
|
python3 -m irctest irctest.controllers.inspircd
|
|
```
|
|
|
|
## What `irctest` is not
|
|
|
|
A formal proof that a given software follows any of the IRC specification,
|
|
or anything near that.
|
|
|
|
At best, `irctest` can help you find issues in your software, but it may
|
|
still have false positives (because it does not implement itself a
|
|
full-featured client/server, so it supports only “usual” behavior).
|