2004-12-07 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@gnu.org>
Tue, 7 Dec 2004 20:44:46 +0000 (20:44 +0000)
committerRoland McGrath <roland@gnu.org>
Tue, 7 Dec 2004 20:44:46 +0000 (20:44 +0000)
* rt/tst-timer5.c (setup_test): New function.
(TEST_CLOCK_MISSING): Use it to punt test if timer_create does not
support CLOCK_MONOTONIC.

rt/tst-timer5.c

index 2683021..6466c8e 100644 (file)
@@ -4,10 +4,34 @@
 #include <unistd.h>
 
 #if defined CLOCK_MONOTONIC && defined _POSIX_MONOTONIC_CLOCK
+
 # define TEST_CLOCK    CLOCK_MONOTONIC
 # define TEST_CLOCK_MISSING(clock) \
-  (sysconf (_SC_MONOTONIC_CLOCK) > 0 ? NULL : #clock)
+  (setup_test () ? "CLOCK_MONOTONIC" : NULL)
+
+# include <stdio.h>
+
+static int
+setup_test (void)
+{
+  if (sysconf (_SC_MONOTONIC_CLOCK) <= 0)
+    return 1;
+
+  /* The user-level timers implementation doesn't support CLOCK_MONOTONIC,
+     even though sysconf claims it will.  */
+  timer_t t;
+  if (timer_create (TEST_CLOCK, NULL, &t) != 0)
+    {
+      printf ("timer_create: %m\n");
+      return 1;
+    }
+  timer_delete (t);
+
+  return 0;
+}
+
 # include "tst-timer4.c"
+
 #else
 # define TEST_FUNCTION 0
 # include "../test-skeleton.c"