Fix struct timespec normalization (as used in many other places).
[platform/upstream/glibc.git] / rt / tst-aio7.c
index b2ba813..0de6088 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for AIO POSIX compliance.
-   Copyright (C) 2001,02 Free Software Foundation, Inc.
+   Copyright (C) 2001-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
 
 #include <aio.h>
 #include <error.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -117,12 +117,13 @@ do_test (void)
 
   /* Test for aio_suspend() suspending even if completed elements in list.  */
   {
-    const int BYTES = 8, ELEMS = 2;
+#define BYTES 8
+    const int ELEMS = 2;
     int i, r, fd;
-    char buff[BYTES];
+    static char buff[BYTES];
     char name[] = "/tmp/aio7.XXXXXX";
     struct timespec timeout;
-    struct aiocb cb0, cb1;
+    static struct aiocb cb0, cb1;
     struct aiocb *list[ELEMS];
 
     fd = mkstemp (name);
@@ -181,13 +182,8 @@ do_test (void)
        ++result;
       }
 
-    /* Cancel i/o on cb1. */
-    r = aio_cancel (piped[0], &cb1);
-    if (r != AIO_CANCELED)
-      {
-       puts ("aio_cancel did not return AIO_CANCELED");
-       ++result;
-      }
+    /* Note that CB1 is still pending, and so cannot be an auto variable.
+       Thus we also test that exiting with an outstanding request works.  */
   }
 
   return result;