]> git.sur5r.net Git - i3/i3/commitdiff
tests: SocketActivation: append to the logfile, more comments
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Oct 2011 22:31:33 +0000 (23:31 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 4 Oct 2011 22:31:33 +0000 (23:31 +0100)
testcases/lib/SocketActivation.pm

index 70bbec0508fa4bf40438712d300feb31c75fcffd..ef182012d8f193e616c8d783bcff51fe1a0d3053 100644 (file)
@@ -54,6 +54,8 @@ sub activate_i3 {
         $ENV{LISTEN_PID} = $$;
         $ENV{LISTEN_FDS} = 1;
         $ENV{DISPLAY} = $args{display};
+        # Only pass file descriptors 0 (stdin), 1 (stdout), 2 (stderr) and
+        # 3 (socket) to the child.
         $^F = 3;
 
         # If the socket does not use file descriptor 3 by chance already, we
@@ -63,9 +65,15 @@ sub activate_i3 {
             POSIX::dup2(fileno($socket), 3);
         }
 
-        # now execute i3
+        # Construct the command to launch i3. Use maximum debug level, disable
+        # the interactive signalhandler to make it crash immediately instead.
         my $i3cmd = abs_path("../i3") . " -V -d all --disable-signalhandler";
-        my $cmd = "exec $i3cmd -c $args{configfile} >$args{logpath} 2>&1";
+
+        # Append to $args{logpath} instead of overwriting because i3 might be
+        # run multiple times in one testcase.
+        my $cmd = "exec $i3cmd -c $args{configfile} >>$args{logpath} 2>&1";
+
+        # We need to use the shell due to using output redirections.
         exec "/bin/sh", '-c', $cmd;
 
         # if we are still here, i3 could not be found or exec failed. bail out.