8226538: find-files.gmk gets corrupted if tab completion is used before running make first
authorerikj
Fri, 21 Jun 2019 06:33:55 -0700
changeset 55465 68ef70c9a921
parent 55464 a3e3f3caf284
child 55466 a6411f1e63f3
8226538: find-files.gmk gets corrupted if tab completion is used before running make first Reviewed-by: tbell
make/common/FindTests.gmk
test/make/TestMake.gmk
--- 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)