8226538: find-files.gmk gets corrupted if tab completion is used before running make first
Reviewed-by: tbell
--- a/make/common/FindTests.gmk Thu Jun 20 23:12:12 2019 -0700
+++ b/make/common/FindTests.gmk Fri Jun 21 06:33:55 2019 -0700
@@ -62,10 +62,8 @@
# If this file is deemed outdated, it will automatically get regenerated
# by this rule before being included below.
-#
-# When calling TestMake.gmk, override the log level to avoid any kind of debug
-# output being captured into the generated makefile.
-$(FIND_TESTS_CACHE_FILE): $(JTREG_ROOT_FILES) $(JTREG_GROUP_FILES)
+$(FIND_TESTS_CACHE_FILE): $(JTREG_ROOT_FILES) $(JTREG_GROUP_FILES) \
+ $(TOPDIR)/test/make/TestMake.gmk
$(call MakeTargetDir)
( $(foreach root, $(JTREG_TESTROOTS), \
$(PRINTF) "\n$(root)_JTREG_TEST_GROUPS := " ; \
@@ -73,10 +71,11 @@
$($(root)_JTREG_GROUP_FILES) \
| $(SORT) -u | $(TR) '\n' ' ' ; \
) \
- $(PRINTF) "\nMAKE_TEST_TARGETS := " ; \
- $(MAKE) -s --no-print-directory $(MAKE_ARGS) LOG_LEVEL=warn \
- SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets \
) > $@
+ $(PRINTF) "\nMAKE_TEST_TARGETS := " >> $@
+ $(MAKE) -s --no-print-directory $(MAKE_ARGS) \
+ SPEC=$(SPEC) -f $(TOPDIR)/test/make/TestMake.gmk print-targets \
+ TARGETS_FILE=$@
-include $(FIND_TESTS_CACHE_FILE)
--- a/test/make/TestMake.gmk Thu Jun 20 23:12:12 2019 -0700
+++ b/test/make/TestMake.gmk Fri Jun 21 06:33:55 2019 -0700
@@ -46,7 +46,8 @@
all: $(TARGETS)
+# Prints targets to TARGETS_FILE which must be set when calling this target.
print-targets:
- $(ECHO) "$(TARGETS)"
+ $(ECHO) "$(TARGETS)" >> $(TARGETS_FILE)
.PHONY: default all $(TARGETS)