< prev index next >

tests/system/src/test/java/test/util/Util.java

Print this page
rev 9568 : 8147427: refactor test launchers to support jake
Reviewed-by: kcr

*** 1,7 **** /* ! * Copyright (c) 2012, 2014, 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. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2012, 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. Oracle designates this
*** 23,39 **** --- 23,47 ---- * questions. */ package test.util; + import java.io.BufferedReader; + import java.io.BufferedWriter; + import java.io.File; + import java.io.FileReader; + import java.io.FileWriter; + import java.io.IOException; + import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import javafx.application.Platform; import junit.framework.AssertionFailedError; + import org.junit.Assert; /** * Utility methods for life-cycle testing */ public class Util {
*** 146,151 **** --- 154,221 ---- if (!futures.isEmpty()) { throw new AssertionFailedError("Exceeded timeout limit of " + TIMEOUT + " msec"); } } + private static String getJfxrtDir(final String classpath) { + final String jfxrt = "jfxrt.jar"; + String cp = classpath; + int idx = cp.replace('\\', '/').indexOf("/" + jfxrt); + if (idx >= 0) { + cp = cp.substring(0, idx); + idx = cp.lastIndexOf(File.pathSeparator); + if (idx >= 0) { + cp = cp.substring(idx, cp.length()); + } + return cp; + } + return null; + } + + public static ArrayList<String> createApplicationLaunchCommand( + String testAppName, + String testPldrName, + String testPolicy) throws IOException { + + final String classpath = System.getProperty("java.class.path"); + final String libraryPath = System.getProperty("java.library.path"); + + final String workerJavaCmd = System.getProperty("worker.java.cmd"); + final Boolean workerDebug = Boolean.getBoolean("worker.debug"); + + final ArrayList<String> cmd = new ArrayList<>(30); + + if (workerJavaCmd != null) { + cmd.add(workerJavaCmd); + } else { + cmd.add("java"); + } + + String jfxdir = getJfxrtDir(classpath); + Assert.assertNotNull("failed to find jfxdir",jfxdir); + cmd.add("-Djava.ext.dirs=" + jfxdir); + + cmd.add("-cp"); + cmd.add(classpath); + + if (testPldrName != null) { + cmd.add("-Djavafx.preloader=" + testPldrName); + } + + if (testPolicy != null) { + cmd.add("-Djava.security.manager"); + cmd.add("-Djava.security.policy=" + testPolicy); + } + + cmd.add(testAppName); + + if (workerDebug) { + System.err.println("Child cmd is"); + cmd.stream().forEach((s) -> { + System.err.println(" " + s); + }); + System.err.println("Child cmd: end"); + } + + return cmd; + } }
< prev index next >