# HG changeset patch # User ihse # Date 1521138784 -3600 # Node ID 26f624b33218bac476c6329e0363df37cf99c86a # Parent 6628683fde28b9e438a890dbbabba6010a5b8d29 8199681: Remove boilerplate code from creating native jtreg tests Reviewed-by: erikj diff -r 6628683fde28 -r 26f624b33218 make/common/TestFilesCompilation.gmk --- a/make/common/TestFilesCompilation.gmk Thu Mar 15 19:30:58 2018 +0100 +++ b/make/common/TestFilesCompilation.gmk Thu Mar 15 19:33:04 2018 +0100 @@ -44,6 +44,7 @@ # TYPE Must be either PROGRAM or LIBRARY. # SOURCE_DIRS A list of source directories to search # OUTPUT_DIR Where to put the resulting files +# EXCLUDE A list of filenames to exclude from compilation SetupTestFilesCompilation = $(NamedParamsMacroTemplate) define SetupTestFilesCompilationBody @@ -76,19 +77,23 @@ $1_FILE_LIST := \ $$(shell $$(FIND) $$($1_SOURCE_DIRS) -type f -name "$$($1_PREFIX)*.c") + $1_EXCLUDE_PATTERN := $$(addprefix %/, $$($1_EXCLUDE)) + $1_FILTERED_FILE_LIST := $$(filter-out $$($1_EXCLUDE_PATTERN), $$($1_FILE_LIST)) + # Setup a compilation for each and every one of them - $$(foreach file, $$($1_FILE_LIST),\ - $$(eval name := $$(strip $$(patsubst $$($1_PREFIX)%, %, $$(basename $$(notdir $$(file)))))) \ + $$(foreach file, $$($1_FILTERED_FILE_LIST),\ + $$(eval name := $$(strip $$(basename $$(notdir $$(file))))) \ + $$(eval unprefixed_name := $$(patsubst $$($1_PREFIX)%, %, $$(name))) \ $$(eval $$(call SetupNativeCompilation, BUILD_TEST_$$(name), \ - NAME := $$(name), \ + NAME := $$(unprefixed_name), \ TYPE := $$($1_COMPILATION_TYPE), \ SRC := $$(patsubst %/,%,$$(dir $$(file))), \ INCLUDE_FILES := $$(notdir $$(file)), \ - OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$($1_PREFIX)$$(name), \ + OBJECT_DIR := $$($1_OUTPUT_DIR)/support/$$(name), \ OUTPUT_DIR := $$($1_OUTPUT_DIR)/$$($1_OUTPUT_SUBDIR), \ - CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$($1_PREFIX)$$(name)), \ - LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$($1_PREFIX)$$(name)), \ - LIBS := $$($1_LIBS_$$($1_PREFIX)$$(name)), \ + CFLAGS := $$($1_CFLAGS) $$($1_CFLAGS_$$(name)), \ + LDFLAGS := $$($1_LDFLAGS) $$($1_LDFLAGS_$$(name)), \ + LIBS := $$($1_LIBS_$$(name)), \ OPTIMIZATION := LOW, \ COPY_DEBUG_SYMBOLS := false, \ STRIP_SYMBOLS := false, \ diff -r 6628683fde28 -r 26f624b33218 make/test/JtregNativeHotspot.gmk --- a/make/test/JtregNativeHotspot.gmk Thu Mar 15 19:30:58 2018 +0100 +++ b/make/test/JtregNativeHotspot.gmk Thu Mar 15 19:33:04 2018 +0100 @@ -41,90 +41,45 @@ # Targets for building the native tests themselves. ################################################################################ -# Add more directories here when needed. -BUILD_HOTSPOT_JTREG_NATIVE_SRC += \ - $(TOPDIR)/test/hotspot/jtreg/gc/g1/TestJNIWeakG1 \ - $(TOPDIR)/test/hotspot/jtreg/gc/stress/TestJNIBlockFullGC \ - $(TOPDIR)/test/hotspot/jtreg/gc/stress/gclocker \ - $(TOPDIR)/test/hotspot/jtreg/gc/cslocker \ - $(TOPDIR)/test/hotspot/jtreg/native_sanity \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/8025979 \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/8033445 \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/checked \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/FindClass \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/PrivateInterfaceMethods \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/ToStringInInterfaceTest \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/CalleeSavedRegisters \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/CallWithJNIWeak \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jni/ReturnJNIWeak \ - $(TOPDIR)/test/hotspot/jtreg/runtime/modules/getModuleJNI \ - $(TOPDIR)/test/hotspot/jtreg/runtime/SameObject \ - $(TOPDIR)/test/hotspot/jtreg/runtime/BoolReturn \ - $(TOPDIR)/test/hotspot/jtreg/runtime/noClassDefFoundMsg \ - $(TOPDIR)/test/hotspot/jtreg/runtime/handshake \ - $(TOPDIR)/test/hotspot/jtreg/runtime/RedefineTests \ - $(TOPDIR)/test/hotspot/jtreg/compiler/floatingpoint/ \ - $(TOPDIR)/test/hotspot/jtreg/compiler/calls \ - $(TOPDIR)/test/hotspot/jtreg/compiler/runtime/criticalnatives/lookup \ - $(TOPDIR)/test/hotspot/jtreg/compiler/runtime/criticalnatives/argumentcorruption \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/CanGenerateAllClassHook \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorInfo \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/GetOwnedMonitorStackDepthInfo \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/GetNamedModule \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/IsModifiableModule \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/AddModuleReads \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/AddModuleExportsAndOpens \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/AddModuleUsesAndProvides \ - $(TOPDIR)/test/hotspot/jtreg/testlibrary/jvmti \ - $(TOPDIR)/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/GetModulesInfo \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/ModuleAwareAgents/ClassFileLoadHook \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/ModuleAwareAgents/ClassLoadPrepare \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/ModuleAwareAgents/ThreadStart \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/jvmti/StartPhase/AllowedFunctions \ - $(TOPDIR)/test/hotspot/jtreg/serviceability/dcmd/jvmti/AttachFailed \ - # +# This might have been added to by a custom extension. +BUILD_HOTSPOT_JTREG_NATIVE_SRC += $(TOPDIR)/test/hotspot/jtreg + +BUILD_HOTSPOT_JTREG_OUTPUT_DIR := $(OUTPUTDIR)/support/test/hotspot/jtreg/native -# Add conditional directories here when needed. -ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) -BUILD_HOTSPOT_JTREG_NATIVE_SRC += \ - $(TOPDIR)/test/hotspot/jtreg/runtime/libadimalloc.solaris.sparc \ - $(TOPDIR)/test/hotspot/jtreg/runtime/ThreadSignalMask -endif +BUILD_HOTSPOT_JTREG_IMAGE_DIR := $(TEST_IMAGE_DIR)/hotspot/jtreg -ifeq ($(OPENJDK_TARGET_OS), linux) -BUILD_HOTSPOT_JTREG_NATIVE_SRC += \ - $(TOPDIR)/test/hotspot/jtreg/runtime/execstack \ - $(TOPDIR)/test/hotspot/jtreg/runtime/jsig \ - $(TOPDIR)/test/hotspot/jtreg/runtime/StackGuardPages +# Platform specific setup +ifneq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) + BUILD_HOTSPOT_JTREG_EXCLUDE += liboverflow.c exeThreadSignalMask.c endif ifeq ($(OPENJDK_TARGET_OS), linux) BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libtest-rw := -z noexecstack BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libtest-rwx := -z execstack BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exeinvoke := -ljvm -lpthread - BUILD_TEST_invoke_exeinvoke.c_OPTIMIZATION := NONE + BUILD_TEST_exeinvoke_exeinvoke.c_OPTIMIZATION := NONE BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exeFPRegs := -ldl +else + BUILD_HOTSPOT_JTREG_EXCLUDE += libtest-rw.c libtest-rwx.c libTestJNI.c \ + exeinvoke.c endif ifeq ($(OPENJDK_TARGET_OS), windows) BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT endif -BUILD_HOTSPOT_JTREG_OUTPUT_DIR := $(OUTPUTDIR)/support/test/hotspot/jtreg/native - -BUILD_HOTSPOT_JTREG_IMAGE_DIR := $(TEST_IMAGE_DIR)/hotspot/jtreg - $(eval $(call SetupTestFilesCompilation, BUILD_HOTSPOT_JTREG_LIBRARIES, \ TYPE := LIBRARY, \ SOURCE_DIRS := $(BUILD_HOTSPOT_JTREG_NATIVE_SRC), \ OUTPUT_DIR := $(BUILD_HOTSPOT_JTREG_OUTPUT_DIR), \ + EXCLUDE := $(BUILD_HOTSPOT_JTREG_EXCLUDE), \ )) $(eval $(call SetupTestFilesCompilation, BUILD_HOTSPOT_JTREG_EXECUTABLES, \ TYPE := PROGRAM, \ SOURCE_DIRS := $(BUILD_HOTSPOT_JTREG_NATIVE_SRC), \ OUTPUT_DIR := $(BUILD_HOTSPOT_JTREG_OUTPUT_DIR), \ + EXCLUDE := $(BUILD_HOTSPOT_JTREG_EXCLUDE), \ )) build-test-hotspot-jtreg-native: $(BUILD_HOTSPOT_JTREG_LIBRARIES) $(BUILD_HOTSPOT_JTREG_EXECUTABLES) diff -r 6628683fde28 -r 26f624b33218 make/test/JtregNativeJdk.gmk --- a/make/test/JtregNativeJdk.gmk Thu Mar 15 19:30:58 2018 +0100 +++ b/make/test/JtregNativeJdk.gmk Thu Mar 15 19:33:04 2018 +0100 @@ -41,23 +41,17 @@ # Targets for building the native tests themselves. ################################################################################ -# Add more directories here when needed. -BUILD_JDK_JTREG_NATIVE_SRC += \ - $(TOPDIR)/test/jdk/native_sanity \ - $(TOPDIR)/test/jdk/java/lang/ClassLoader/nativeLibrary \ - $(TOPDIR)/test/jdk/java/lang/String/nativeEncoding \ - # - -ifneq ($(OPENJDK_TARGET_OS), windows) - BUILD_JDK_JTREG_NATIVE_SRC += $(TOPDIR)/test/jdk/java/nio/channels/FileChannel/directio - BUILD_JDK_JTREG_NATIVE_SRC += $(TOPDIR)/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel -endif +# This might have been added to by a custom extension. +BUILD_JDK_JTREG_NATIVE_SRC += $(TOPDIR)/test/jdk BUILD_JDK_JTREG_OUTPUT_DIR := $(OUTPUTDIR)/support/test/jdk/jtreg/native BUILD_JDK_JTREG_IMAGE_DIR := $(TEST_IMAGE_DIR)/jdk/jtreg +# Platform specific setup ifeq ($(OPENJDK_TARGET_OS), windows) + BUILD_JDK_JTREG_EXCLUDE += libDirectIO.c libInheritedChannel.c + WIN_LIB_JAVA := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := $(WIN_LIB_JAVA) else @@ -74,17 +68,18 @@ TYPE := LIBRARY, \ SOURCE_DIRS := $(BUILD_JDK_JTREG_NATIVE_SRC), \ OUTPUT_DIR := $(BUILD_JDK_JTREG_OUTPUT_DIR), \ + EXCLUDE := $(BUILD_JDK_JTREG_EXCLUDE), \ )) $(eval $(call SetupTestFilesCompilation, BUILD_JDK_JTREG_EXECUTABLES, \ TYPE := PROGRAM, \ SOURCE_DIRS := $(BUILD_JDK_JTREG_NATIVE_SRC), \ OUTPUT_DIR := $(BUILD_JDK_JTREG_OUTPUT_DIR), \ + EXCLUDE := $(BUILD_JDK_JTREG_EXCLUDE), \ )) build-test-jdk-jtreg-native: $(BUILD_JDK_JTREG_LIBRARIES) $(BUILD_JDK_JTREG_EXECUTABLES) - ################################################################################ # Targets for building test-image. ################################################################################