From f2b8c5f2f8ef4efe5dc3c05139308e1e83a98788 Mon Sep 17 00:00:00 2001 From: "F. Jason Park" Date: Thu, 14 Apr 2022 20:39:24 -0700 Subject: [PATCH] [POC GROUP] Allow shared triggering of subdir tests * test/infra/Makefile.in: For certain libraries, collect subdirs and defer rendering of generated YAML until after initial run. --- test/infra/Makefile.in | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/test/infra/Makefile.in b/test/infra/Makefile.in index c251578e6a..e4a6dafce9 100644 --- a/test/infra/Makefile.in +++ b/test/infra/Makefile.in @@ -35,10 +35,23 @@ SUBDIR_TARGETS = FILE = test-jobs.yml tn = $$$${test_name} cps = $$$$CI_PIPELINE_SOURCE +# Library groups for which changes trigger all tests in the hierarchy +GROUPED = lisp/erc define subdir_template $(eval target = check-$(subst /,-,$(1))) - SUBDIR_TARGETS += $(target) + $(eval found_deferred = $(foreach d, $(GROUPED), $(findstring $(d), $(1)))) + $(eval + deferring = + ifneq ($(SUBDIRS_DEFERRED),) + target = $(foreach d, $(defer_$(subst /,-,$(1))),check-$(subst /,-,$(d))) + SUBDIR_TARGETS += $(target) + else ifneq ($(found_deferred),) + defer_$(subst /,-,$(firstword $(found_deferred))) += $(1) + deferring = 1 + else + SUBDIR_TARGETS += $(target) + endif) $(eval ifeq ($(findstring src, $(1)), src) @@ -61,12 +74,23 @@ define subdir_template define changes @echo ' - admin/*.el' >>$(FILE) endef + else ifneq ($(SUBDIRS_DEFERRED),) + define changes + @printf '%s\n' \ + $(foreach d, $(defer_$(subst /,-,$(1))), \ + ' - $(d)/*.el' \ + $(and $(subst $(1),,$(d)), \ + ' - test/$(d)/*.el' \ + ' - test/$(d)/*resources/**' \ + )) >>$(FILE) + endef else define changes @echo ' - $(1)/*.el' >>$(FILE) endef endif) + ifeq ($(deferring),) $(target): @echo >>$(FILE) @echo 'test-$(subst /,-,$(1))-inotify:' >>$(FILE) @@ -85,9 +109,12 @@ define subdir_template @echo ' variables:' >>$(FILE) @echo ' target: emacs-inotify' >>$(FILE) @echo ' make_params: "-k -C test $(target)"' >>$(FILE) + endif endef $(foreach subdir, $(SUBDIRS), $(eval $(call subdir_template,$(subdir)))) +SUBDIRS_DEFERRED = $(filter $(GROUPED),$(SUBDIRS)) +$(foreach subdir, $(SUBDIRS_DEFERRED), $(eval $(call subdir_template,$(subdir)))) all: generate-test-jobs -- 2.35.1