test/tools/launcher/TestHelper.java
Print this page
*** 65,79 ****
--- 65,83 ----
static final File TEST_SOURCES_DIR;
static final String JAVAHOME = System.getProperty("java.home");
static final String JAVA_BIN;
static final String JAVA_JRE_BIN;
+ static final String JAVA_LIB;
+ static final String JAVA_JRE_LIB;
static final boolean isSDK = JAVAHOME.endsWith("jre");
static final String javaCmd;
static final String javawCmd;
static final String javacCmd;
static final String jarCmd;
+ static final boolean haveServerVM;
+ static final boolean haveClientVM;
static final JavaCompiler compiler;
static final boolean debug = Boolean.getBoolean("TestHelper.Debug");
static final boolean isWindows =
*** 86,95 ****
--- 90,100 ----
System.getProperty("sun.arch.data.model").equals("32");
static final boolean isSolaris =
System.getProperty("os.name", "unknown").startsWith("SunOS");
static final boolean isLinux =
System.getProperty("os.name", "unknown").startsWith("Linux");
+ static final String JVM_DLL = isWindows ? "jvm.dll" : "libjvm.so";
static final boolean isSparc = System.getProperty("os.arch").startsWith("sparc");
// make a note of the golden default locale
static final Locale DefaultLocale = Locale.getDefault();
*** 122,137 ****
--- 127,151 ----
}
if (!is64Bit && !is32Bit) {
throw new RuntimeException("arch model is not 32 or 64 bit ?");
}
compiler = ToolProvider.getSystemJavaCompiler();
+
File binDir = (isSDK)
? new File((new File(JAVAHOME)).getParentFile(), "bin")
: new File(JAVAHOME, "bin");
JAVA_BIN = binDir.getAbsolutePath();
JAVA_JRE_BIN = new File((new File(JAVAHOME)).getParentFile(),
(isSDK) ? "jre/bin" : "bin").getAbsolutePath();
+
+ File libDir = (isSDK)
+ ? new File((new File(JAVAHOME)).getParentFile(), "lib")
+ : new File(JAVAHOME, "lib");
+ JAVA_LIB = libDir.getAbsolutePath();
+ JAVA_JRE_LIB = new File((new File(JAVAHOME)).getParentFile(),
+ (isSDK) ? "jre/lib" : "lib").getAbsolutePath();
+
File javaCmdFile = (isWindows)
? new File(binDir, "java.exe")
: new File(binDir, "java");
javaCmd = javaCmdFile.getAbsolutePath();
if (!javaCmdFile.canExecute()) {
*** 166,176 ****
--- 180,205 ----
if (!javacCmdFile.canExecute()) {
throw new RuntimeException("java <" + javacCmd +
"> must exist and should be executable");
}
+
+ haveClientVM = haveVmVariant("client");
+ haveServerVM = haveVmVariant("server");
}
+ private static boolean haveVmVariant(String type) {
+ if (isWindows) {
+ File vmDir = new File(JAVA_JRE_BIN, type);
+ File jvmFile = new File(vmDir, JVM_DLL);
+ return jvmFile.exists();
+ } else {
+ File vmDir = new File(JAVA_JRE_LIB, type);
+ File vmArchDir = new File(vmDir, getJreArch());
+ File jvmFile = new File(vmArchDir, JVM_DLL);
+ return jvmFile.exists();
+ }
+ }
void run(String[] args) throws Exception {
int passed = 0, failed = 0;
final Pattern p = (args != null && args.length > 0)
? Pattern.compile(args[0])
: null;