blob: 784dd7b194b3f1611f6821cd7cd12875d13b8b35 [file] [log] [blame] [edit]
//===-- 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);
}