Skip to content

Commit

Permalink
Use -m instead of -k to filter markers
Browse files Browse the repository at this point in the history
-k uses substring match, so -k Sable matched ErgoUtf8NickDisabledTestCase
  • Loading branch information
progval committed Dec 8, 2024
1 parent e0b4aec commit 4b047f3
Showing 1 changed file with 102 additions and 39 deletions.
141 changes: 102 additions & 39 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,110 +4,159 @@ PYTEST ?= python3 -m pytest
# pytest-xdist is installed)
PYTEST_ARGS ?=

# Will be appended at the end of the -m argument to pytest
EXTRA_MARKERS ?=

# Will be appended at the end of the -k argument to pytest
EXTRA_SELECTORS ?=

BAHAMUT_SELECTORS := \
BAHAMUT_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
and not IRCv3 \
$(EXTRA_MARKERS)
BAHAMUT_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

CHARYBDIS_SELECTORS := \
CHARYBDIS_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
CHARYBDIS_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

ERGO_SELECTORS := \
ERGO_MARKERS := \
(Ergo or not implementation-specific) \
and not deprecated \
$(EXTRA_MARKERS)
ERGO_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

HYBRID_SELECTORS := \
HYBRID_MARKERS := \
not implementation-specific \
and not deprecated \
$(EXTRA_MARKERS)
HYBRID_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

INSPIRCD_SELECTORS := \
INSPIRCD_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
INSPIRCD_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

IRCU2_SELECTORS := \
IRCU2_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
and not IRCv3 \
$(EXTRA_MARKERS)
IRCU2_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

NEFARIOUS_SELECTORS := \
NEFARIOUS_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
NEFARIOUS_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

SNIRCD_SELECTORS := \
SNIRCD_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
and not IRCv3 \
$(EXTRA_MARKERS)
SNIRCD_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

IRC2_SELECTORS := \
IRC2_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
and not IRCv3 \
$(EXTRA_MARKERS)
IRC2_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

MAMMON_SELECTORS := \
MAMMON_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
MAMMON_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

NGIRCD_SELECTORS := \
NGIRCD_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
NGIRCD_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

PLEXUS4_SELECTORS := \
PLEXUS4_MARKERS := \
not implementation-specific \
and not deprecated \
$(EXTRA_MARKERS)
PLEXUS4_SELECTORS := \
(foo or not foo) \
$(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_MARKERS := \
(foo or not foo) \
$(EXTRA_MARKERS)
LIMNORIA_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

# Tests marked with arbitrary_client_tags or react_tag can't pass because Sable does not support client tags yet
SABLE_SELECTORS := \
SABLE_MARKERS := \
(Sable or not implementation-specific) \
and not deprecated \
and not strict \
and not arbitrary_client_tags \
and not react_tag \
and not list and not lusers and not time and not info \
$(EXTRA_MARKERS)
SABLE_SELECTORS := \
not list and not lusers and not time and not info \
$(EXTRA_SELECTORS)

SOLANUM_SELECTORS := \
SOLANUM_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
$(EXTRA_MARKERS)
SOLANUM_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

# Same as Limnoria
SOPEL_MARKERS := \
(foo or not foo) \
$(EXTRA_MARKERS)
SOPEL_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

# TheLounge 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
THELOUNGE_MARKERS := \
(foo or not foo) \
$(EXTRA_MARKERS)
THELOUNGE_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)
Expand All @@ -116,13 +165,16 @@ THELOUNGE_SELECTORS := \
# Tests marked with react_tag can't pass because Unreal blocks +draft/react https://github.com/unrealircd/unrealircd/pull/149
# Tests marked with private_chathistory can't pass because Unreal does not implement CHATHISTORY for DMs

UNREALIRCD_SELECTORS := \
UNREALIRCD_MARKERS := \
not implementation-specific \
and not deprecated \
and not strict \
and not arbitrary_client_tags \
and not react_tag \
and not private_chathistory \
$(EXTRA_MARKERS)
UNREALIRCD_SELECTORS := \
(foo or not foo) \
$(EXTRA_SELECTORS)

.PHONY: all flakes bahamut charybdis ergo inspircd ircu2 snircd irc2 mammon nefarious limnoria sable sopel solanum unrealircd
Expand All @@ -138,150 +190,161 @@ bahamut:
-m 'not services' \
-n 4 \
-vv -s \
-m '$(BAHAMUT_MARKERS)'
-k '$(BAHAMUT_SELECTORS)'

bahamut-atheme:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.bahamut \
--services-controller=irctest.controllers.atheme_services \
-m 'services' \
-m 'services and $(BAHAMUT_MARKERS)' \
-k '$(BAHAMUT_SELECTORS)'

bahamut-anope:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.bahamut \
--services-controller=irctest.controllers.anope_services \
-m 'services' \
-m 'services and $(BAHAMUT_MARKERS)' \
-k '$(BAHAMUT_SELECTORS)'

