< prev index next >

test/jdk/java/foreign/UpcallTestHelper.java

Print this page

39         private static void assertContains(List<String> lines, String shouldInclude, String name) {
40             assertTrue(lines.stream().anyMatch(line -> line.contains(shouldInclude)),
41                 "Did not find '" + shouldInclude + "' in " + name);
42         }
43 
44         public Output assertStdErrContains(String shouldInclude) {
45             assertContains(stderr, shouldInclude, "stderr");
46             return this;
47         }
48 
49         public Output assertStdOutContains(String shouldInclude) {
50             assertContains(stdout, shouldInclude, "stdout");
51             return this;
52         }
53     }
54 
55     public Output runInNewProcess(Class<?> target, boolean useSpec, String... programArgs) throws IOException, InterruptedException {
56         assert !target.isArray();
57 
58         List<String> command = new ArrayList<>(List.of(
59             "--enable-preview",
60             "--enable-native-access=ALL-UNNAMED",
61             "-Djava.library.path=" + System.getProperty("java.library.path"),
62             "-Djdk.internal.foreign.UpcallLinker.USE_SPEC=" + useSpec,
63             target.getName()
64         ));
65         command.addAll(Arrays.asList(programArgs));
66 
67         Process process = ProcessTools.createTestJvm(command).start();
68 
69         int result = process.waitFor();
70         assertNotEquals(result, 0);
71 
72         List<String> outLines = linesFromStream(process.getInputStream());
73         outLines.forEach(System.out::println);
74         List<String> errLines = linesFromStream(process.getErrorStream());
75         errLines.forEach(System.err::println);
76 
77         return new Output(outLines, errLines);
78     }
79 

39         private static void assertContains(List<String> lines, String shouldInclude, String name) {
40             assertTrue(lines.stream().anyMatch(line -> line.contains(shouldInclude)),
41                 "Did not find '" + shouldInclude + "' in " + name);
42         }
43 
44         public Output assertStdErrContains(String shouldInclude) {
45             assertContains(stderr, shouldInclude, "stderr");
46             return this;
47         }
48 
49         public Output assertStdOutContains(String shouldInclude) {
50             assertContains(stdout, shouldInclude, "stdout");
51             return this;
52         }
53     }
54 
55     public Output runInNewProcess(Class<?> target, boolean useSpec, String... programArgs) throws IOException, InterruptedException {
56         assert !target.isArray();
57 
58         List<String> command = new ArrayList<>(List.of(

59             "--enable-native-access=ALL-UNNAMED",
60             "-Djava.library.path=" + System.getProperty("java.library.path"),
61             "-Djdk.internal.foreign.UpcallLinker.USE_SPEC=" + useSpec,
62             target.getName()
63         ));
64         command.addAll(Arrays.asList(programArgs));
65 
66         Process process = ProcessTools.createTestJvm(command).start();
67 
68         int result = process.waitFor();
69         assertNotEquals(result, 0);
70 
71         List<String> outLines = linesFromStream(process.getInputStream());
72         outLines.forEach(System.out::println);
73         List<String> errLines = linesFromStream(process.getErrorStream());
74         errLines.forEach(System.err::println);
75 
76         return new Output(outLines, errLines);
77     }
78 
< prev index next >