From 4b047f3450cf39606e1bf97707def059cac0338f Mon Sep 17 00:00:00 2001 From: Val Lorentz Date: Sun, 8 Dec 2024 13:25:59 +0100 Subject: [PATCH] Use -m instead of -k to filter markers -k uses substring match, so -k Sable matched ErgoUtf8NickDisabledTestCase --- Makefile | 141 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 102 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index 2b03f623..e27aa7a4 100644 --- a/Makefile +++ b/Makefile @@ -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) @@ -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 @@ -138,107 +190,114 @@ 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)" @@ -246,19 +305,20 @@ 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)' @@ -266,22 +326,25 @@ 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 @@ -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)'