xref: /aosp_15_r20/external/llvm-libc/test/src/string/mempcpy_test.cpp (revision 71db0c75aadcf003ffe3238005f61d7618a3fead)
1 //===-- Unittests for mempcpy ---------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "src/string/mempcpy.h"
10 #include "test/UnitTest/Test.h"
11 
12 // Since this function just calls out to memcpy, and memcpy has its own unit
13 // tests, it is assumed that memcpy works. These tests are just for the specific
14 // mempcpy behavior (returning the end of what was copied).
TEST(LlvmLibcMempcpyTest,Simple)15 TEST(LlvmLibcMempcpyTest, Simple) {
16   const char *src = "12345";
17   char dest[10] = {};
18   void *result = LIBC_NAMESPACE::mempcpy(dest, src, 6);
19   ASSERT_EQ(static_cast<char *>(result), dest + 6);
20   ASSERT_STREQ(src, dest);
21 }
22 
TEST(LlvmLibcMempcpyTest,ZeroCount)23 TEST(LlvmLibcMempcpyTest, ZeroCount) {
24   const char *src = "12345";
25   char dest[10];
26   void *result = LIBC_NAMESPACE::mempcpy(dest, src, 0);
27   ASSERT_EQ(static_cast<char *>(result), dest + 0);
28 }
29