17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8087112
27 * @library /lib/testlibrary/
28 * @modules jdk.incubator.httpclient
29 * java.logging
30 * jdk.httpserver
31 * @build jdk.testlibrary.SimpleSSLContext jdk.testlibrary.Utils
32 * @compile ../../../../com/sun/net/httpserver/LogFilter.java
33 * @compile ../../../../com/sun/net/httpserver/FileServerHandler.java
34 * @compile ../ProxyServer.java
35 * @build Security
36 *
37 * @run driver/timeout=90 Driver
38 */
39
40 /**
41 * driver required for allocating free portnumbers and putting this number
42 * into security policy file used in some tests.
43 *
44 * The tests are in Security.java and port number supplied in -Dport.number
45 * and -Dport.number1 for tests that require a second free port
46 */
47 import java.io.File;
48 import java.io.FileOutputStream;
49 import java.io.IOException;
50 import java.io.InputStream;
51 import java.io.OutputStream;
52 import java.util.ArrayList;
53 import java.util.List;
54 import java.util.stream.Collectors;
55
56 import jdk.testlibrary.OutputAnalyzer;
57 import jdk.testlibrary.Utils;
58
59 /**
60 * Driver for tests
61 */
62 public class Driver {
63 // change the default value to "true" to get the subprocess traces.
64 final static boolean DEBUG = Boolean.parseBoolean(System.getProperty("test.debug", "false"));
65
66 public static void main(String[] args) throws Throwable {
67 System.out.println("Starting Driver");
68 runtest("1.policy", "1");
69 runtest("10.policy", "10");
70 runtest("11.policy", "11");
71 runtest("12.policy", "12");
72 System.out.println("DONE");
73 }
74
75 static class Logger extends Thread {
76 private final OutputStream ps;
106 ps.close();
107 } catch (Throwable e) {
108 e.printStackTrace();
109 }
110 }
111 }
112
113 public static void runtest(String policy, String testnum) throws Throwable {
114
115 String testJdk = System.getProperty("test.jdk", "?");
116 String testSrc = System.getProperty("test.src", "?");
117 String testClassPath = System.getProperty("test.class.path", "?");
118 String testClasses = System.getProperty("test.classes", "?");
119 String sep = System.getProperty("file.separator", "?");
120 String javaCmd = testJdk + sep + "bin" + sep + "java";
121 int retval = 10; // 10 is special exit code denoting a bind error
122 // in which case, we retry
123 while (retval == 10) {
124 List<String> cmd = new ArrayList<>();
125 cmd.add(javaCmd);
126 cmd.add("-Dtest.jdk=" + testJdk);
127 cmd.add("-Dtest.src=" + testSrc);
128 cmd.add("-Dtest.classes=" + testClasses);
129 cmd.add("-Djava.security.manager");
130 cmd.add("--add-modules=jdk.incubator.httpclient");
131 cmd.add("-Djava.security.policy=" + testSrc + sep + policy);
132 cmd.add("-Dport.number=" + Integer.toString(Utils.getFreePort()));
133 cmd.add("-Dport.number1=" + Integer.toString(Utils.getFreePort()));
134 cmd.add("-Djdk.httpclient.HttpClient.log=all,frames:all");
135 cmd.add("-cp");
136 cmd.add(testClassPath);
137 cmd.add("Security");
138 cmd.add(testnum);
139
140 ProcessBuilder processBuilder = new ProcessBuilder(cmd)
141 .redirectOutput(ProcessBuilder.Redirect.PIPE)
142 .redirectErrorStream(true);
143
144 String cmdLine = cmd.stream().collect(Collectors.joining(" "));
145 Process child = processBuilder.start();
146 Logger log = new Logger(cmdLine, child, testClasses);
147 log.start();
148 retval = child.waitFor();
149 System.out.println("retval = " + retval);
150 }
151 if (retval != 0) {
152 Thread.sleep(2000);
153 throw new RuntimeException("Non zero return value");
154 }
155 }
156 }
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /*
25 * @test
26 * @bug 8087112
27 * @library /lib/testlibrary/
28 * @modules jdk.incubator.httpclient
29 * java.logging
30 * jdk.httpserver
31 * @build jdk.testlibrary.SimpleSSLContext jdk.testlibrary.Utils
32 * @compile ../../../../com/sun/net/httpserver/LogFilter.java
33 * @compile ../../../../com/sun/net/httpserver/FileServerHandler.java
34 * @compile ../ProxyServer.java
35 * @build Security
36 *
37 * @run main/othervm Driver
38 */
39
40 /**
41 * driver required for allocating free portnumbers and putting this number
42 * into security policy file used in some tests.
43 *
44 * The tests are in Security.java and port number supplied in -Dport.number
45 * and -Dport.number1 for tests that require a second free port
46 */
47 import java.io.File;
48 import java.io.FileOutputStream;
49 import java.io.IOException;
50 import java.io.InputStream;
51 import java.io.OutputStream;
52 import java.util.ArrayList;
53 import java.util.List;
54 import java.util.stream.Collectors;
55 import jdk.testlibrary.Utils;
56
57 /**
58 * Driver for tests
59 */
60 public class Driver {
61 // change the default value to "true" to get the subprocess traces.
62 final static boolean DEBUG = Boolean.parseBoolean(System.getProperty("test.debug", "false"));
63
64 public static void main(String[] args) throws Throwable {
65 System.out.println("Starting Driver");
66 runtest("1.policy", "1");
67 runtest("10.policy", "10");
68 runtest("11.policy", "11");
69 runtest("12.policy", "12");
70 System.out.println("DONE");
71 }
72
73 static class Logger extends Thread {
74 private final OutputStream ps;
104 ps.close();
105 } catch (Throwable e) {
106 e.printStackTrace();
107 }
108 }
109 }
110
111 public static void runtest(String policy, String testnum) throws Throwable {
112
113 String testJdk = System.getProperty("test.jdk", "?");
114 String testSrc = System.getProperty("test.src", "?");
115 String testClassPath = System.getProperty("test.class.path", "?");
116 String testClasses = System.getProperty("test.classes", "?");
117 String sep = System.getProperty("file.separator", "?");
118 String javaCmd = testJdk + sep + "bin" + sep + "java";
119 int retval = 10; // 10 is special exit code denoting a bind error
120 // in which case, we retry
121 while (retval == 10) {
122 List<String> cmd = new ArrayList<>();
123 cmd.add(javaCmd);
124 cmd.add("-ea");
125 cmd.add("-esa");
126 cmd.add("-Dtest.jdk=" + testJdk);
127 cmd.add("-Dtest.src=" + testSrc);
128 cmd.add("-Dtest.classes=" + testClasses);
129 cmd.add("-Djava.security.manager");
130 cmd.add("--add-modules=jdk.incubator.httpclient");
131 cmd.add("-Djava.security.policy=" + testSrc + sep + policy);
132 cmd.add("-Dport.number=" + Integer.toString(Utils.getFreePort()));
133 cmd.add("-Dport.number1=" + Integer.toString(Utils.getFreePort()));
134 cmd.add("-Djdk.httpclient.HttpClient.log=all,frames:all");
135 cmd.add("-cp");
136 cmd.add(testClassPath);
137 cmd.add("Security");
138 cmd.add(testnum);
139
140 ProcessBuilder processBuilder = new ProcessBuilder(cmd)
141 .redirectOutput(ProcessBuilder.Redirect.PIPE)
142 .redirectErrorStream(true);
143
144 String cmdLine = cmd.stream().collect(Collectors.joining(" "));
145 long start = System.currentTimeMillis();
146 Process child = processBuilder.start();
147 Logger log = new Logger(cmdLine, child, testClasses);
148 log.start();
149 retval = child.waitFor();
150 long elapsed = System.currentTimeMillis() - start;
151 System.out.println("Security " + testnum
152 + ": retval = " + retval
153 + ", duration=" + elapsed+" ms");
154 }
155 if (retval != 0) {
156 Thread.sleep(2000);
157 throw new RuntimeException("Non zero return value");
158 }
159 }
160 }
|