Fix the mapping test in continuous
authorMatthias Clasen <mclasen@redhat.com>
Fri, 30 May 2014 14:18:36 +0000 (10:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 30 May 2014 14:22:35 +0000 (10:22 -0400)
It turns out that due to a recent gdm change, the inherited
signal mask has SIGUSR1 blocked - which is bad news for
tests using SIGUSR1. Fix the test by explicitly checking the
signal mask before using SIGUSR1.

tests/mapping-test.c

index e3c45b6..9128e35 100644 (file)
@@ -285,6 +285,17 @@ main (int argc,
       char *argv[])
 {
   int ret;
+#ifndef G_OS_WIN32
+  sigset_t sig_mask, old_mask;
+
+  sigemptyset (&sig_mask);
+  sigaddset (&sig_mask, SIGUSR1);
+  if (sigprocmask (SIG_UNBLOCK, &sig_mask, &old_mask) == 0)
+    {
+      if (sigismember (&old_mask, SIGUSR1))
+        g_message ("SIGUSR1 was blocked, unblocking it");
+    }
+#endif
 
   dir = g_get_current_dir ();
   filename = g_build_filename (dir, "maptest", NULL);