//===-- Unittests for strlen ----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "src/string/strlen.h" #include "test/UnitTest/Test.h" TEST(LlvmLibcStrLenTest, EmptyString) { const char *empty = ""; size_t result = LIBC_NAMESPACE::strlen(empty); ASSERT_EQ((size_t)0, result); } TEST(LlvmLibcStrLenTest, AnyString) { const char *any = "Hello World!"; size_t result = LIBC_NAMESPACE::strlen(any); ASSERT_EQ((size_t)12, result); } TEST(LlvmLibcStrLenTest, DataAfterNulString) { constexpr char A[10] = {'a', 'b', 'c', 'd', 'e', 'f', 0, 'h', 'i', 'j'}; size_t result = LIBC_NAMESPACE::strlen(A); ASSERT_EQ((size_t)6, result); } TEST(LlvmLibcStrLenTest, MultipleNulsInOneWord) { constexpr char A[10] = {'a', 'b', 0, 'd', 'e', 'f', 0, 'h', 'i', 'j'}; size_t result = LIBC_NAMESPACE::strlen(A); ASSERT_EQ((size_t)2, result); }