< prev index next >

test/lib/jdk/test/lib/containers/docker/Common.java

Print this page

        

@@ -29,10 +29,12 @@
 
 import java.io.File;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
+import java.util.List;
+import java.util.stream.Collectors;
 import jdk.test.lib.containers.docker.DockerRunOptions;
 import jdk.test.lib.containers.docker.DockerTestUtils;
 import jdk.test.lib.Utils;
 import jdk.test.lib.process.OutputAnalyzer;
 

@@ -85,6 +87,21 @@
     // log beginning of a test case
     public static void logNewTestCase(String msg) {
         System.out.println("========== NEW TEST CASE:      " + msg);
     }
 
+    // find process ID from JCMD output
+    public static long findPidFromJcmdOutput(OutputAnalyzer out, String name) throws Exception {
+        List<String> l = out.asLines()
+            .stream()
+            .filter(s -> s.contains(name))
+            .collect(Collectors.toList());
+        if (l.isEmpty()) {
+            throw new RuntimeException("Could not find matching process");
+        }
+        String psInfo = l.get(0);
+        System.out.println("findPidFromJcmdOutput(): psInfo: " + psInfo);
+        String pid = psInfo.substring(0, psInfo.indexOf(' '));
+        System.out.println("findPidFromJcmdOutput(): pid: " + pid);
+        return Long.parseLong(pid);
+    }
 }
< prev index next >