Isolate the functions for executing shell commands in a new ShellUtils
[lttng-ust-java-tests.git] / src / test / java / org / lttng / ust / agent / utils / MiscTestUtils.java
index 0dd73a1ecd2dc2257d59108a6292ef217189fcbe..cfd4a8e47c2f5de5796120c6324d188620d95e1f 100644 (file)
@@ -1,9 +1,24 @@
+/*
+ * Copyright (C) 2015, EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
 package org.lttng.ust.agent.utils;
 
 import java.io.IOException;
-import java.lang.ProcessBuilder.Redirect;
-import java.nio.file.Files;
-import java.nio.file.Path;
 import java.util.Arrays;
 import java.util.List;
 
@@ -73,6 +88,12 @@ public final class MiscTestUtils {
         }
     }
 
+    /**
+     * Check if there is a user session daemon currently running on the system.
+     * It needs to be of the same user as the application running this program.
+     *
+     * @return If there is a user session daemon currently running
+     */
     public static boolean checkForUserSessiond() {
         String userName = System.getProperty("user.name");
 
@@ -80,48 +101,24 @@ public final class MiscTestUtils {
         String shortUserName = userName.substring(0, Math.min(userName.length(), 7));
 
         List<String> command = Arrays.asList("ps", "-e", "u");
-        List<String> output = getOutputFromCommand(false, command);
+        List<String> output = ShellUtils.getOutputFromCommand(false, command);
         return output.stream()
                 .filter(s -> s.contains("lttng-sessiond"))
                 .anyMatch(s -> s.startsWith(shortUserName));
     }
 
+    /**
+     * Check if there is a root user session daemon daemon currently running on
+     * the system.
+     *
+     * @return If there is a root session daemon currently running
+     */
     public static boolean checkForRootSessiond() {
         List<String> command = Arrays.asList("ps", "-e", "u");
-        List<String> output = getOutputFromCommand(false, command);
+        List<String> output = ShellUtils.getOutputFromCommand(false, command);
         return output.stream()
                 .filter(s -> s.contains("lttng-sessiond"))
                 .anyMatch(s -> s.startsWith("root"));
     }
 
-
-    static List<String> getOutputFromCommand(List<String> command) {
-        return MiscTestUtils.getOutputFromCommand(true, command);
-    }
-
-    static List<String> getOutputFromCommand(boolean print, List<String> command) {
-        try {
-            Path tempFile = Files.createTempFile("test-output", null);
-
-            ProcessBuilder builder = new ProcessBuilder(command);
-            builder.redirectErrorStream(true);
-            builder.redirectOutput(Redirect.to(tempFile.toFile()));
-
-            Process p = builder.start();
-            p.waitFor();
-
-            List<String> lines = Files.readAllLines(tempFile);
-            Files.delete(tempFile);
-
-            if (print) {
-                /* Also print the output to the console */
-                lines.stream().forEach(s -> System.out.println(s));
-            }
-
-            return lines;
-
-        } catch (IOException | InterruptedException e) {
-            return null;
-        }
-    }
 }
This page took 0.023342 seconds and 4 git commands to generate.