Move the complex list of selectors from .github/workflows/* to the Makefile

This commit is contained in:
Valentin Lorentz 2021-06-27 21:21:14 +02:00 committed by Val Lorentz
parent cccb937068
commit 98824a4abd
7 changed files with 88 additions and 15 deletions

View File

@ -49,7 +49,5 @@ jobs:
- name: Test with pytest
run: |
# testQuitErrors is very flaky
# AccountTagTestCase.testInvite fails because https://github.com/solanum-ircd/solanum/issues/166
PATH=~/.local/bin:$PATH pytest --controller=irctest.controllers.charybdis -k 'not Ergo and not deprecated and not strict and not testDoubleKickMessages and not testQuitErrors and not (AccountTagTestCase and testInvite)'
PATH=~/.local/bin:$PATH make charybdis

View File

@ -51,4 +51,4 @@ jobs:
- name: Test with pytest
run: |
PATH=~/go/bin:$PATH pytest --controller=irctest.controllers.ergo -k 'not deprecated'
PATH=~/go/bin:$PATH make ergo

View File

@ -49,8 +49,5 @@ jobs:
- name: Test with pytest
run: |
# testNoticeNonexistentChannel fails because of https://github.com/inspircd/inspircd/issues/1849
# testDirectMessageEcho fails because of https://github.com/inspircd/inspircd/issues/1851
# testKeyValidation fails because of https://github.com/inspircd/inspircd/issues/1850
PATH=~/.local/bin:$PATH pytest --controller irctest.controllers.inspircd -k 'not Ergo and not deprecated and not strict and not testNoticeNonexistentChannel and not testDirectMessageEcho and not testKeyValidation'
PATH=~/.local/bin:$PATH make inspircd

View File

@ -32,6 +32,6 @@ jobs:
- name: Test with pytest
run: |
PATH=~/.local/bin:$PATH pytest --controller=irctest.controllers.limnoria
PATH=~/.local/bin:$PATH make limnoria

View File

@ -49,7 +49,7 @@ jobs:
- name: Test with pytest
run: |
PATH=~/.local/bin:$PATH pytest --controller=irctest.controllers.solanum -k 'not Ergo and not deprecated and not strict and not testDoubleKickMessages'
PATH=~/.local/bin:$PATH make solanum

View File

@ -32,6 +32,6 @@ jobs:
- name: Test with pytest
run: |
PATH=~/.local/bin:$PATH pytest --controller=irctest.controllers.sopel -k "not testPlainNotAvailable"
PATH=~/.local/bin:$PATH make sopel

View File

@ -1,9 +1,87 @@
.PHONY: all flakes ergo
PYTEST ?= python3 -m pytest
all: flakes ergo
# Extra arguments to pass to pytest (eg. `-n 4` to run in parallel if
# pytest-xdist is installed)
PYTEST_ARGS ?=
# Will be appended at the end of the -k argument to pytest
EXTRA_SELECTORS ?=
# testQuitErrors is very flaky
# AccountTagTestCase.testInvite fails because https://github.com/solanum-ircd/solanum/issues/166
CHARYBDIS_SELECTORS := \
not Ergo \
and not deprecated \
and not strict \
and not testDoubleKickMessages \
and not testQuitErrors \
and not (AccountTagTestCase and testInvite) \
$(EXTRA_SELECTORS)
ERGO_SELECTORS := \
not deprecated \
$(EXTRA_SELECTORS)
# testNoticeNonexistentChannel fails because of https://github.com/inspircd/inspircd/issues/1849
# testDirectMessageEcho fails because of https://github.com/inspircd/inspircd/issues/1851
# testKeyValidation fails because of https://github.com/inspircd/inspircd/issues/1850
INSPIRCD_SELECTORS := \
not Ergo \
and not deprecated \
and not strict \
and not testNoticeNonexistentChannel \
and not testDirectMessageEcho \
and not testKeyValidation \
$(EXTRA_SELECTORS)
MAMMON_SELECTORS := \
not Ergo \
and not deprecated \
and not strict \
$(EXTRA_SELECTORS)
# Limnoria can actually pass all the test so there is none to exclude.
# `(foo or not foo)` serves as a `true` value so it doesn't break when
# $(EXTRA_SELECTORS) is non-empty
LIMNORIA_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)
SOLANUM_SELECTORS := \
not Ergo \
and not deprecated \
and not strict \
and not testDoubleKickMessages \
$(EXTRA_SELECTORS)
SOPEL_SELECTORS := \
not testPlainNotAvailable \
$(EXTRA_SELECTORS)
.PHONY: all flakes ergo charybdis
all: flakes ergo inspircd limnoria sopel solanum
flakes:
pyflakes3 ./irctest/cases.py ./irctest/client_mock.py ./irctest/controllers/ergo.py irctest/server_tests/*.py
pyflakes3 irctest
charybdis:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.charybdis -k '$(CHARYBDIS_SELECTORS)'
ergo:
python3 -m pytest -k "not deprecated" --controller irctest.controllers.ergo
$(PYTEST) $(PYTEST_ARGS) --controller irctest.controllers.ergo -k "$(ERGO_SELECTORS)"
inspircd:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.inspircd -k '$(INSPIRCD_SELECTORS)'
limnoria:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.limnoria -k '$(LIMNORIA_SELECTORS)'
mammon:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.mammon -k '$(MAMMON_SELECTORS)'
solanum:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.solanum -k '$(SOLANUM_SELECTORS)'
sopel:
$(PYTEST) $(PYTEST_ARGS) --controller=irctest.controllers.sopel -k '$(SOPEL_SELECTORS)'