charybdis:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.charybdis \
--services-controller=irctest.controllers.atheme_services \
-m '$(CHARYBDIS_MARKERS)'
-k '$(CHARYBDIS_SELECTORS)'

ergo:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.ergo \
-m '$(ERGO_MARKERS)'
-k "$(ERGO_SELECTORS)"

hybrid:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.hybrid \
--services-controller=irctest.controllers.anope_services \
-m '$(HYBRID_MARKERS)'
-k "$(HYBRID_SELECTORS)"

inspircd:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.inspircd \
-m 'not services' \
-m 'not services and $(INSPIRCD_MARKERS)' \
-k '$(INSPIRCD_SELECTORS)'

inspircd-atheme:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.inspircd \
--services-controller=irctest.controllers.atheme_services \
-m 'services' \
-m 'services and $(INSPIRCD_MARKERS)' \
-k '$(INSPIRCD_SELECTORS)'

inspircd-anope:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.inspircd \
--services-controller=irctest.controllers.anope_services \
-m 'services' \
-m 'services and $(INSPIRCD_MARKERS)' \
-k '$(INSPIRCD_SELECTORS)'

ircu2:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.ircu2 \
-m 'not services and not IRCv3' \
-m 'not services and $(IRCU2_MARKERS)' \
-n 4 \
-k '$(IRCU2_SELECTORS)'

nefarious:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.nefarious \
-m 'not services' \
-m 'not services and $(NEFARIOUS_MARKERS)' \
-n 4 \
-k '$(NEFARIOUS_SELECTORS)'

snircd:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.snircd \
-m 'not services and not IRCv3' \
-m 'not services and $(SNIRCD_MARKERS)' \
-n 4 \
-k '$(SNIRCD_SELECTORS)'

irc2:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.irc2 \
-m 'not services and not IRCv3' \
-m 'not services and $(IRCU2_MARKERS)' \
-n 4 \
-k '$(IRC2_SELECTORS)'

limnoria:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.limnoria \
-m '$(LIMNORIA_MARKERS)' \
-k '$(LIMNORIA_SELECTORS)'

mammon:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.mammon \
-m '$(MAMMON_MARKERS)' \
-k '$(MAMMON_SELECTORS)'

plexus4:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.plexus4 \
--services-controller=irctest.controllers.anope_services \
-m '$(PLEXUS4_MARKERS)' \
-k "$(PLEXUS4_SELECTORS)"

ngircd:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.ngircd \
-m 'not services' \
-m 'services and $(NGIRCD_MARKERS)' \
-n 4 \
-k "$(NGIRCD_SELECTORS)"

ngircd-anope:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.ngircd \
--services-controller=irctest.controllers.anope_services \
-m 'services' \
-m 'services and $(NGIRCD_MARKERS)' \
-k "$(NGIRCD_SELECTORS)"

ngircd-atheme:
$(PYTEST) $(PYTEST_ARGS) \
--controller irctest.controllers.ngircd \
--services-controller=irctest.controllers.atheme_services \
-m 'services' \
-m 'services and $(NGIRCD_MARKERS)' \
-k "$(NGIRCD_SELECTORS)"

sable:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.sable \
-m '$(SABLE_MARKERS)' \
-n 20 \
-k '$(SABLE_SELECTORS)'

solanum:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.solanum \
--services-controller=irctest.controllers.atheme_services \
-m '$(SOPEL_MARKERS)' \
-k '$(SOLANUM_SELECTORS)'

sopel:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.sopel \
-m '$(SOPEL_MARKERS)' \
-k '$(SOPEL_SELECTORS)'

thelounge:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.thelounge \
-m '$(THELOUNGE_MARKERS)' \
-k '$(THELOUNGE_SELECTORS)'

unrealircd:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.unrealircd \
-m 'not services' \
-m 'not services and $(UNREALIRCD_MARKERS)' \
-k '$(UNREALIRCD_SELECTORS)'

unrealircd-5: unrealircd
Expand All @@ -290,19 +353,19 @@ unrealircd-atheme:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.unrealircd \
--services-controller=irctest.controllers.atheme_services \
-m 'services' \
-m 'services and $(UNREALIRCD_MARKERS)' \
-k '$(UNREALIRCD_SELECTORS)'

unrealircd-anope:
$(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.unrealircd \
--services-controller=irctest.controllers.anope_services \
-m 'services' \
-m 'services and $(UNREALIRCD_MARKERS)' \
-k '$(UNREALIRCD_SELECTORS)'

unrealircd-dlk:
pifpaf run mysql -- $(PYTEST) $(PYTEST_ARGS) \
--controller=irctest.controllers.unrealircd \
--services-controller=irctest.controllers.dlk_services \
-m 'services' \
-m 'services and $(UNREALIRCD_MARKERS)' \
-k '$(UNREALIRCD_SELECTORS)'

0 comments on commit 4b047f3

Please sign in to comment.