< prev index next >

test/make/TestJavaCompilation.gmk

Print this page

        

*** 229,237 **** --- 229,348 ---- TEST_TARGETS += $(OUTPUT_DIR)/_jar3_updated .PHONY: clean-jar3 create-jar3 update-jar3 ################################################################################ + # Test SetupJavaCompilation overrides of java files + + $(eval $(call SetupJavaCompiler,BOOT_JAVAC, \ + JAVAC := $(JAVAC), \ + )) + + JAVA_SRC_ROOT1 := $(OUTPUT_DIR)/javaroot1 + JAVA_SRC_ROOT2 := $(OUTPUT_DIR)/javaroot2 + + # Since this makefile calls itself a number of times, protect this macro from + # being executed more than once. + # Param 1 - File name + # Param 2 - Package name + # Param 3 - Class name + # Param 4 - Message + CreateJavaSrc = \ + $(if $(wildcard $1),,$(shell \ + $(MKDIR) -p $(dir $1); \ + $(ECHO) "package $2;" > $1; \ + $(ECHO) "public class $3 {" >> $1; \ + $(ECHO) " public static void main(String[] args) {" >> $1; \ + $(ECHO) " System.out.print(\"$4\");" >> $1; \ + $(ECHO) " }" >> $1; \ + $(ECHO) "}" >> $1; \ + )) + + # Since this makefile calls itself a number of times, protect this macro from + # being executed more than once. + # Param 1 - File name + # Param 2 - Message + CreateTextFile = \ + $(if $(wildcard $1),,$(shell \ + $(MKDIR) -p $(dir $1); \ + $(PRINTF) '$2' > $1; \ + )) + + $(call CreateJavaSrc,$(JAVA_SRC_ROOT1)/a/A.java,a,A,javaroot1) + $(call CreateJavaSrc,$(JAVA_SRC_ROOT2)/a/A.java,a,A,javaroot2) + $(call CreateTextFile,$(JAVA_SRC_ROOT1)/a/b.txt,javaroot1\n) + $(call CreateTextFile,$(JAVA_SRC_ROOT2)/a/b.txt,javaroot2\n) + $(call CreateTextFile,$(JAVA_SRC_ROOT1)/a/c.properties,#javaroot1\nname=value1\n) + $(call CreateTextFile,$(JAVA_SRC_ROOT2)/a/c.properties,#javaroot2\nname=value2\n) + + # Due to a bug in gnu make 3.81, need to add the src roots with trailing slash, + # otherwise $(wildcard ) will not find the directories and the sanity check in + # SetupJavaCompilation will fail. + $(eval $(call SetupJavaCompilation, BUILD_ROOT1_FIRST, \ + SETUP := BOOT_JAVAC, \ + SRC := $(JAVA_SRC_ROOT1)/ $(JAVA_SRC_ROOT2)/, \ + COPY := .txt .java, \ + CLEAN := .properties, \ + BIN := $(OUTPUT_DIR)/root1first/, \ + )) + + $(BUILD_ROOT1_FIRST): + + verify-root1-first: $(BUILD_ROOT1_FIRST) + $(JAVA_SMALL) -cp $(OUTPUT_DIR)/root1first a.A > $(OUTPUT_DIR)/root1first.output + if [ "`$(CAT) $(OUTPUT_DIR)/root1first.output`" != "javaroot1" ]; then \ + $(ECHO) "The wrong class was compiled. Expected >javaroot1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first.output`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root1first/a/b.txt`" != "javaroot1" ]; then \ + $(ECHO) "The wrong file was copied. Expected >javaroot1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first/a/b.txt`<"; \ + false; \ + fi + if [ ! -e "$(OUTPUT_DIR)/root1first/a/A.java" ]; then \ + $(ECHO) "Missed copying $(OUTPUT_DIR)/root1first/a/A.java"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root1first/a/c.properties`" != "name=value1" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >name=value1<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root1first/a/c.properties`<"; \ + false; \ + fi + + $(eval $(call SetupJavaCompilation, BUILD_ROOT2_FIRST, \ + SETUP := BOOT_JAVAC, \ + SRC := $(JAVA_SRC_ROOT2)/ $(JAVA_SRC_ROOT1)/, \ + COPY := .txt, \ + CLEAN := .properties, \ + BIN := $(OUTPUT_DIR)/root2first/, \ + )) + + $(BUILD_ROOT2_FIRST): + + verify-root2-first: $(BUILD_ROOT2_FIRST) + $(JAVA_SMALL) -cp $(OUTPUT_DIR)/root2first a.A > $(OUTPUT_DIR)/root2first.output + if [ "`$(CAT) $(OUTPUT_DIR)/root2first.output`" != "javaroot2" ]; then \ + $(ECHO) "The wrong class was compiled. Expected >javaroot2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first.output`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root2first/a/b.txt`" != "javaroot2" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >javaroot2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first/a/b.txt`<"; \ + false; \ + fi + if [ "`$(CAT) $(OUTPUT_DIR)/root2first/a/c.properties`" != "name=value2" ]; then \ + $(ECHO) "The wrong file was cleaned. Expected >name=value2<"; \ + $(ECHO) "Got >`$(CAT) $(OUTPUT_DIR)/root2first/a/c.properties`<"; \ + false; \ + fi + + TEST_TARGETS += verify-root1-first verify-root2-first + + .PHONY: verify-root1-first verify-root2-first + + ################################################################################ all: $(TEST_TARGETS) .PHONY: default all
< prev index next >