maint: update copyright
[gnulib.git] / tests / test-stdlib.c
index 5a8f045..a2743e4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdlib.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -38,38 +38,17 @@ static int exitcode = EXIT_SUCCESS;
    per POSIX 2008.  */
 verify (sizeof NULL == sizeof (void *));
 
+#if GNULIB_TEST_SYSTEM_POSIX
+# include "test-sys_wait.h"
+#else
+# define test_sys_wait_macros() 0
+#endif
+
 int
 main (void)
 {
-  /* Check subset of <sys/wait.h> macros that must be visible here.
-     Note that some of these macros are only portable when operating
-     on an lvalue.  */
-  int i;
-  for (i = 0; i < 0x8000; i = (i ? i << 1 : 1))
-    {
-      /* POSIX requires that for all valid process statuses, that
-         exactly one of these three macros is true.  But not all
-         possible 16-bit values map to valid process status.
-         Traditionally, 8 of the bits are for WIFEXITED, 7 of the bits
-         to tell between WIFSIGNALED and WIFSTOPPED, and either 0x80
-         or 0x8000 to flag that core was also dumped.  Since we don't
-         know which byte is WIFEXITED, we skip the both possible bits
-         that can signal core dump.  */
-      if (i == 0x80)
-        continue;
-      if (!!WIFSIGNALED (i) + !!WIFEXITED (i) + !!WIFSTOPPED (i) != 1)
-        return 1;
-    }
-  i = WEXITSTATUS (i) + WSTOPSIG (i) + WTERMSIG (i);
+  if (test_sys_wait_macros ())
+    return 1;
 
-  switch (i)
-    {
-#if 0
-  /* Gnulib doesn't guarantee these, yet.  */
-    case WNOHANG:
-    case WUNTRACED:
-#endif
-      break;
-    }
   return exitcode;
 }