1 //===-- Unittests for mempcpy ---------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 #include "src/string/mempcpy.h"
10 #include "test/UnitTest/Test.h"
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";
18 void *result
= __llvm_libc::mempcpy(dest
, src
, 6);
19 ASSERT_EQ(static_cast<char *>(result
), dest
+ 6);
20 ASSERT_STREQ(src
, dest
);
23 TEST(LlvmLibcMempcpyTest
, ZeroCount
) {
24 const char *src
= "12345";
26 void *result
= __llvm_libc::mempcpy(dest
, src
, 0);
27 ASSERT_EQ(static_cast<char *>(result
), dest
+ 0);