test/testlibrary/com/oracle/java/testlibrary/Platform.java

Print this page

        

@@ -25,31 +25,40 @@
 
 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 osArch      = System.getProperty("os.arch");
 
+    public static boolean is32bit() {
+        return dataModel.equals("32");
+    }
+
   public static boolean is64bit() {
     return dataModel.equals("64");
   }
 
   public static boolean isSolaris() {
-    return osName.toLowerCase().startsWith("sunos");
+        return isOs("sunos");
   }
 
   public static boolean isWindows() {
-    return osName.toLowerCase().startsWith("win");
+        return isOs("win");
   }
 
   public static boolean isOSX() {
-    return osName.toLowerCase().startsWith("mac");
+        return isOs("mac");
   }
 
   public static boolean isLinux() {
-    return osName.toLowerCase().startsWith("linux");
+        return isOs("linux");
   }
 
+    private static boolean isOs(String osname) {
+        return osName.toLowerCase().startsWith(osname.toLowerCase());
+    }
+
   public static String getOsName() {
     return osName;
   }
 
   public static boolean isDebugBuild() {

@@ -57,6 +66,38 @@
   }
 
   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'
+        return (isArch("i386") || isArch("x86"));
+    }
+
+    public static boolean isX64() {
+        // On OSX it's 'x86_64' and on other (Linux, Windows and Solaris) platforms it's 'amd64'
+        return (isArch("amd64") || isArch("x86_64"));
+    }
+
+    private static boolean isArch(String archname) {
+        return osArch.toLowerCase().startsWith(archname.toLowerCase());
+    }
+
+    public static String getOsArch() {
+        return osArch;
+    }
+
 }