8182154: merge jdk.testlibrary.Platform and jdk.test.lib.Platform
Reviewed-by: sspitsyn, plevart
--- 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
*/