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 "utils/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).
15 TEST(LlvmLibcMempcpyTest, Simple) {
16   const char *src = "12345";
17   char dest[10];
18   void *result = __llvm_libc::mempcpy(dest, src, 6);
19   ASSERT_EQ(static_cast<char *>(result), dest + 6);
20   ASSERT_STREQ(src, dest);
21 }
22 
23 TEST(LlvmLibcMempcpyTest, ZeroCount) {
24   const char *src = "12345";
25   char dest[10];
26   void *result = __llvm_libc::mempcpy(dest, src, 0);
27   ASSERT_EQ(static_cast<char *>(result), dest);
28 }
29