From 0eca63f39830d8520a4107890aaf2729e8863c10 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair Date: Mon, 21 Jun 2010 11:00:15 -0700 Subject: [PATCH] 6960853: Cleanup makefiles, remove unused vars etc 6959596: Windows fastdebug build broken 6960335: Add top level 'make test' rule that uses test/Makefile, runs all test batches Reviewed-by: alanb --- Makefile | 76 ++++++++++++++++++++++++++++++++++++------ make/Defs-internal.gmk | 1 - make/jprt.gmk | 4 +-- make/sanity-rules.gmk | 1 - test/Makefile | 23 +++++++------ 5 files changed, 80 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 0e7f4b4de5d..065e0c55edc 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1995, 2009, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -29,10 +29,6 @@ ifndef TOPDIR TOPDIR:=. endif -ifndef CONTROL_TOPDIR - CONTROL_TOPDIR=$(TOPDIR) -endif - # Openjdk sources (only used if SKIP_OPENJDK_BUILD!=true) OPENJDK_SOURCETREE=$(TOPDIR)/openjdk OPENJDK_BUILDDIR:=$(shell \ @@ -120,7 +116,7 @@ endif all_product_build:: @$(FINISH_ECHO) -# Generis build of basic repo series +# Generic build of basic repo series generic_build_repo_series:: $(MKDIR) -p $(OUTPUTDIR) $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image @@ -179,11 +175,15 @@ endif # The install process needs to know what the DEBUG_NAME is, so # look for INSTALL_DEBUG_NAME in the install rules. # +# NOTE: On windows, do not use $(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME). +# Due to the use of short paths in $(ABS_OUTPUTDIR), this may +# not be the same location. +# # Location of fresh bootdir output ABS_BOOTDIR_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk FRESH_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/j2sdk-image -FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)-$(DEBUG_NAME)/j2sdk-image +FRESH_DEBUG_BOOTDIR=$(ABS_BOOTDIR_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME)/j2sdk-image create_fresh_product_bootdir: FRC @$(START_ECHO) @@ -248,10 +248,14 @@ build_product_image: generic_build_repo_series @$(FINISH_ECHO) +# NOTE: On windows, do not use $(ABS_OUTPUTDIR)-$(DEBUG_NAME). +# Due to the use of short paths in $(ABS_OUTPUTDIR), this may +# not be the same location. + generic_debug_build: @$(START_ECHO) $(MAKE) \ - ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)-$(DEBUG_NAME) \ + ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-$(DEBUG_NAME) \ DEBUG_NAME=$(DEBUG_NAME) \ GENERATE_DOCS=false \ $(BOOT_CYCLE_DEBUG_SETTINGS) \ @@ -348,8 +352,8 @@ endif clobber:: $(RM) -r $(OUTPUTDIR)/* - $(RM) -r $(OUTPUTDIR)-debug/* - $(RM) -r $(OUTPUTDIR)-fastdebug/* + $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/* + $(RM) -r $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/* -($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE)) clean: clobber @@ -550,6 +554,56 @@ ifeq ($(BUNDLE_RULES_AVAILABLE), true) include $(BUNDLE_RULES) endif +################################################################ +# rule to test +################################################################ + +.NOTPARALLEL: test + +test: test_clean test_start test_summary + +test_start: + @$(ECHO) "Tests started at `$(DATE)`" + +test_clean: + $(RM) $(OUTPUTDIR)/test_failures.txt $(OUTPUTDIR)/test_log.txt + +test_summary: $(OUTPUTDIR)/test_failures.txt + @$(ECHO) "#################################################" + @$(ECHO) "Tests completed at `$(DATE)`" + @( $(EGREP) '^TEST STATS:' $(OUTPUTDIR)/test_log.txt \ + || $(ECHO) "No TEST STATS seen in log" ) + @$(ECHO) "For complete details see: $(OUTPUTDIR)/test_log.txt" + @$(ECHO) "#################################################" + @if [ -s $< ] ; then \ + $(ECHO) "ERROR: Test failure count: `$(CAT) $< | $(WC) -l`"; \ + $(CAT) $<; \ + exit 1; \ + else \ + $(ECHO) "Success! No failures detected"; \ + fi + +# Get failure list from log +$(OUTPUTDIR)/test_failures.txt: $(OUTPUTDIR)/test_log.txt + @$(RM) $@ + @( $(EGREP) '^FAILED:' $< || $(ECHO) "" ) > $@ + +# Get log file of all tests run +JDK_TO_TEST := $(shell \ + if [ -d "$(ABS_OUTPUTDIR)/j2sdk-image" ] ; then \ + $(ECHO) "$(ABS_OUTPUTDIR)/j2sdk-image"; \ + elif [ -d "$(ABS_OUTPUTDIR)/bin" ] ; then \ + $(ECHO) "$(ABS_OUTPUTDIR)"; \ + elif [ "$(PRODUCT_HOME)" != "" -a -d "$(PRODUCT_HOME)/bin" ] ; then \ + $(ECHO) "$(PRODUCT_HOME)"; \ + fi \ +) +$(OUTPUTDIR)/test_log.txt: + $(RM) $@ + ( $(CD) test && \ + $(MAKE) NO_STOPPING=- PRODUCT_HOME=$(JDK_TO_TEST) \ + ) | tee $@ + ################################################################ # JPRT rule to build ################################################################ @@ -560,7 +614,7 @@ include ./make/jprt.gmk # PHONY ################################################################ -.PHONY: all \ +.PHONY: all test test_start test_summary test_clean \ generic_build_repo_series \ what clobber insane \ dev dev-build dev-sanity dev-clobber \ diff --git a/make/Defs-internal.gmk b/make/Defs-internal.gmk index f3c35bd92f6..cab13f38de8 100644 --- a/make/Defs-internal.gmk +++ b/make/Defs-internal.gmk @@ -52,7 +52,6 @@ ifdef OPENJDK endif # Define absolute paths to TOPDIRs -ABS_CONTROL_TOPDIR:=$(call OptFullPath,"$(CONTROL_TOPDIR)") ABS_LANGTOOLS_TOPDIR:=$(call OptFullPath,"$(LANGTOOLS_TOPDIR)") ABS_CORBA_TOPDIR:=$(call OptFullPath,"$(CORBA_TOPDIR)") ABS_JAXP_TOPDIR:=$(call OptFullPath,"$(JAXP_TOPDIR)") diff --git a/make/jprt.gmk b/make/jprt.gmk index 61191773885..57fd1d32e34 100644 --- a/make/jprt.gmk +++ b/make/jprt.gmk @@ -45,11 +45,11 @@ ifdef HAVE_JPRT_SAVE_BUNDLES endif jprt_build_fastdebug: fastdebug_build - ( $(CD) $(OUTPUTDIR)-fastdebug/j2sdk-image && \ + ( $(CD) $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-fastdebug/j2sdk-image && \ $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . ) jprt_build_debug: debug_build - ( $(CD) $(OUTPUTDIR)-debug/j2sdk-image && \ + ( $(CD) $(OUTPUTDIR)/../$(PLATFORM)-$(ARCH)-debug/j2sdk-image && \ $(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . ) ################################################################ diff --git a/make/sanity-rules.gmk b/make/sanity-rules.gmk index 88b4db58a79..6a17a5be890 100644 --- a/make/sanity-rules.gmk +++ b/make/sanity-rules.gmk @@ -281,7 +281,6 @@ endif @$(ECHO) "Build Directory Structure:" >> $(MESSAGE_FILE) @$(ECHO) " CWD = `$(PWD)`" >> $(MESSAGE_FILE) @$(ECHO) " TOPDIR = $(TOPDIR)" >> $(MESSAGE_FILE) - @$(ECHO) " CONTROL_TOPDIR = $(CONTROL_TOPDIR)" >> $(MESSAGE_FILE) ifeq ($(LANGTOOLS_SRC_AVAILABLE), true) @$(ECHO) " LANGTOOLS_TOPDIR = $(LANGTOOLS_TOPDIR)" >> $(MESSAGE_FILE) endif diff --git a/test/Makefile b/test/Makefile index a1b7e6a2db5..0e214116d4f 100644 --- a/test/Makefile +++ b/test/Makefile @@ -54,30 +54,33 @@ LANGTOOLS_TEST_LIST = langtools_jtreg # Test target list for jdk repository JDK_TEST_LIST = \ - jdk_awt \ - jdk_beans jdk_beans1 jdk_beans2 jdk_beans3 \ + jdk_beans1 jdk_beans2 jdk_beans3 \ jdk_io \ jdk_lang \ - jdk_management jdk_management1 jdk_management2 \ + jdk_management1 jdk_management2 \ jdk_math \ jdk_misc \ jdk_net \ - jdk_nio jdk_nio1 jdk_nio2 jdk_nio3 \ - jdk_rmi \ - jdk_security jdk_security1 jdk_security2 jdk_security3 \ - jdk_swing \ + jdk_nio1 jdk_nio2 jdk_nio3 \ + jdk_security1 jdk_security2 jdk_security3 \ jdk_text \ - jdk_tools jdk_tools1 jdk_tools2 \ + jdk_tools1 jdk_tools2 \ jdk_util +# These tests need a DISPLAY and can create window interaction complications +JDK_TEST_LIST2 = \ + jdk_awt \ + jdk_rmi \ + jdk_swing + # Default test target (everything) all: $(JDK_TEST_LIST) $(LANGTOOLS_TEST_LIST) # Test targets $(LANGTOOLS_TEST_LIST): - @$(call SUBDIR_TEST, $(LANGTOOLS_DIR), $(subst langtools_,,$@)) + @$(NO_STOPPING)$(call SUBDIR_TEST, $(LANGTOOLS_DIR), $(subst langtools_,,$@)) $(JDK_TEST_LIST): - @$(call SUBDIR_TEST, $(JDK_DIR), $@) + @$(NO_STOPPING)$(call SUBDIR_TEST, $(JDK_DIR), $@) clean: