1 /* Copyright (C) 2013 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, see
16 <http://www.gnu.org/licenses/>. */
24 static int errors
= 0;
27 merror (const char *msg
)
30 printf ("Error: %s\n", msg
);
38 unsigned long pagesize
= getpagesize();
43 ret
= posix_memalign (&p
, sizeof (void *), -1);
46 merror ("posix_memalign (&p, sizeof (void *), -1) succeeded.");
48 if (ret
== ENOMEM
&& p
!= NULL
)
49 merror ("returned an error but pointer was modified");
53 ret
= posix_memalign (&p
, pagesize
, -pagesize
);
56 merror ("posix_memalign (&p, pagesize, -pagesize) succeeded.");
60 ret
= posix_memalign (&p
, sizeof (void *), 0);
62 if (ret
!= 0 || p
== NULL
)
63 merror ("posix_memalign (&p, sizeof (void *), 0) failed.");
67 ret
= posix_memalign (&p
, 0x300, 10);
70 merror ("posix_memalign (&p, 0x300, 10) succeeded.");
72 ret
= posix_memalign (&p
, 0, 10);
75 merror ("posix_memalign (&p, 0, 10) succeeded.");
79 ret
= posix_memalign (&p
, 0x100, 10);
82 merror ("posix_memalign (&p, 0x100, 10) failed.");
84 if (ret
== 0 && p
== NULL
)
85 merror ("returned success but pointer is NULL");
87 ptrval
= (unsigned long)p
;
89 if (ret
== 0 && (ptrval
& 0xff))
90 merror ("pointer is not aligned to 0x100");
97 #define TEST_FUNCTION do_test ()
98 #include "../test-skeleton.c"