]> git.sur5r.net Git - i3/i3/commitdiff
Fix testsuite on OpenBSD
authorChristopher Zimmermann <madroach@gmerlin.de>
Sat, 11 Jun 2016 12:47:17 +0000 (14:47 +0200)
committerChristopher Zimmermann <madroach@gmerlin.de>
Sat, 11 Jun 2016 12:47:17 +0000 (14:47 +0200)
OpenBSD perl forks for glob().
Therefore attach SIGCHLD handler as late as possible.

testcases/lib/StartXServer.pm
testcases/t/180-fd-leaks.t

index 86a37d926a34877958548bbd0182dc264fafe487..d3042c07195ead9543266a592036e49772b7dbc2 100644 (file)
@@ -69,15 +69,6 @@ sub start_xserver {
     my @displays = ();
     my @childpids = ();
 
-    $SIG{CHLD} = sub {
-        my $child = waitpid -1, POSIX::WNOHANG;
-        @pids = grep { $_ != $child } @pids;
-        return unless @pids == 0;
-        print STDERR "All X server processes died.\n";
-        print STDERR "Use ./complete-run.pl --parallel 1 --keep-xserver-output\n";
-        exit 1;
-    };
-
     # Yeah, I know it’s non-standard, but Perl’s POSIX module doesn’t have
     # _SC_NPROCESSORS_CONF.
     my $num_cores;
@@ -101,6 +92,15 @@ sub start_xserver {
 
     say "Starting $parallel Xephyr instances, starting at :$displaynum...";
 
+    $SIG{CHLD} = sub {
+        my $child = waitpid -1, POSIX::WNOHANG;
+        @pids = grep { $_ != $child } @pids;
+        return unless @pids == 0;
+        print STDERR "All X server processes died.\n";
+        print STDERR "Use ./complete-run.pl --parallel 1 --keep-xserver-output\n";
+        exit 1;
+    };
+
     my @sockets_waiting;
     for (1 .. $parallel) {
         my $socket = fork_xserver($keep_xserver_output, $displaynum,
index 454bfe7d34ef43a375555a9bb6c4cf6a781f2a8d..16272d3195d66be5f0b5204135660a5a8382fd6e 100644 (file)
@@ -20,6 +20,9 @@ use i3test;
 use POSIX qw(mkfifo);
 use File::Temp qw(:POSIX tempfile);
 
+SKIP: {
+skip "Procfs not available on $^O", 1 if $^O eq 'openbsd';
+
 my $i3 = i3(get_socket_path());
 
 my $tmp = tmpnam();
@@ -59,4 +62,6 @@ for my $fd (keys %fds) {
 
 is(scalar keys %fds, 0, 'No file descriptors leaked');
 
+}
+
 done_testing;