test-memcpy: Actually reverse source and destination

Looks like an oversight in memcpy tests resulted in s2 and s1 not being
swapped for the second iteration of the memcpy test.  Fix it.  Also fix
a formatting nit.

Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
Siddhesh Poyarekar 2022-04-06 12:45:39 +05:30
parent cbc2c56bab
commit dfc7bf8a24
1 changed files with 24 additions and 22 deletions

View File

@ -84,7 +84,7 @@ do_one_test (impl_t *impl, char *dst, const char *src, size_t len)
static void static void
do_test (size_t align1, size_t align2, size_t len) do_test (size_t align1, size_t align2, size_t len)
{ {
size_t i, j, repeats; size_t i, j;
char *s1, *s2; char *s1, *s2;
align1 &= 4095; align1 &= 4095;
@ -97,13 +97,16 @@ do_test (size_t align1, size_t align2, size_t len)
s1 = (char *)(buf1 + align1); s1 = (char *)(buf1 + align1);
s2 = (char *)(buf2 + align2); s2 = (char *)(buf2 + align2);
for (repeats = 0; repeats < 2; ++repeats) for (size_t repeats = 0; repeats < 2; ++repeats)
{ {
for (i = 0, j = 1; i < len; i++, j += 23) for (i = 0, j = 1; i < len; i++, j += 23)
s1[i] = j; s1[i] = j;
FOR_EACH_IMPL (impl, 0) FOR_EACH_IMPL (impl, 0)
do_one_test (impl, s2, s1, len); do_one_test (impl, s2, s1, len);
s1 = (char *) (buf2 + align1);
s2 = (char *) (buf1 + align2);
} }
} }
@ -138,30 +141,29 @@ do_test1 (size_t align1, size_t align2, size_t size)
unaligned_uint32_t *dest = large_buf + align1; unaligned_uint32_t *dest = large_buf + align1;
unaligned_uint32_t *src = large_buf + region_size + 2 * page_size + align2; unaligned_uint32_t *src = large_buf + region_size + 2 * page_size + align2;
size_t i; size_t i;
size_t repeats; for (size_t repeats = 0; repeats < 2; repeats++)
for (repeats = 0; repeats < 2; repeats++)
{ {
for (i = 0; i < array_size; i++) for (i = 0; i < array_size; i++)
src[i] = (uint32_t)i; src[i] = (uint32_t)i;
FOR_EACH_IMPL (impl, 0) FOR_EACH_IMPL (impl, 0)
{ {
memset (dest, -1, size); memset (dest, -1, size);
CALL (impl, (char *)dest, (char *)src, size); CALL (impl, (char *)dest, (char *)src, size);
if (memcmp (src, dest, size)) if (memcmp (src, dest, size))
{ {
for (i = 0; i < array_size; i++) for (i = 0; i < array_size; i++)
if (dest[i] != src[i]) if (dest[i] != src[i])
{ {
error (0, 0, error (0, 0,
"Wrong result in function %s dst \"%p\" src \"%p\" " "Wrong result in function %s dst \"%p\" src \"%p\" "
"offset \"%zd\"", "offset \"%zd\"",
impl->name, dest, src, i); impl->name, dest, src, i);
ret = 1; ret = 1;
munmap ((void *)large_buf, mmap_size); munmap ((void *)large_buf, mmap_size);
return; return;
} }
} }
} }
dest = large_buf + region_size + 2 * page_size + align1; dest = large_buf + region_size + 2 * page_size + align1;
src = large_buf + align2; src = large_buf + align2;
} }