166d00febSPaula Toth //===-- Unittests for strcpy ----------------------------------------------===//
25b24c088SSiva Chandra Reddy //
35b24c088SSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45b24c088SSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information.
55b24c088SSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65b24c088SSiva Chandra Reddy //
75b24c088SSiva Chandra Reddy //===----------------------------------------------------------------------===//
85b24c088SSiva Chandra Reddy 
9188f72abSSiva Chandra Reddy #include "src/string/strcpy.h"
10c7453fadSSiva Chandra Reddy #include "utils/UnitTest/Test.h"
115b24c088SSiva Chandra Reddy 
12*1df0dbfcSMichael Jones TEST(LlvmLibcStrCpyTest, EmptyDest) {
13c7453fadSSiva Chandra Reddy   const char *abc = "abc";
145b24c088SSiva Chandra Reddy   char dest[4];
155b24c088SSiva Chandra Reddy 
16c7453fadSSiva Chandra Reddy   char *result = __llvm_libc::strcpy(dest, abc);
175b24c088SSiva Chandra Reddy   ASSERT_EQ(dest, result);
18c7453fadSSiva Chandra Reddy   ASSERT_STREQ(dest, result);
19c7453fadSSiva Chandra Reddy   ASSERT_STREQ(dest, abc);
205b24c088SSiva Chandra Reddy }
215b24c088SSiva Chandra Reddy 
22*1df0dbfcSMichael Jones TEST(LlvmLibcStrCpyTest, OffsetDest) {
23c7453fadSSiva Chandra Reddy   const char *abc = "abc";
245b24c088SSiva Chandra Reddy   char dest[7];
255b24c088SSiva Chandra Reddy 
265b24c088SSiva Chandra Reddy   dest[0] = 'x';
275b24c088SSiva Chandra Reddy   dest[1] = 'y';
285b24c088SSiva Chandra Reddy   dest[2] = 'z';
295b24c088SSiva Chandra Reddy 
30c7453fadSSiva Chandra Reddy   char *result = __llvm_libc::strcpy(dest + 3, abc);
315b24c088SSiva Chandra Reddy   ASSERT_EQ(dest + 3, result);
32c7453fadSSiva Chandra Reddy   ASSERT_STREQ(dest + 3, result);
33c7453fadSSiva Chandra Reddy   ASSERT_STREQ(dest, "xyzabc");
345b24c088SSiva Chandra Reddy }
35