Commit Graph

731 Commits

Author SHA1 Message Date
Valentin Lorentz 302dd33990 Merge branch 'master' into named-modes 2023-09-24 11:48:38 +02:00
Val Lorentz 00663f15ec
Fix a bunch of synchronization heuristics to work with Sable (#236) 2023-09-24 08:47:22 +02:00
Val Lorentz 36901c1433
Fix lock on the set of used ports (#235)
pytest-xdist (well, execnet) re-loads modules after forking, so each process
had its own lock, making the lock useless.

Co-authored-by: Shivaram Lingamneni <slingamn@cs.stanford.edu>
2023-09-24 08:47:00 +02:00
Val Lorentz 558add5229
whox: Add test for individual chars (#227)
It makes it easier to debug missing params
2023-09-22 22:04:27 +02:00
Val Lorentz 805635c839
Add Sable (#229)
* [WIP] Add support for Sable

* tweak sable controller

* echo_message: Add missing synchronization for Sable

* update sable

* whois: Simplify test

* WHO: Remove test for oper flag from testWhoChan

So it won't fail on Sable, which hides oper status

* WHO: Skip/xfail tests for Sable as needed

* Skip NakWhole when multi-prefix is not supported

* [WIP] Run Sable on CI

* working-directory is not setable on actions

* this isn't ergo

* this really isn't ergo

* minimize rust install and cache cargo deps

* Need to specify packages to install...

* Phony target

* Give up on 'cargo install', it seems to ignore the cache

* try again to cache the target dir

* This isn't Solanum

* Comment out BaseServicesController

* Parallelize Sable tests

* target is relative...

* sigh

* Fix prefix

* Re-add the other software

* chathistory: Test TOPIC is not sent unless event-playable is enabled

* sable: Dynamically generate certificates

This allows using custom server/services names

* sable: Enable services

* sable: Add support for account registration

Sable doesn't support REGISTER via NickServ

* sable: Lower log verbosity

* Fix lint

* Re-add Sable to CI

* Fix/skip tests on Sable

* Kill sable_services' subprocesses

* Bump Sable to include the labeled-response fix

* Bump Sable to the channel-rename downgrade fix
2023-09-21 09:18:23 +02:00
Shivaram Lingamneni e1ff9fd7fe
move no-CTCP channel mode test (#232) 2023-09-20 08:24:26 +02:00
Valentin Lorentz c3aa97c428 Temporary disable daily Dlk tests
They are too flaky and I can't debug them until the PHP 8 warnings are fixed.
2023-09-18 22:32:13 +02:00
Val Lorentz 3692f2d79d
Add various validation tests (#221)
* Add various validation tests

* skip UTF8ONLY tests on servers that don't support it

* Fixes for Ergo

* Fixes for Nefarious and ircu2

* xfail for irc2 and workaround for ngIRCd

* Bump ngIRCd to the ERR_NOTEXTTOSEND fix
2023-09-18 20:31:50 +02:00
Val Lorentz 04d0c8000f
Test TOPIC is echoed on change (#230)
* Test TOPIC is echoed on change

* black
2023-09-16 22:56:13 +02:00
Val Lorentz ecc560adeb
Make AWAY and away-notify tests stricter (#222)
* Make AWAY and away-notify tests stricter

* Check AWAY is not echoed on JOIN
2023-09-16 13:10:56 +02:00
Valentin Lorentz c58167b42d Fix deprecation warning 2023-09-02 16:24:57 +02:00
Val Lorentz 34c78e5d2f
testCapRemovalByClient: Support multiple CAP LS responses (#220) 2023-09-02 15:42:18 +02:00
Val Lorentz 1c6a7188d6
Add more tests for CAP + allow trailing spaces (#216) 2023-09-02 15:08:29 +02:00
Val Lorentz 50d3a8e6da
echo_message: Simplify code (#219) 2023-09-02 13:43:35 +02:00
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
Valentin Lorentz b28820e562 Bump Go again 2023-08-16 20:12:54 +02:00
Valentin Lorentz cb147f46eb Bump Python to 3.11 on release and devel_release workflows
Sopel dropped support for Python 3.7
2023-08-13 20:09:39 +02:00
Val Lorentz a950c724bb
Bump Python to 3.11 (#214)
Sopel dropped support for Python 3.7
2023-08-11 20:24:26 +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 59b2cd729b Configure Unreal with --with-system-argon2
Our Github Workflow builds and runs on different machines, causing argon2
to be built sometimes with some CPU instructions that the machine running
it does not support.
2023-07-23 11:40:01 +02:00
Valentin Lorentz e38f29befa Log unexpected exit codes 2023-07-22 22:12:44 +02:00
Valentin Lorentz 2e45f7bfdb Fix build against Bahamut's master branch 2023-07-10 20:17:12 +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
Sadie Powell 4ee9c9c53a
Update CI to run on Ubuntu 22.04. (#210)
* Update workflows to run on Ubuntu 22.04.

* Add a patch to fix Bahamut on Ubuntu 22.04.

Source: https://github.com/DALnet/bahamut/pull/219

* Add a patch to fix Charybdis on Ubuntu 22.04.
2023-06-25 23:14:08 +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
Valentin Lorentz 5a5dbdb50d Bump Dlk version 2023-06-01 19:17:00 +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
Valentin Lorentz b04db62a9b thelounge: Fix build again 2023-05-31 20:14:17 +02:00
Valentin Lorentz 5ec44e1417 thelounge: Build from git repository
'yarn global add https://github.com/thelounge/thelounge.git' doesn't work
because we now need to compile TypeScript to JavaScript when not downloading
from the package manager
2023-05-30 22:20:25 +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
Val Lorentz 297bf2c554
inspircd: Use upstream mainloop hack when available (#200) 2023-05-20 20:06:59 +02:00
Val Lorentz 05e9b3746e
ci: Bump versions of actions we use (#199)
So Github stops complaining about the deprecated Nodejs version
2023-05-20 13:32:42 +02: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