# HG changeset patch # User iignatyev # Date 1498578215 25200 # Node ID 841996818446f69dc6b8a385e7cdf3512aa0d8af # Parent 3512073b446febbf1103f19d4c2667d6ba8ced9a 8182154: merge jdk.testlibrary.Platform and jdk.test.lib.Platform Reviewed-by: sspitsyn, plevart diff -r 3512073b446f -r 841996818446 jdk/test/java/awt/image/MultiResolutionImageTest.java --- a/jdk/test/java/awt/image/MultiResolutionImageTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/java/awt/image/MultiResolutionImageTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -36,15 +36,15 @@ import java.awt.RenderingHints; import java.awt.image.ImageObserver; import javax.swing.JPanel; -import jdk.testlibrary.Platform; +import jdk.test.lib.Platform; import java.awt.image.MultiResolutionImage; /** * @test @bug 8011059 * @author Alexander Scherbatiy * @summary [macosx] Make JDK demos look perfect on retina displays - * @library /lib/testlibrary/ - * @build jdk.testlibrary.Platform + * @library /test/lib + * @build jdk.test.lib.Platform * @requires (os.family == "mac") * @modules java.desktop/sun.awt * java.desktop/sun.awt.image diff -r 3512073b446f -r 841996818446 jdk/test/java/awt/xembed/server/RunTestXEmbed.java --- a/jdk/test/java/awt/xembed/server/RunTestXEmbed.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/java/awt/xembed/server/RunTestXEmbed.java Tue Jun 27 08:43:35 2017 -0700 @@ -28,9 +28,9 @@ * @summary Tests XEmbed server/client functionality * @author Denis Mikhalkin: area=awt.xembed * @requires (!(os.family=="mac") & !(os.family=="windows")) - * @library /lib/testlibrary + * @library /test/lib * @modules java.desktop/sun.awt - * @build jdk.testlibrary.Platform + * @build jdk.test.lib.Platform * @compile JavaClient.java TesterClient.java TestXEmbedServer.java * @run main/timeout=6000 RunTestXEmbed */ @@ -40,7 +40,7 @@ import java.util.logging.*; import java.util.*; import java.io.*; -import jdk.testlibrary.Platform; +import jdk.test.lib.Platform; public class RunTestXEmbed extends TestXEmbedServer { private static final Logger log = Logger.getLogger("test.xembed"); diff -r 3512073b446f -r 841996818446 jdk/test/java/lang/ClassLoader/LibraryPathProperty.java --- a/jdk/test/java/lang/ClassLoader/LibraryPathProperty.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/java/lang/ClassLoader/LibraryPathProperty.java Tue Jun 27 08:43:35 2017 -0700 @@ -27,16 +27,16 @@ * @summary Unit test for internal ClassLoader#initializePath(). * Quoted entries should get unquoted on Windows. * Empty entries should be replaced with dot. - * @library /lib/testlibrary + * @library /test/lib * @modules java.base/java.lang:open - * @build jdk.testlibrary.Platform + * @build jdk.test.lib.Platform * @run main LibraryPathProperty */ import java.lang.reflect.Method; import java.io.File; import java.util.Arrays; -import jdk.testlibrary.Platform; +import jdk.test.lib.Platform; public class LibraryPathProperty { diff -r 3512073b446f -r 841996818446 jdk/test/java/lang/System/OsVersionTest.java --- a/jdk/test/java/lang/System/OsVersionTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/java/lang/System/OsVersionTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -20,8 +20,9 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ + +import jdk.test.lib.Platform; import jdk.testlibrary.OutputAnalyzer; -import jdk.testlibrary.Platform; import jdk.testlibrary.ProcessTools; /* @@ -29,7 +30,8 @@ * @bug 8132374 * @summary Check that the value of the os.version property is equal * to the value of the corresponding OS provided tools. - * @library /lib/testlibrary + * @library /lib/testlibrary /test/lib + * @build jdk.test.lib.Platform * @run main OsVersionTest * @author Volker Simonis */ diff -r 3512073b446f -r 841996818446 jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java --- a/jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -27,9 +27,9 @@ * @summary Check that notification dispatch is not linear in number of MBeans. * @author Eamonn McManus * - * @library /lib/testlibrary + * @library /test/lib * - * @run build jdk.testlibrary.* ListenerScaleTest + * @run build jdk.test.lib.Platform ListenerScaleTest * @run main ListenerScaleTest */ @@ -71,7 +71,7 @@ import javax.management.remote.JMXConnectorServerFactory; import javax.management.remote.JMXServiceURL; -import jdk.testlibrary.Platform; +import jdk.test.lib.Platform; public class ListenerScaleTest { private static final int WARMUP_WITH_ONE_MBEAN = 1000; diff -r 3512073b446f -r 841996818446 jdk/test/javax/swing/plaf/windows/6921687/bug6921687.java --- a/jdk/test/javax/swing/plaf/windows/6921687/bug6921687.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/javax/swing/plaf/windows/6921687/bug6921687.java Tue Jun 27 08:43:35 2017 -0700 @@ -27,8 +27,8 @@ * @summary Mnemonic disappears after repeated attempts to open menu items using * mnemonics * @author Semyon Sadetsky - * @library /lib/testlibrary - * @build jdk.testlibrary.Platform + * @library /test/lib + * @build jdk.test.lib.Platform * @requires (os.family == "windows") * @modules java.desktop/com.sun.java.swing.plaf.windows * @run main bug6921687 @@ -41,7 +41,7 @@ import javax.swing.JMenuItem; import javax.swing.SwingUtilities; import javax.swing.UIManager; -import jdk.testlibrary.Platform; +import jdk.test.lib.Platform; public class bug6921687 { diff -r 3512073b446f -r 841996818446 jdk/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java --- a/jdk/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java Tue Jun 27 08:43:35 2017 -0700 @@ -99,7 +99,7 @@ + "When running test separately, set this property using '-D" + property + "=/path/to/jdk'."); } - Path toolName = Paths.get("bin", tool + (Platform.isWindows() ? ".exe" : "")); + Path toolName = Paths.get("bin", tool + (isWindows() ? ".exe" : "")); Path jdkTool = Paths.get(jdkPath, toolName.toString()); if (!jdkTool.toFile().exists()) { @@ -108,4 +108,8 @@ return jdkTool.toAbsolutePath().toString(); } + + private static boolean isWindows() { + return System.getProperty("os.name").toLowerCase().startsWith("win"); + } } diff -r 3512073b446f -r 841996818446 jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java --- a/jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java Sun Jun 25 23:51:46 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2013, 2016, 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 - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package jdk.testlibrary; -import java.util.regex.Pattern; -import java.io.RandomAccessFile; -import java.io.FileNotFoundException; -import java.io.IOException; - -/** - * @deprecated This class is deprecated. Use the one from - * {@code /test/lib/jdk/test/lib} - */ -@Deprecated -public class Platform { - private static final String osName = System.getProperty("os.name"); - private static final String dataModel = System.getProperty("sun.arch.data.model"); - private static final String vmVersion = System.getProperty("java.vm.version"); - private static final String jdkDebug = System.getProperty("jdk.debug"); - private static final String osArch = System.getProperty("os.arch"); - private static final String vmName = System.getProperty("java.vm.name"); - private static final String userName = System.getProperty("user.name"); - private static final String compiler = System.getProperty("sun.management.compiler"); - - public static boolean isClient() { - return vmName.endsWith(" Client VM"); - } - - public static boolean isServer() { - return vmName.endsWith(" Server VM"); - } - - public static boolean isGraal() { - return vmName.endsWith(" Graal VM"); - } - - public static boolean isMinimal() { - return vmName.endsWith(" Minimal VM"); - } - - public static boolean isTieredSupported() { - return compiler.contains("Tiered Compilers"); - } - - - public static boolean is32bit() { - return dataModel.equals("32"); - } - - public static boolean is64bit() { - return dataModel.equals("64"); - } - - public static boolean isAix() { - return isOs("aix"); - } - - public static boolean isLinux() { - return isOs("linux"); - } - - public static boolean isOSX() { - return isOs("mac"); - } - - public static boolean isSolaris() { - return isOs("sunos"); - } - - public static boolean isWindows() { - return isOs("win"); - } - - private static boolean isOs(String osname) { - return osName.toLowerCase().startsWith(osname.toLowerCase()); - } - - public static String getOsName() { - return osName; - } - - public static boolean isDebugBuild() { - return (jdkDebug.toLowerCase().contains("debug")); - } - - public static String getVMVersion() { - return vmVersion; - } - - // Returns true for sparc and sparcv9. - public static boolean isSparc() { - return isArch("sparc.*"); - } - - public static boolean isARM() { - return isArch("arm.*"); - } - - public static boolean isPPC() { - return isArch("ppc.*"); - } - - public static boolean isX86() { - // On Linux it's 'i386', Windows 'x86' without '_64' suffix. - return isArch("(i386)|(x86(?!_64))"); - } - - public static boolean isX64() { - // On OSX it's 'x86_64' and on other (Linux, Windows and Solaris) platforms it's 'amd64' - return isArch("(amd64)|(x86_64)"); - } - - private static boolean isArch(String archnameRE) { - return Pattern.compile(archnameRE, Pattern.CASE_INSENSITIVE) - .matcher(osArch) - .matches(); - } - - public static String getOsArch() { - return osArch; - } - - /** - * Return a boolean for whether we expect to be able to attach - * the SA to our own processes on this system. - */ - public static boolean shouldSAAttach() - throws IOException { - - if (isAix()) { - return false; // SA not implemented. - } else if (isLinux()) { - return canPtraceAttachLinux(); - } else if (isOSX()) { - return canAttachOSX(); - } else { - // Other platforms expected to work: - return true; - } - } - - /** - * On Linux, first check the SELinux boolean "deny_ptrace" and return false - * as we expect to be denied if that is "1". - */ - public static boolean canPtraceAttachLinux() - throws IOException { - - // SELinux deny_ptrace: - try(RandomAccessFile file = new RandomAccessFile("/sys/fs/selinux/booleans/deny_ptrace", "r")) { - if (file.readByte() != '0') { - return false; - } - } - catch(FileNotFoundException ex) { - // Ignored - } - - // YAMA enhanced security ptrace_scope: - // 0 - a process can PTRACE_ATTACH to any other process running under the same uid - // 1 - restricted ptrace: a process must be a children of the inferior or user is root - // 2 - only processes with CAP_SYS_PTRACE may use ptrace or user is root - // 3 - no attach: no processes may use ptrace with PTRACE_ATTACH - - try(RandomAccessFile file = new RandomAccessFile("/proc/sys/kernel/yama/ptrace_scope", "r")) { - byte yama_scope = file.readByte(); - if (yama_scope == '3') { - return false; - } - - if (!userName.equals("root") && yama_scope != '0') { - return false; - } - } - catch(FileNotFoundException ex) { - // Ignored - } - - // Otherwise expect to be permitted: - return true; - } - - /** - * On OSX, expect permission to attach only if we are root. - */ - public static boolean canAttachOSX() { - return userName.equals("root"); - } -} diff -r 3512073b446f -r 841996818446 jdk/test/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java --- a/jdk/test/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -22,8 +22,8 @@ */ import jdk.testlibrary.OutputAnalyzer; -import jdk.testlibrary.Platform; import jdk.testlibrary.ProcessTools; +import jdk.test.lib.Platform; import java.io.BufferedWriter; import java.io.IOException; diff -r 3512073b446f -r 841996818446 jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java --- a/jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -29,9 +29,9 @@ * @summary Check SSL config file permission for out-of-the-box management * @author Taras Ledkov * - * @library /lib/testlibrary + * @library /lib/testlibrary /test/lib * - * @build jdk.testlibrary.* AbstractFilePermissionTest Dummy + * @build jdk.testlibrary.* jdk.test.lib.Platform AbstractFilePermissionTest Dummy * @run main/timeout=300 PasswordFilePermissionTest */ public class PasswordFilePermissionTest extends AbstractFilePermissionTest { diff -r 3512073b446f -r 841996818446 jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java --- a/jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -29,9 +29,9 @@ * @summary Check SSL config file permission for out-of-the-box management * @author Taras Ledkov * - * @library /lib/testlibrary + * @library /lib/testlibrary /test/lib * - * @build jdk.testlibrary.* Dummy AbstractFilePermissionTest + * @build jdk.testlibrary.* jdk.test.lib.Platform Dummy AbstractFilePermissionTest * @run main/timeout=300 SSLConfigFilePermissionTest */ public class SSLConfigFilePermissionTest extends AbstractFilePermissionTest { diff -r 3512073b446f -r 841996818446 jdk/test/sun/tools/jstack/DeadlockDetectionTest.java --- a/jdk/test/sun/tools/jstack/DeadlockDetectionTest.java Sun Jun 25 23:51:46 2017 -0700 +++ b/jdk/test/sun/tools/jstack/DeadlockDetectionTest.java Tue Jun 27 08:43:35 2017 -0700 @@ -27,9 +27,9 @@ import jdk.test.lib.apps.LingeredApp; import jdk.test.lib.apps.LingeredAppWithDeadlock; +import jdk.test.lib.Platform; import jdk.testlibrary.Utils; -import jdk.testlibrary.Platform; import jdk.testlibrary.JDKToolLauncher; import jdk.testlibrary.OutputAnalyzer; import jdk.testlibrary.ProcessTools; @@ -40,7 +40,7 @@ * @library /test/lib * @library /lib/testlibrary * @build jdk.testlibrary.* - * @build jdk.test.lib.apps.* + * @build jdk.test.lib.apps.* jdk.test.lib.Platform * @build DeadlockDetectionTest * @run main DeadlockDetectionTest */