ergochat / ergo

A modern IRC server (daemon/ircd) written in Go.
https://ergo.chat/
MIT License
2.25k stars 178 forks source link

Clarify test suites #427

Open DanielOaks opened 5 years ago

DanielOaks commented 5 years ago

So this issue is basically to have a discussion around our test suite(s), and how they work, and our intentions for future work. Especially given Oragono's position as basically 'my reference implementation' for my own IRC protocol documentation, and my want for it to inter-operate in a large way with most other servers out there.

Integrated tests

This basically means our unit tests. We don't have any integration-test stuff inside the server right now, and... with how much we change things, I don't think integration tests are a realistic thing to have as a part of the code anyway.

We'll extend these as we can, but they don't prevent issues like us sending numerics incorrectly or things along those lines.

Our irctest fork

This piece of software works as a reasonable sanity-check. Especially for new IRCv3 features that we've written new tests for. However:

Plainly put, it works fine. It's not amazing, but I'm happy with how we've taken it so far.

ircts

This is a new general piece of IRC testing software that I want to develop. Basically, it's like irctest, but written from the ground up with what I feel like is a slightly cleaner goal in mind.

Downsides:

Upsides:


Basically, irctest is our existing, working suite of tests that does serve us well. ircts is a new piece of software that I want to work on, useful both for Oragono and for me testing things for documentation purposes.

I think that's where my head is at the moment in terms of test suites, their primary purposes / tradeoffs, and all. I'd like to eventually make ircts the primary test suite for Ora, but that isn't gonna happen for a fair while because, well, that bit of software needs to be written.

slingamn commented 5 years ago

A couple arguments in favor of irctest: