416 Commits

Author SHA1 Message Date
8ddf39bd91 Deduplicate Insp/Unreal/Anope builds (#77) 2021-07-07 21:05:14 +02:00
9b18d68707 Merge pull request #76 from ergochat/master
update draft/register -> draft/account-registration
2021-07-07 13:58:40 -04:00
a637ae3927 Add Anope controller, and use it with inspircd and unreal (#75)
* Add Anope controller, and use it with inspircd and unreal

* Build Anope before running it, duh

* Fix Anope build script

* Consistently use ascii casemapping instead of rfc1459

* Skip failing test with Anope
2021-07-07 15:06:00 +02:00
a29b7c5631 update draft/register -> draft/account-registration 2021-07-07 09:04:22 -04:00
7e024b9ead Add CLI option --services-controller to allow alternatives to Atheme (none for now)
+ fix some issues with killing services processes
2021-07-07 14:02:47 +02:00
54a911c2f5 Revert "Kill controlled processes immediately"
This reverts commit e8dde0e9892b0cf7bad6e0e1c16d5331a7c6a7ec.

Actually, this breaks Limnoria's STS tests, I need to investigate this
later.
2021-07-07 12:44:10 +02:00
e8dde0e989 Kill controlled processes immediately
Also ensures services are always stopped (so far, they were not if
they ignored SIGTERM but the ircd honors SIGTERM)
2021-07-07 12:13:40 +02:00
08a74096d0 test_cap: Fix random failure. 2021-07-04 22:44:18 +02:00
450a413036 Fix random failure (again) 2021-07-04 20:11:35 +02:00
15f9875ae5 chathistory: Parametrize tests by subcommand
This means that:

* if one subcommand implementation is buggy, other subcommands are still tested and
  have a chance to pass
* we can exclude known-buggy subcommands from the Makefile
* when a test failure happens, we get much shorter logs (only logs for
  that subcommand's I/O)
2021-07-04 17:31:18 +02:00
92a73ad4a5 Use pytest parametrization instead of ad-hoc method generation 2021-07-04 17:06:37 +02:00
0177c369dd Switch from unittest-style to pytest-style test collection
I was to use parametrization in a future test, but pytest doesn't
support it on unittest-style tests.
2021-07-04 17:06:37 +02:00
06f053bf61 Remove some Ergo marks (#70)
* Remove some 'Ergo' marks

These are not ergo-specific specs

* Make chathistory test less Ergo-specific

Although they can only run on Ergo for now, as Unreal has a couple
of minor bugs that prevents them from passing.

* Fix synchronization issue

(NickServ sets MODE +r, which is unexpected caught by the next
self.assertMessageMatch call)
2021-07-04 15:04:48 +02:00
61974e6d0c Enable mute extban tests on Ergo 2021-07-04 09:55:46 +02:00
4932d410e2 fix chathistory spec violation in INVALID_TARGET
https://github.com/ergochat/ergo/issues/1731
2021-07-04 09:51:04 +02:00
fc07fa7d96 Don't check for NickServ availability multiple times per test
It's a waste of time.
2021-07-03 11:48:25 +02:00
63f4130ab5 Unreal: Add support for Atheme 2021-07-03 11:15:34 +02:00
4271d5d986 test_bot_mode: Fix racey failures
cause by the sent message being processed after the target
user's recv
2021-07-03 09:59:31 +02:00
d74b0e74c6 Merge pull request #62 from ProgVal/unreal
Add Unreal controller
2021-07-03 09:54:22 +02:00
83152bdc24 unreal: deselect tests depending on +draft/react
Unreal won't support them 1st-party:
https://github.com/unrealircd/unrealircd/pull/149
2021-07-03 09:40:49 +02:00
c4d19d44e8 test_labeled_responses: Actually check 'label' tags aren't relayed
The existing assertion's comment said it checked the label wasn't
relayed, but the code actually let any tag through.
2021-07-03 09:31:51 +02:00
3fafc76baa fix comment 2021-07-02 22:25:45 +02:00
42225a68b7 test_buffering: improve log readability 2021-07-02 22:25:07 +02:00
a1040a4553 Minor bug fixes 2021-07-02 21:48:12 +02:00
f83f2a4edf Make all tests pass with Unreal (minus service tests) 2021-07-02 21:41:35 +02:00
2d2e788275 Start adding support for Unreal
Not all tests pass yet, Unreal uses the protocol in ways we did not anticipate.
2021-07-01 23:10:37 +02:00
2972706ca6 Add a 'services' mark, to allow disabling tests that depend on them. 2021-07-01 17:17:59 +02:00
26a0245a6a Add tests for the draft bot mode. 2021-07-01 16:44:48 +02:00
cccb937068 Merge pull request #59 from ergochat/master
merge in a new ergo regression test
2021-06-28 01:48:18 -04:00
50cd718871 explicitly request sasl cap in new test 2021-06-28 00:23:26 -04:00
342ffcbdbe enable run_services for new test 2021-06-28 00:18:39 -04:00
3d2399f62e Run Atheme with Charybdis, to enable tests depending on SASL 2021-06-27 21:19:34 +02:00
76db5758e9 Remove ircd-seven
A future commit will need Chary and its subclasses to use SASL,
but ircd-seven has a different config to use SASL.

And ircd-seven is not used anymore AFAICT, and won't be getting any updates,
so I don't want to bother.
2021-06-27 21:19:34 +02:00
c5037e8ec9 Make AthemeController a collaborator instead of a mixin
It makes the inheritence less messy and avoids a mypy hack.

This will also allow configuring which service package an ircd controller
uses, instead of hardcoding it in the inheritence DAG.
2021-06-27 16:45:43 +02:00
7ee3c562d1 Run Atheme with InspIRCd, to enable tests depending on SASL 2021-06-27 16:45:43 +02:00
48eeeb7312 Always request the 'sasl' cap before using AUTHENTICATE
InspIRCd ignores AUTHENTICATE when the cap is not negotiated.
2021-06-27 14:38:54 +02:00
7ac4d7f80f Use getRegistrationMessage() when relevant
It's an alias for
`filter_pred=lambda m: m.command != "NOTICE", synchronize=False`
2021-06-27 14:38:54 +02:00
b3d775f0d6 getMessages: Raise an error when forgetting to synchronize=False
Instead of hanging forever.

Hopefully there shouldn't be any false positive.
2021-06-27 14:38:54 +02:00
cc8b9748a7 Always request the 'sasl' cap before using AUTHENTICATE
It's required by InspIRCd.

This commit also adds a check so we don't forget it when testing
locally only with Ergo.
2021-06-27 14:38:54 +02:00
829edddeb8 Remove some Ergo-specific assumptions.
We need to remove them before we can start running these tests
on Inspircd.
2021-06-27 14:38:54 +02:00
65b479c609 add regression test for ergochat/ergo#1696 2021-06-27 04:41:30 -04:00
6458586179 Make find_hostname_and_port its own function
So it can be used to generate multiple ports, which will be needed
to link services.
2021-06-27 00:27:48 +02:00
eef07da56a cases: Stop ignoring the 'msg' parameter in assert* methods 2021-06-27 00:23:21 +02:00
60e6c013b2 Fix mypy error 2021-06-26 22:11:47 +02:00
a29e46c17a Add test for account tag on INVITE messages.
This will catch issues like https://github.com/solanum-ircd/solanum/issues/166
(when we have registration support for solanum)
2021-06-26 18:44:55 +02:00
6f68a0d601 Hide irrelevant frames on pytest failures
It makes failures easier to read, by showing only the relevant tests
instead of the helper functions.

https://doc.pytest.org/en/latest/example/simple.html#writing-well-integrated-assertion-helpers
2021-06-26 18:37:44 +02:00
50b36f281d ergo: remove additional-nick-limit 2021-06-18 18:43:45 -04:00
7be29ad801 rename Oragono to Ergo 2021-05-27 00:07:32 -04:00
6bdfdf58b2 first pass at renaming oragono to ergo 2021-05-26 16:02:22 -04:00
db0c64fa30 remove draft/resume-0.5 tests 2021-05-19 08:49:49 +02:00