diff options
Diffstat (limited to 'winsup/mingw/mingwex/tst-aligned-malloc.c')
-rwxr-xr-x | winsup/mingw/mingwex/tst-aligned-malloc.c | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/winsup/mingw/mingwex/tst-aligned-malloc.c b/winsup/mingw/mingwex/tst-aligned-malloc.c deleted file mode 100755 index 43ee734bc..000000000 --- a/winsup/mingw/mingwex/tst-aligned-malloc.c +++ /dev/null @@ -1,90 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <time.h> -#include <string.h> -#include <errno.h> -#include <malloc.h> - -#ifdef HAVE_STDINT_H -# include <stdint.h> /* uintptr_t */ -#else -# define uintptr_t size_t -#endif - -#define NELEM(a) (sizeof(a) / sizeof(a[0])) - -static int -is_aligned (void *p, size_t alignment, size_t offset) -{ - return !((((uintptr_t) p) + offset) & (alignment - 1)); -} - -#define MAX_SIZE (1 << sizeof(unsigned char)) -#define NP 1000 -#define NTST 100000U - -#define ERRMSG fprintf(stderr, "Iteration %u, align = %u, offset = %u, size = %u (oldsize = %u), errno = %d (%s)\n", i, align[j % NELEM(align)], offset[j % NELEM(offset)], size[j], oldsize, errno, strerror(errno)) - -int -main (void) -{ - unsigned char *p[NP]; - size_t size[NP]; - size_t align[] = { 2, 4, 8, 16, 32, 64 }; - size_t offset[20]; - unsigned i; - - srand (time (NULL)); - - for (i = 0; i < NELEM (p); ++i) - { - p[i] = 0; - size[i] = 0; - } - - for (i = 0; i < NELEM (offset); ++i) - offset[i] = rand () % 512; - - for (i = 0; i < NTST; ++i) - { - size_t oldsize; - unsigned j, k; - j = rand () % NELEM (p); - oldsize = size[j]; - p[j] = __mingw_aligned_offset_realloc (p[j], - size[j] = rand () % MAX_SIZE, - align[j % NELEM (align)], - offset[j % NELEM (offset)]); - - if (size[j] && !p[j]) - { - fprintf (stderr, "Returned NULL!\n"); - ERRMSG; - return EXIT_FAILURE; - } - if (size[j] && !is_aligned (p[j], - align[j % NELEM (align)], - offset[j % NELEM (offset)])) - { - fprintf (stderr, "Misaligned block!\n"); - ERRMSG; - return EXIT_FAILURE; - } - if (oldsize > size[j]) - oldsize = size[j]; - for (k = 0; k < oldsize; ++k) - if (p[j][k] != k) - { - fprintf (stderr, "Miscopied block!\n"); - ERRMSG; - return EXIT_FAILURE; - } - for (k = 0; k < size[j]; ++k) - p[j][k] = k; - } - - for (i = 0; i < NELEM (p); ++i) - __mingw_aligned_free (p[i]); - - return EXIT_SUCCESS; -} |