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