make/test/BuildFailureHandler.gmk
changeset 37031 e90042bf422d
child 47217 72e3ae9a25eb
equal deleted inserted replaced
37030:e047c2f3f510 37031:e90042bf422d
       
     1 #
       
     2 # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
       
     3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     4 #
       
     5 # This code is free software; you can redistribute it and/or modify it
       
     6 # under the terms of the GNU General Public License version 2 only, as
       
     7 # published by the Free Software Foundation.  Oracle designates this
       
     8 # particular file as subject to the "Classpath" exception as provided
       
     9 # by Oracle in the LICENSE file that accompanied this code.
       
    10 #
       
    11 # This code is distributed in the hope that it will be useful, but WITHOUT
       
    12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    14 # version 2 for more details (a copy is included in the LICENSE file that
       
    15 # accompanied this code).
       
    16 #
       
    17 # You should have received a copy of the GNU General Public License version
       
    18 # 2 along with this work; if not, write to the Free Software Foundation,
       
    19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    20 #
       
    21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    22 # or visit www.oracle.com if you need additional information or have any
       
    23 # questions.
       
    24 #
       
    25 
       
    26 default: build
       
    27 
       
    28 include $(SPEC)
       
    29 include MakeBase.gmk
       
    30 include JavaCompilation.gmk
       
    31 include SetupJavaCompilers.gmk
       
    32 include NativeCompilation.gmk
       
    33 
       
    34 TARGETS :=
       
    35 
       
    36 ################################################################################
       
    37 
       
    38 FH_BASEDIR := $(SRC_ROOT)/test/failure_handler
       
    39 FH_SUPPORT := $(SUPPORT_OUTPUTDIR)/test/failure_handler
       
    40 FH_JAR := $(FH_SUPPORT)/jtregFailureHandler.jar
       
    41 
       
    42 JTREG_JAR := $(JT_HOME)/lib/jtreg.jar
       
    43 ifeq ($(wildcard $(JTREG_JAR)), )
       
    44   $(error Cannot build failure handler without jtreg)
       
    45 endif
       
    46 # tools.jar is only needed if it exists in the boot jdk
       
    47 TOOLS_JAR := $(wildcard $(BOOT_JDK)/lib/tools.jar)
       
    48 
       
    49 FH_CLASSPATH := $(call PathList, $(JTREG_JAR) $(TOOLS_JAR))
       
    50 
       
    51 $(eval $(call SetupJavaCompilation, BUILD_FAILURE_HANDLER, \
       
    52     SETUP := GENERATE_OLDBYTECODE, \
       
    53     SRC := $(FH_BASEDIR)/src/share/classes $(FH_BASEDIR)/src/share/conf, \
       
    54     BIN := $(FH_SUPPORT)/classes, \
       
    55     COPY := .properties, \
       
    56     CLASSPATH := $(JTREG_JAR) $(TOOLS_JAR), \
       
    57     JAR := $(FH_JAR), \
       
    58 ))
       
    59 
       
    60 TARGETS += $(BUILD_FAILURE_HANDLER)
       
    61 
       
    62 ################################################################################
       
    63 
       
    64 ifeq ($(OPENJDK_TARGET_OS), windows)
       
    65 
       
    66   $(eval $(call SetupNativeCompilation, BUILD_LIBTIMEOUT_HANDLER, \
       
    67         LIBRARY := timeoutHandler, \
       
    68         SRC := $(FH_BASEDIR)/src/windows/native/libtimeoutHandler, \
       
    69         OBJECT_DIR := $(FH_SUPPORT)/libtimeoutHandler, \
       
    70         OUTPUT_DIR := $(FH_SUPPORT), \
       
    71         CFLAGS := $(CFLAGS_JDKLIB), \
       
    72         LDFLAGS := $(LDFLAGS_JDKLIB), \
       
    73         OPTIMIZATION := LOW, \
       
    74   ))
       
    75 
       
    76   TARGETS += $(BUILD_LIBTIMEOUT_HANDLER)
       
    77 
       
    78 endif
       
    79 
       
    80 ################################################################################
       
    81 # Targets for building test-image.
       
    82 ################################################################################
       
    83 
       
    84 # Copy to hotspot jtreg test image
       
    85 $(eval $(call SetupCopyFiles, COPY_FH, \
       
    86     SRC := $(FH_SUPPORT), \
       
    87     DEST := $(TEST_IMAGE_DIR)/failure_handler, \
       
    88     FILES := $(FH_JAR) $(BUILD_LIBTIMEOUT_HANDLER), \
       
    89 ))
       
    90 
       
    91 IMAGES_TARGETS += $(COPY_FH)
       
    92 
       
    93 ################################################################################
       
    94 # Test the failure handler itself
       
    95 ################################################################################
       
    96 #
       
    97 # Use JTREG_TEST_OPTS for test VM options
       
    98 # Use JTREG_TESTS for jtreg tests parameter
       
    99 #
       
   100 RUN_DIR := $(FH_SUPPORT)/test
       
   101 # Add the dir of the dll to the path on windows
       
   102 ifeq ($(OPENJDK_TARGET_OS), windows)
       
   103   export PATH := $(PATH);$(FH_SUPPORT)
       
   104 endif
       
   105 
       
   106 test:
       
   107 	$(RM) -r $(RUN_DIR)
       
   108 	$(MKDIR) -p $(RUN_DIR)
       
   109 	$(CD) $(FH_BASEDIR)/test && JT_JAVA=$(BOOT_JDK) $(JTREGEXE) \
       
   110 	    -jdk:$(BOOT_JDK) \
       
   111 	    $(JTREG_TEST_OPTS) \
       
   112 	    -timeout:0.1 -va -retain:all \
       
   113 	    -noreport \
       
   114 	    -agentvm \
       
   115 	    -thd:$(FH_JAR) \
       
   116 	    -th:jdk.test.failurehandler.jtreg.GatherProcessInfoTimeoutHandler \
       
   117 	    -od:$(FH_JAR) \
       
   118 	    -o:jdk.test.failurehandler.jtreg.GatherDiagnosticInfoObserver \
       
   119 	    -w:$(RUN_DIR)/JTwork -r:$(RUN_DIR)/JTreport \
       
   120 	    $(if $(JTREG_TESTS), $(JTREG_TESTS), .) \
       
   121 	    || true
       
   122 
       
   123 ################################################################################
       
   124 
       
   125 build: $(TARGETS)
       
   126 images: $(IMAGES_TARGETS)
       
   127 
       
   128 .PHONY: all images test