8182154: merge jdk.testlibrary.Platform and jdk.test.lib.Platform
authoriignatyev
Tue, 27 Jun 2017 08:43:35 -0700
changeset 45709 841996818446
parent 45708 3512073b446f
child 45710 2247f7932f77
8182154: merge jdk.testlibrary.Platform and jdk.test.lib.Platform Reviewed-by: sspitsyn, plevart
jdk/test/java/awt/image/MultiResolutionImageTest.java
jdk/test/java/awt/xembed/server/RunTestXEmbed.java
jdk/test/java/lang/ClassLoader/LibraryPathProperty.java
jdk/test/java/lang/System/OsVersionTest.java
jdk/test/javax/management/remote/mandatory/notif/ListenerScaleTest.java
jdk/test/javax/swing/plaf/windows/6921687/bug6921687.java
jdk/test/lib/testlibrary/jdk/testlibrary/JDKToolFinder.java
jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java
jdk/test/sun/management/jmxremote/bootstrap/AbstractFilePermissionTest.java
jdk/test/sun/management/jmxremote/bootstrap/PasswordFilePermissionTest.java
jdk/test/sun/management/jmxremote/bootstrap/SSLConfigFilePermissionTest.java
jdk/test/sun/tools/jstack/DeadlockDetectionTest.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
--- 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");
--- 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 {
 
--- 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
  */
--- 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;
--- 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 {
 
--- 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");
+    }
 }
--- 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 <root>/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");
-    }
-}
--- 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;
--- 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 {
--- 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 {
--- 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
  */