Commit Graph

627 Commits

Author SHA1 Message Date
Val Lorentz fe24e4b8b8
multi_prefix: Skip test on IRCds that don't support it (#218) 2023-09-02 13:43:15 +02:00
Val Lorentz 360a853bca
Skip testLabeledPrivmsgResponsesToMultipleClients if PRIVMSG doesn't support multiple targets (#217) 2023-09-02 13:43:01 +02:00
Valentin Lorentz 653d818421 testInviteAlreadyInChannel: Fix synchronization 2023-08-29 20:28:11 +02:00
Simon Ser 10e07aa800
Test that WHO with non-existing nick returns RPL_ENDOFWHO (#215) 2023-08-17 20:15:18 +02:00
Shivaram Lingamneni 7255d65514
Test that WHO #chan always returns that channel (#213)
* Test that WHO #chan always returns that channel

@emersion's test from https://github.com/progval/irctest/pull/190

Co-authored-by: Simon Ser <contact@emersion.fr>
Co-authored-by: Val Lorentz <progval+github@progval.net>
2023-08-09 12:16:32 -04:00
Shivaram Lingamneni 61fb287280
fix nonexistent user PRIVMSG test (#212)
* fix nonexistent user PRIVMSG test

* fix single-element tupling issue
* test the ERR_NOSUCHNICK params
* use patma
2023-08-09 12:00:51 -04:00
Shivaram Lingamneni d190a91960
test that PART actually parts (#211)
Co-authored-by: Val Lorentz <progval+github@progval.net>
2023-08-08 23:19:36 -04:00
Valentin Lorentz e38f29befa Log unexpected exit codes 2023-07-22 22:12:44 +02:00
Valentin Lorentz 7bc8a81f8a Fix compat with Unreal > 6.1.1.1
The '=' syntax is an ircd-hybrid-ism, and Unreal will drop support for
it in the next release. More specifically, somewhere between
0af88581d380602bfd58a0cdaa36b714fb7ef3c3 and c8c265790494b908ff397c705855a21e591884de
in its Git history.
2023-07-09 20:30:34 +02:00
Mitchell Riley 321e254d15
Add SETNAME tests (#209)
* Add SETNAME tests

* fix race condition

* fix synchronization issue

sendLine does not synchronize by itself; call getMessage to synchronize
and test the message since we have it

* Update irctest/server_tests/setname.py

Co-authored-by: Val Lorentz <progval+github@progval.net>

---------

Co-authored-by: Shivaram Lingamneni <slingamn@cs.stanford.edu>
Co-authored-by: Val Lorentz <progval+github@progval.net>
2023-06-04 17:06:53 -04:00
Val Lorentz e5f22e8080
chathistory: Validate BATCH commands more strictly (#208) 2023-06-03 19:32:05 +02:00
Shivaram Lingamneni 52c22236a6
use the ratified extended-monitor name (#206) 2023-06-01 18:22:54 +02:00
Shivaram Lingamneni 22c6743b24
test that CAP LS 301 responses are only one line (#205) 2023-05-31 22:35:59 +02:00
Val Lorentz 2fb8ed4000
dashboard: Use a more concise/readable and tree-like syntax to generate the ASTs (#204) 2023-05-29 14:49:03 +02:00
Val Lorentz 79bbdd2948
sasl: Add tests for signature failure from the server (#179) 2023-05-29 11:53:08 +02:00
Val Lorentz a03e9bb8ea
Add support for The Lounge (#132) 2023-05-29 09:50:31 +02:00
Mitchell Riley 9b9cfdb2bf
Add tests for MONITOR C and S (#202) 2023-05-26 09:41:47 +02:00
Shivaram Lingamneni bb8a6b6c3d
add a test for channel +n / -n (#201)
* add a test for channel +n / -n

* Update irctest/server_tests/chmodes/nooutside.py

Co-authored-by: Val Lorentz <progval+github@progval.net>

* Update irctest/server_tests/chmodes/nooutside.py

Co-authored-by: Val Lorentz <progval+github@progval.net>

* consistently rename to "no external messages"

---------

Co-authored-by: Val Lorentz <progval+github@progval.net>
2023-05-23 01:18:40 -04:00
Shivaram Lingamneni 3b7f81e22c
strip whitespace from Ergo hashed password output (#198)
Removes the need for some special-casing in `ergo genpasswd`
2023-04-19 02:52:21 -04:00
alice 6edf4e27f1
Remove xfail in WHOWAS as linked PRs have been merged (#197)
* Bump inspircd stable version.

* Remove xfail in WHOWAS as linked PRs have been merged
2023-04-17 18:45:50 +02:00
Val Lorentz 11dc5b046e
unrealircd: Move SSL and port generation out of the critical section (#196) 2023-04-16 09:19:05 +02:00
Val Lorentz ddb37d6c3f
Use real metadata keys (#194) 2023-04-15 23:04:24 +02:00
Val Lorentz aed6478a2c
Bump UnrealIRCd to v6.0.7 (#192) 2023-04-05 08:24:34 +02:00
Val Lorentz 418b526033
Prevent random port collisions between controllers (#191)
This happens from time to time on the CI and is pretty annoying
2023-04-04 22:01:20 +02:00
Val Lorentz 136a7923c0
Bump linter versions (#188)
The isort we had has some weird poetry issue, I figured I might as well
bump the other linters at the same time

```
[INFO] Installing environment for https://github.com/PyCQA/isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/home/runner/.cache/pre-commit/repo0m3eczdf/py_env-python3.7/bin/python', '-mpip', 'install', '.')
return code: 1
stdout:
    Processing /home/runner/.cache/pre-commit/repo0m3eczdf
      Installing build dependencies: started
      Installing build dependencies: finished with status 'done'
      Getting requirements to build wheel: started
      Getting requirements to build wheel: finished with status 'done'
      Preparing metadata (pyproject.toml): started
      Preparing metadata (pyproject.toml): finished with status 'error'

stderr:
      error: subprocess-exited-with-error

      × Preparing metadata (pyproject.toml) did not run successfully.
      │ exit code: 1
      ╰─> [14 lines of output]
          Traceback (most recent call last):
            File "/home/runner/.cache/pre-commit/repo0m3eczdf/py_env-python3.7/lib/python3.7/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
              main()
            File "/home/runner/.cache/pre-commit/repo0m3eczdf/py_env-python3.7/lib/python3.7/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
              json_out['return_val'] = hook(**hook_input['kwargs'])
            File "/home/runner/.cache/pre-commit/repo0m3eczdf/py_env-python3.7/lib/python3.7/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
              return hook(metadata_directory, config_settings)
            File "/tmp/pip-build-env-beaf5dxh/overlay/lib/python3.7/site-packages/poetry/core/masonry/api.py", line 40, in prepare_metadata_for_build_wheel
              poetry = Factory().create_poetry(Path(".").resolve(), with_groups=False)
            File "/tmp/pip-build-env-beaf5dxh/overlay/lib/python3.7/site-packages/poetry/core/factory.py", line 57, in create_poetry
              raise RuntimeError("The Poetry configuration is invalid:\n" + message)
          RuntimeError: The Poetry configuration is invalid:
            - [extras.pipfile_deprecated_finder.2] 'pip-shims<=0.3.4' does not match '^[a-zA-Z-_.0-9]+$'

          [end of output]

      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: metadata-generation-failed

    × Encountered error while generating package metadata.
    ╰─> See above for output.

    note: This is an issue with the package mentioned above, not pip.
    hint: See above for details.
```
2023-03-04 10:51:40 +01:00
Val Lorentz 5364f963ae
Add tests for draft/extended-monitor (#180) 2023-03-04 10:11:51 +01:00
Val Lorentz 1ea3e1c15c
Fix insp4 support after 'helpop' config file was renamed (#187)
c2e954903a
2023-03-01 20:07:58 +01:00
Valentin Lorentz 8530c85adc sopel: remove use of deprecated argument
it's removed in aceedf5837
2023-02-15 19:11:51 +01:00
Valentin Lorentz 6815dd238b Fix race condition on Ergo 2023-02-11 22:26:23 +01:00
Mitchell Riley 00562ff82d
Run utf8 tests on servers which advertise UTF8ONLY (#185) 2023-01-28 10:12:32 +01:00
Shivaram Lingamneni b7e8a7a5f5
direct message tests (#184)
* Test privmsg to non-existent user

* Test privmsg to user

* fix synchronization issue

* apply black

Co-authored-by: ma-anwar <ma.rizvi.anwar@gmail.com>
2023-01-22 07:45:25 -05:00
Valentin Lorentz 6181dd07ad Skip failure on RPL_WHOISSPECIAL with Dlk-Services 2022-12-16 19:09:09 +01:00
Valentin Lorentz 35d342a478 account_registration: Add missing 'services' mark 2022-11-20 23:33:20 +01:00
Valentin Lorentz 29e4c2bbdb Hardcode DH parameters
openssl version in ubuntu 22.04 forbids moduli smaller than 512,
which would take longer to generate.
2022-11-18 18:57:51 +01:00
Val Lorentz fd0b050686
Add support for Dlk-Services (#176) 2022-11-14 22:58:30 +01:00
Valentin Lorentz d0645ab1a8 dashboard: Use qualified class names in multi-module views 2022-11-12 11:49:14 +01:00
Valentin Lorentz 65d7e0e506 whowas: Update quotes and links to Modern spec
In particular, this takes https://github.com/ircdocs/modern-irc/pull/196
into account.
2022-10-22 15:49:30 +02:00
Valentin Lorentz 690aaf24a1 Bump flake8 version
Fixes support for importlib_metadata 5.0.0,
https://github.com/PyCQA/flake8/issues/1701
2022-10-22 12:34:46 +02:00
Shivaram Lingamneni 40385c112b
add a test for AWAY :\r\n (#175) 2022-09-18 13:27:48 -04:00
Val Lorentz 9d4212504b
Add tests for TIME. (#127) 2022-09-11 17:18:10 +02:00
Valentin Lorentz c1442c4301 unrealircd: Use lock around startup/shutdown instead of proot
to ensure no unrealircd instance is starting up while another clears
$PREFIX/tmp/

While proot allows full parallelism and is less error-prone, it takes
a long time to start; and segfaults on my Armbian system.
2022-09-10 14:56:20 +02:00
Valentin Lorentz 507f5b7426 Use pathlib to work with temporary config dirs 2022-09-10 14:17:19 +02:00
Shivaram Lingamneni dbdadec677
test that WHO ignores +i for bare nicknames (#171) 2022-08-26 19:01:41 +02:00
Valentin Lorentz 6b6017b40c testStarNick: Replace unreliable workaround for irc2 2022-06-27 20:54:04 +02:00
Valentin Lorentz 601f49a9ef Fix infinite loop when server is slow (eg. Bahamut) 2022-06-27 20:53:50 +02:00
Valentin Lorentz e205cc1531 bahamut: pre-initialize entropy to avoid freezing on GH Actions 2022-06-19 16:48:26 +02:00
Shivaram Lingamneni 058fab85b0
test incorrect channel keys (#169) 2022-05-29 09:49:21 +02:00
Valentin Lorentz 683f7c0a15 Fix support of Unreal 5 2022-05-13 22:30:31 +02:00
Valentin Lorentz 0f100a5c80 Work around Unreal >=6.0.4 sending RPL_WHOISSPECIAL by default
085490d780
2022-05-13 22:12:40 +02:00
Shivaram Lingamneni 83017483ba
test +R user mode as implemented in Ergo (#168) 2022-05-13 19:49:40 +02:00
Valentin Lorentz 627f0b6415 Try fixing flakyness of Plexus4 and others 2022-05-01 11:56:09 +02:00
Val Lorentz 641bea5f0a
bot_mode: Make draft/ prefix optional (#167)
The spec is ratified.
2022-04-28 20:38:49 +02:00
Valentin Lorentz 8c73ac2b75 patma: Add support for operators in keys
Will be used to match either '@bot' or '@draft/bot'.
2022-04-28 20:12:18 +02:00
Valentin Lorentz 011bdff7e4 Fix ELIST detection 2022-04-26 22:22:36 +02:00
Shivaram Lingamneni c0af9bc0a8 add a regression test for ergochat/ergo#1928
LIST on a nonexistent channel does not get an error response.
2022-04-26 21:46:06 +02:00
Val Lorentz a15025a276
Add tests for JOIN with some invalid channels in the target param (#163) 2022-04-16 12:15:56 +02:00
Val Lorentz a923353ec4
Add test for ban exception mode (+e) (#162) 2022-04-16 08:12:27 +02:00
Val Lorentz 45dd42e682
Replace incorrect uses of NotImplementedByController exception (#161) 2022-04-15 16:01:36 +02:00
Val Lorentz 5122c04826
Add tests for the two invite lists (#149)
* Add tests for the two invite lists

* Add workaround for Hybrid

* Skip testInviteList on ircu2

* Fix merge
2022-04-14 21:28:12 +02:00
Val Lorentz 2cd5fc1dca
dashboard: Add a page for each implementation (#159) 2022-04-14 19:56:06 +02:00
Val Lorentz 778510e021 Bump Unreal to 6.0.3 and remove ELIST workarounds (#158)
Workarounds that are only still needed for Unreal 5 and and Hybrid/Plexus
2022-04-13 20:54:11 +02:00
Val Lorentz 1e01cb3286
Fix CI (#157)
Broken by recent merges
2022-04-13 19:57:16 +02:00
Val Lorentz 83867dad32
testWrongPassword: Add stricter check of the reply's command (#144) 2022-04-13 18:59:34 +02:00
Val Lorentz a39ce7f19b
Merge branch 'master' into elist 2022-04-13 18:57:46 +02:00
Val Lorentz 363b62cc80
Add tests for LINKS (#147) 2022-04-13 18:56:29 +02:00
Val Lorentz 6539ed881a
Add tests for NAMES (#145) 2022-04-13 18:54:42 +02:00
Val Lorentz 3ab31ca4de
Add tests for WHOWAS as specified in modern-irc (#142)
https://github.com/ircdocs/modern-irc/pull/170
2022-04-13 18:52:12 +02:00
Valentin Lorentz 82928bc6fc Sort results 2022-04-12 22:53:50 +02:00
Valentin Lorentz 47db85f026 Fix typo 2022-04-12 22:53:02 +02:00
Val Lorentz 2bc68a2208
Use xfail instead of deselection for known failures (#155) 2022-04-12 22:36:28 +02:00
Valentin Lorentz 10b6f8d6da Remove useless 'OptionalityHelper'. 2022-04-12 18:48:03 +02:00
Valentin Lorentz fc4e31e099 dashboard: Omit irrelevant tests from specific tables 2022-04-12 18:33:52 +02:00
Valentin Lorentz d90264ca9f dashboard: fix pagination 2022-04-12 18:33:02 +02:00
Valentin Lorentz 09c31f428a Format the index as columns when possible
To avoid wasting space.
2022-04-10 15:55:53 +02:00
Valentin Lorentz e92aee012b Fix CI 2022-04-10 15:55:53 +02:00
Valentin Lorentz 358b6c2213 dashboard: Show module and class docstrings 2022-04-10 15:55:27 +02:00
Valentin Lorentz a3f0d42248 Remove Ergo-specific mark on channel-rename 2022-04-10 15:55:27 +02:00
Valentin Lorentz 397509a282 Move CAP tests to the right module 2022-04-10 15:55:27 +02:00
Valentin Lorentz 107af942e9 Add top-level docstrings to all modules
Will be used on the dashboard index in a future commit
2022-04-10 15:55:27 +02:00
Val Lorentz d24f0b4f12
Add support for Nefarious (#151) 2022-04-10 11:37:35 +02:00
Val Lorentz edf3e5904b
Produce a dashboard website after running tests (#152) 2022-04-10 10:40:39 +02:00
Shivaram Lingamneni 3083aeeb24
fix processing of multiline CAP LS 302 output (#153)
connectClient implicitly assumed that the CAP LS 302 output would be
a single registration message. This caused incorrect skipping of some tests
with `skip_if_cap_nak=True`, for example
RegisterEmailVerifiedTestCase.testAfterConnect on Ergo.

Technically there is no need for connectClient to send CAP LS before CAP REQ;
however, this provides additional test coverage for the syntactic correctness
of the CAP LS output in multiple server configurations, so we might as well
keep it.
2022-04-10 08:39:30 +02:00
Val Lorentz 9a19416731
INVITE: Fix misunderstanding of the RFCs (#148)
They make the first argument of numerics implicit, so there is actually
no difference with Modern
2022-03-31 15:53:51 +02:00
Valentin Lorentz af001fad2e Add tests for ELIST 2022-03-27 17:08:46 +02:00
Valentin Lorentz a9a7a2a187 list: Modernize tests a bit 2022-03-27 17:08:40 +02:00
Valentin Lorentz 72a12ff5ce Add support for 'faketime', to avoid long sleeps in upcoming ELIST tests 2022-03-27 17:08:40 +02:00
Valentin Lorentz 3f483243d9 Minor readability improvement 2022-03-27 17:07:29 +02:00
Val Lorentz 491f92ca60
Use proot with unreal, to make it parallelizable (#146) 2022-03-23 21:26:41 +01:00
Valentin Lorentz 7608ea5145 Fix flaky LUSERS tests on Unreal 2022-03-20 22:07:07 +01:00
Val Lorentz 256a8641ec
Add test for multi-target WHOWAS (#141)
* Add test for multi-target WHOWAS

I don't think anyone implements it; let's see

* Skip on Bahamut
2022-03-20 11:36:51 +01:00
Val Lorentz f606c075f7
Add tests for error cases of WHOWAS. (#139) 2022-03-19 22:12:25 +01:00
Val Lorentz 7b38c2be8a
Add tests for WHOWAS. (#138) 2022-03-19 20:20:50 +01:00
Valentin Lorentz c47b057546 Fix inconsistent arg order 2022-03-19 16:53:14 +01:00
Valentin Lorentz 2af62461bc Add test for mismatch on both command and param 2022-03-19 16:34:39 +01:00
Val Lorentz 69c5dca4b9
Add client tests for SASL with non-ASCII passwords (#137) 2022-03-19 16:09:27 +01:00
Val Lorentz ee8f60d6c2
Add test for ISUPPORT PREFIX. (#128) 2022-03-09 20:01:34 +01:00
Valentin Lorentz 8356ace014 Shorten ListRemainder's repr() when possible. 2022-03-05 10:12:09 +01:00
Valentin Lorentz 2a4e71eccd patma: Fix inconsistencies between ANYSTR and AnyOptStr 2022-03-05 10:12:09 +01:00
Valentin Lorentz 66c457f6ce patma: Fix repr() inconsistencies and add tests 2022-03-05 10:12:09 +01:00
Shivaram Lingamneni 7e112359a2
secret channel test (#135)
* silent.py tests for channels with mode +s appearing in LIST only when the user is connected to that channel

* Added assertions for exact content of lines with command RPL_LIST and checks for exact number of RPL_LIST replies

* fix linter errors

* only validate the first two parameters of RPL_LIST

* rename to secret channel test, add citation

* ignore ngircd pseudo-channel

* attempt to fix charybdis/solanum and ircu issues

* review fixes

Co-authored-by: William Rehwinkel <willrehwinkel@gmail.com>
2022-03-04 21:58:05 +01:00