From a131e1668fdf18ac0f91c2ff22964e694209bbdb Mon Sep 17 00:00:00 2001 From: Brian Burkhalter Date: Mon, 5 Mar 2018 08:27:42 -0800 Subject: [PATCH] 8198834: (ch) Enable java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java on linux-x64 Move to using centralized native build and remove obsolete .so files Reviewed-by: alanb, erikj --- make/test/JtregNativeJdk.gmk | 8 +- .../InheritedChannelTest.java | 13 +-- .../inheritedChannel/Launcher.java | 4 +- .../inheritedChannel/Makefile | 79 ------------------ .../SelectorProvider/inheritedChannel/README | 37 +++----- .../lib/linux-i586/libLauncher.so | Bin 4944 -> 0 bytes .../lib/solaris-amd64/libLauncher.so | Bin 10888 -> 0 bytes .../lib/solaris-sparcv9/libLauncher.so | Bin 9864 -> 0 bytes .../{Launcher.c => libInheritedChannel.c} | 23 ++++- 9 files changed, 43 insertions(+), 121 deletions(-) delete mode 100644 test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile delete mode 100644 test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so delete mode 100644 test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-amd64/libLauncher.so delete mode 100644 test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparcv9/libLauncher.so rename test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/{Launcher.c => libInheritedChannel.c} (80%) diff --git a/make/test/JtregNativeJdk.gmk b/make/test/JtregNativeJdk.gmk index 3e8d3af1d4e..9eca095bc0f 100644 --- a/make/test/JtregNativeJdk.gmk +++ b/make/test/JtregNativeJdk.gmk @@ -1,5 +1,5 @@ # -# Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2015, 2018, 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 @@ -50,6 +50,7 @@ BUILD_JDK_JTREG_NATIVE_SRC += \ 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 BUILD_JDK_JTREG_OUTPUT_DIR := $(OUTPUTDIR)/support/test/jdk/jtreg/native @@ -59,9 +60,14 @@ BUILD_JDK_JTREG_IMAGE_DIR := $(TEST_IMAGE_DIR)/jdk/jtreg ifeq ($(OPENJDK_TARGET_OS), windows) WIN_LIB_JAVA := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := $(WIN_LIB_JAVA) +else ifeq ($(OPENJDK_TARGET_OS), linux) + BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava + BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava + BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava else ifeq ($(OPENJDK_TARGET_OS), solaris) BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava -lc BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava -lc + BUILD_JDK_JTREG_LIBRARIES_LIBS_libInheritedChannel := -ljava -lc else BUILD_JDK_JTREG_LIBRARIES_LIBS_libstringPlatformChars := -ljava BUILD_JDK_JTREG_LIBRARIES_LIBS_libDirectIO := -ljava diff --git a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java index 326d8989eb0..0ce8c84a106 100644 --- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java +++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2018 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 @@ -34,7 +34,7 @@ * jdk.test.lib.Platform * jdk.test.lib.process.* * StateTest StateTestService EchoTest EchoService CloseTest Launcher Util - * @run testng/othervm InheritedChannelTest + * @run testng/othervm/native InheritedChannelTest * @key intermittent */ @@ -68,9 +68,7 @@ public class InheritedChannelTest { private static final String OS_ARCH = ARCH.equals("i386") ? "i586" : ARCH; private static final Path LD_LIBRARY_PATH - = Paths.get(TEST_SRC, "lib", OS_NAME + "-" + OS_ARCH); - - private static final Path LAUNCHERLIB = LD_LIBRARY_PATH.resolve("libLauncher.so"); + = Paths.get(System.getProperty("java.library.path")); @DataProvider public Object[][] testCases() { @@ -99,11 +97,6 @@ public class InheritedChannelTest { @Test(dataProvider = "testCases") public void test(String desc, List opts) throws Throwable { - if (!Files.exists(LAUNCHERLIB)) { - System.out.println("Cannot find " + LAUNCHERLIB - + " - library not available for this system"); - return; - } System.out.println("LD_LIBRARY_PATH=" + LD_LIBRARY_PATH); List args = new ArrayList<>(); diff --git a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java index 0aae4520333..2935aeaf1ae 100644 --- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java +++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Launcher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, 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 @@ -35,7 +35,7 @@ import java.nio.channels.SocketChannel; public class Launcher { static { - System.loadLibrary("Launcher"); + System.loadLibrary("InheritedChannel"); } private static native void launch0(String cmdarray[], int fd) throws IOException; diff --git a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile deleted file mode 100644 index a62a0f4a383..00000000000 --- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# -# -# Makefile for building libLauncher.so -# -# To build libLauncher.so requires :- -# JAVA_HOME environment variable -# cc (Solaris) or gcc (Linux) on PATH -# -# The library is created in a architecture specific directory :- -# -# lib/solaris-sparc/libLauncher.so (Solaris/SPARC) -# lib/solaris-i586/libLauncher.so (Solaris/x86) -# lib/linux-i586/libLauncher.so (Linux/x86) - -ECHO = echo -MKDIR = mkdir -UNAME = uname - -uname := $(shell uname) - -ifeq ($(uname), SunOS) - PLATFORM = solaris - ISAINFO = isainfo - ARCH_DATA_MODEL=64 - ARCH := $(shell $(ISAINFO) -n) - CC = cc - LD = ld - CFLAGS = -D_REENTRANT -D__solaris__ - LDFLAGS_COMMON = -G - EXTRA_LIBS = -lc - CC += -m64 -Kpic -endif - -ifeq ($(uname), Linux) - PLATFORM = linux - archExpr = case "`$(UNAME) -m`" in \ - i[3-6]86) \ - $(ECHO) i586 \ - ;; \ - sparc*) \ - $(ECHO) sparc \ - ;; \ - *) \ - $(UNAME) -m \ - ;; \ - esac - ARCH := $(shell $(archExpr) ) - CC = gcc - CFLAGS = -fno-strict-aliasing -fPIC -W -Wall - LD = ld - LDFLAGS_COMMON = -shared - EXTRA_LIBS = -lc -endif - -LIBDIR=lib/$(PLATFORM)-$(ARCH) -LAUNCHERLIB=$(LIBDIR)/libLauncher.so - -all: java_home $(LAUNCHERLIB) - -$(LAUNCHERLIB) : $(LIBDIR) $(LIBDIR)/Launcher.o - $(LD) $(LDFLAGS_COMMON) -o $(LAUNCHERLIB) $(LIBDIR)/Launcher.o $(EXTRA_LIBS) - -$(LIBDIR): - @$(MKDIR) -p $(LIBDIR) - -$(LIBDIR)/Launcher.o : Launcher.c \ - Launcher.h - $(CC) -c $(CFLAGS) -o $(LIBDIR)/Launcher.o \ - -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(PLATFORM) Launcher.c - -Launcher.class Launcher.h : Launcher.java - $(JAVA_HOME)/bin/javac -h . Launcher.java - -java_home: -ifndef JAVA_HOME - @$(ECHO) "ERROR: Your JAVA_HOME environment variable is not set." - exit 1 -endif - diff --git a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/README b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/README index 814d91d49fe..24a563fc8e3 100644 --- a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/README +++ b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/README @@ -1,33 +1,16 @@ - The unit tests in this directory depend on a native launcher library -(libLauncher.so). This native library is built off-line and the -resulting libLauncher.so for each processor/OS combination is checked -into the workspace. The reason for this is because the test environment -may not have the required compilers/build environment. +(libInheritedChannel.so). This library is built by executing -In order to rebuild libLauncher.so the following is required :- +$ make test-image-jdk-jtreg-native -1. Check-out each of the shared libraries (sccs edit) +in the root directory of the OpenJDK clone. It will generate +libInheritedChannel.so in two locations: -2. Edit Launcher.c with the appropriate changes +$ $JDK_ROOT/build/$PLATFORM/support/test/jdk/jtreg/native/lib/libInheritedChannel.so +$ $JDK_ROOT/build/$PLATFORM/images/test/jdk/jtreg/native/libInheritedChannel.so -3. Execute the make script (gnumake all) on each processor/OS so -that the appropriate lib//libLauncher.so is built. +The test may then be run using jtreg for example as follows: -4. Test the changes - -5. Check-in each of the shared library (sccs delget) - - -For step 4 (re-building libLauncher.so) the following environment is required: - -(a) JAVA_HOME needs to be set to J2SE directory, eg:- - export JAVA_HOME=/usr/local/java/jdk1.5/solaris-sparc - -(b) For Solaris the SOS8 'cc' needs to be on the PATH, check using: - # cc -V - cc: Sun C 5.5 2003/03/12 - -(c) Execute the make script :- - Solaris: gnumake all - Linux: gmake all +$ jtreg -s -w:/tmp -r:/tmp -va -dir:$JDK_ROOT/test/jdk \ +-nativepath:$JDK_ROOT/build/$PLATFORM/support/test/jdk/jtreg/native/lib \ +java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java diff --git a/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so b/test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/linux-i586/libLauncher.so deleted file mode 100644 index bbfdd89394ac36a454fe955e5abf1bf51d6964ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4944 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 @@ -15,8 +36,6 @@ #include "jni.h" -#include "Launcher.h" - /* * Throws the exception of the given class name and detail message */