diff options
author | CoprDistGit <infra@openeuler.org> | 2024-08-03 06:28:41 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2024-08-03 06:28:41 +0000 |
commit | d20db0561a6a36f914fde030512503b114ef9a0c (patch) | |
tree | d4e5e3494d95c269a1cee6195f11bf3201bcadbf /Update-string-test-memmove.c-to-cover-16KB-copy.patch | |
parent | 016343d99b1b269d7246ef1e143d4b54914433d4 (diff) |
automatic import of glibcopeneuler22.03_LTS_SP4openeuler22.03_LTS_SP3openeuler20.03
Diffstat (limited to 'Update-string-test-memmove.c-to-cover-16KB-copy.patch')
-rw-r--r-- | Update-string-test-memmove.c-to-cover-16KB-copy.patch | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Update-string-test-memmove.c-to-cover-16KB-copy.patch b/Update-string-test-memmove.c-to-cover-16KB-copy.patch new file mode 100644 index 0000000..894833e --- /dev/null +++ b/Update-string-test-memmove.c-to-cover-16KB-copy.patch @@ -0,0 +1,78 @@ +From c333dcf8d8f9e6e46475d9eff24bd5394b5d3d9e Mon Sep 17 00:00:00 2001 +From: "H.J. Lu" <hjl.tools@gmail.com> +Date: Mon, 1 Feb 2021 17:23:12 -0800 +Subject: [PATCH] Update string/test-memmove.c to cover 16KB copy + +--- + string/test-memmove.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 48 insertions(+) + +diff --git a/string/test-memmove.c b/string/test-memmove.c +index b271248..670094c 100644 +--- a/string/test-memmove.c ++++ b/string/test-memmove.c +@@ -312,6 +312,50 @@ do_test2 (size_t offset) + munmap ((void *) large_buf, size); + } + ++static void ++do_test3 (size_t bytes_move, size_t offset) ++{ ++ size_t size = bytes_move * 3; ++ uint32_t *buf; ++ ++ buf = mmap (NULL, size, PROT_READ | PROT_WRITE, ++ MAP_PRIVATE | MAP_ANON, -1, 0); ++ ++ if (buf == MAP_FAILED) ++ error (EXIT_UNSUPPORTED, errno, "mmap failed"); ++ ++ size_t arr_size = bytes_move / sizeof (uint32_t); ++ size_t i; ++ ++ FOR_EACH_IMPL (impl, 0) ++ { ++ for (i = 0; i < arr_size; i++) ++ buf[i] = (uint32_t) i; ++ ++ uint32_t *dst = &buf[arr_size + offset]; ++ ++#ifdef TEST_BCOPY ++ CALL (impl, (char *) buf, (char *) dst, bytes_move); ++#else ++ CALL (impl, (char *) dst, (char *) buf, bytes_move); ++#endif ++ ++ for (i = 0; i < arr_size; i++) ++ { ++ if (dst[i] != (uint32_t) i) ++ { ++ error (0, 0, ++ "Wrong result in function %s dst \"%p\" src \"%p\" offset \"%zd\"", ++ impl->name, dst, buf, i); ++ ret = 1; ++ break; ++ } ++ } ++ } ++ ++ munmap ((void *) buf, size); ++} ++ + int + test_main (void) + { +@@ -356,6 +400,10 @@ test_main (void) + do_test2 (0x200000); + do_test2 (0x4000000 - 1); + do_test2 (0x4000000); ++ ++ /* Copy 16KB data. */ ++ do_test3 (16384, 3); ++ + return ret; + } + +-- +1.8.3.1 + |