brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 784dd7b Raw
37 lines · cpp
1//===-- Unittests for strlen ----------------------------------------------===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "src/string/strlen.h"10#include "test/UnitTest/Test.h"11 12TEST(LlvmLibcStrLenTest, EmptyString) {13  const char *empty = "";14 15  size_t result = LIBC_NAMESPACE::strlen(empty);16  ASSERT_EQ((size_t)0, result);17}18 19TEST(LlvmLibcStrLenTest, AnyString) {20  const char *any = "Hello World!";21 22  size_t result = LIBC_NAMESPACE::strlen(any);23  ASSERT_EQ((size_t)12, result);24}25 26TEST(LlvmLibcStrLenTest, DataAfterNulString) {27  constexpr char A[10] = {'a', 'b', 'c', 'd', 'e', 'f', 0, 'h', 'i', 'j'};28  size_t result = LIBC_NAMESPACE::strlen(A);29  ASSERT_EQ((size_t)6, result);30}31 32TEST(LlvmLibcStrLenTest, MultipleNulsInOneWord) {33  constexpr char A[10] = {'a', 'b', 0, 'd', 'e', 'f', 0, 'h', 'i', 'j'};34  size_t result = LIBC_NAMESPACE::strlen(A);35  ASSERT_EQ((size_t)2, result);36}37