brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 4b18fc7 Raw
45 lines · cpp
1//===-- Unittests for strdup ----------------------------------------------===//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/strdup.h"10#include "test/UnitTest/ErrnoCheckingTest.h"11#include "test/UnitTest/Test.h"12 13using LlvmLibcStrDupTest = LIBC_NAMESPACE::testing::ErrnoCheckingTest;14 15TEST_F(LlvmLibcStrDupTest, EmptyString) {16  const char *empty = "";17 18  char *result = LIBC_NAMESPACE::strdup(empty);19  ASSERT_ERRNO_SUCCESS();20 21  ASSERT_NE(result, static_cast<char *>(nullptr));22  ASSERT_NE(empty, const_cast<const char *>(result));23  ASSERT_STREQ(empty, result);24  ::free(result);25}26 27TEST_F(LlvmLibcStrDupTest, AnyString) {28  const char *abc = "abc";29 30  char *result = LIBC_NAMESPACE::strdup(abc);31  ASSERT_ERRNO_SUCCESS();32 33  ASSERT_NE(result, static_cast<char *>(nullptr));34  ASSERT_NE(abc, const_cast<const char *>(result));35  ASSERT_STREQ(abc, result);36  ::free(result);37}38 39TEST_F(LlvmLibcStrDupTest, NullPtr) {40  char *result = LIBC_NAMESPACE::strdup(nullptr);41  ASSERT_ERRNO_SUCCESS();42 43  ASSERT_EQ(result, static_cast<char *>(nullptr));44}45