Echo the commands being executed
[lttng-ust-java-tests.git] / src / test / java / org / lttng / ust / agent / utils / LttngSession.java
index cc3b4d74317bbfe9842c3c724930c38b5eb5682c..8869ef5da8c901acac2de140b3ee63772d394aa2 100644 (file)
@@ -28,13 +28,25 @@ import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.Arrays;
 import java.util.List;
+import java.util.StringJoiner;
 import java.util.UUID;
 import java.util.stream.Collectors;
 
+/**
+ * Java representation of a LTTng tracing session. It uses the command-line
+ * "lttng" tool to manipulate the session. Creating an instance will run
+ * "lttng create", close()'ing it will run "lttng destroy".
+ *
+ * @author Alexandre Montplaisir
+ */
 public class LttngSession implements AutoCloseable {
 
+    /**
+     * Tracing domains as they are defined by lttng-tools
+     */
     public enum Domain {
-        JUL("-j"),
+        /** The JUL (java.util.logging) domain */
+        JUL("-j"), /** The log4j (org.apache.log4j) domain */
         LOG4J("-l");
 
         private final String flag;
@@ -43,6 +55,10 @@ public class LttngSession implements AutoCloseable {
             this.flag = flag;
         }
 
+        /**
+         * @return The corresponding command-line flag to pass to options like
+         *         "lttng enable-event"
+         */
         public String flag() {
             return flag;
         }
@@ -53,6 +69,15 @@ public class LttngSession implements AutoCloseable {
 
     private volatile boolean channelCreated = false;
 
+    /**
+     * Constructor to create a new LTTng tracing session.
+     *
+     * @param sessionName
+     *            The name of the session to use. It can be null, in which case
+     *            we will provide a unique random name.
+     * @param domain
+     *            The tracing domain of this session
+     */
     public LttngSession(String sessionName, Domain domain) {
         if (sessionName != null) {
             this.sessionName = sessionName;
@@ -123,6 +148,11 @@ public class LttngSession implements AutoCloseable {
                 "-s", sessionName));
     }
 
+    /**
+     * Start tracing
+     *
+     * @return If the command executed successfully (return code = 0).
+     */
     public boolean start() {
         /*
          * We have to enable a channel for 'lttng start' to work. However, we
@@ -203,7 +233,11 @@ public class LttngSession implements AutoCloseable {
     }
 
     /**
-     * Just to test the environment / stdout are working correctly
+     * Simple command to test that the environment / stdout are working
+     * correctly.
+     *
+     * @param args
+     *            Command-line arguments
      */
     public static void main(String[] args) {
         List<String> command = Arrays.asList("ls", "-l");
@@ -212,12 +246,20 @@ public class LttngSession implements AutoCloseable {
 
     private static boolean executeCommand(List<String> command) {
         try {
+            /* "echo" the command to stdout */
+            StringJoiner sj = new StringJoiner(" ", "$ ", "");
+            command.stream().forEach(sj::add);
+            System.out.println(sj.toString());
+
             ProcessBuilder builder = new ProcessBuilder(command);
             builder.redirectErrorStream(true);
             builder.redirectOutput(Redirect.INHERIT);
 
             Process p = builder.start();
             int ret = p.waitFor();
+
+            System.out.println("(returned from command)");
+
             return (ret == 0);
 
         } catch (IOException | InterruptedException e) {
This page took 0.023713 seconds and 4 git commands to generate.