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
|