X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Ffunctional%2Fstring_memset.c;h=e6887426bd86f8067b25c99a77c81527995f99da;hb=HEAD;hp=5c0dd0206c68afaf99dc4827f7872447306f593c;hpb=8dc17fa12d0ed5d041e6521ebf3249ffd192c31b;p=libc-test diff --git a/src/functional/string_memset.c b/src/functional/string_memset.c index 5c0dd02..e688742 100644 --- a/src/functional/string_memset.c +++ b/src/functional/string_memset.c @@ -3,7 +3,7 @@ #include #include "test.h" -#define N 400 +#define N 500 static char buf[N]; static char buf2[N]; @@ -11,7 +11,7 @@ static void *(*volatile pmemset)(void *, int, size_t); static char *aligned(void *p) { - return (char*)(((uintptr_t)p + 63) & -64U); + return (char*)(((uintptr_t)p + 63) & -64); } static void test_align(int align, int len) @@ -21,7 +21,7 @@ static void test_align(int align, int len) char *p; int i; - if (s - buf + len >= N) + if (len + 64 > buf + N - s || len + 64 > buf2 + N - want) abort(); for (i = 0; i < N; i++) buf[i] = buf2[i] = ' '; @@ -30,11 +30,11 @@ static void test_align(int align, int len) p = pmemset(s, '#', len); if (p != s) t_error("memset(%p,...) returned %p\n", s, p); - for (i = 0; i < N; i++) - if (buf[i] != buf2[i]) { + for (i = -64; i < len+64; i++) + if (s[i] != want[i]) { t_error("memset(align %d, '#', %d) failed at pos %d\n", align, len, i); - t_printf("got : '%.*s'\n", N, s); - t_printf("want: '%.*s'\n", N, want); + t_printf("got : '%.*s'\n", len+128, s-64); + t_printf("want: '%.*s'\n", len+128, want-64); break; } } @@ -57,8 +57,8 @@ int main(void) pmemset = memset; - for (i = 0; i < 16; i++) - for (j = 0; j < 200; j++) + for (i = 0; i < 64; i++) + for (j = 0; j < N-256; j++) test_align(i,j); test_value('c');