brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · ea41d53 Raw
79 lines · cpp
1//===-- Unittests for char_vector ---------------------------------------===//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/__support/char_vector.h"10#include "test/UnitTest/Test.h"11 12using LIBC_NAMESPACE::CharVector;13 14TEST(LlvmLibcCharVectorTest, InitializeCheck) {15  CharVector v;16  ASSERT_EQ(v.length(), size_t(0));17}18 19TEST(LlvmLibcCharVectorTest, AppendShort) {20  CharVector v;21  ASSERT_EQ(v.length(), size_t(0));22 23  static constexpr char test_str[] = "1234567890";24  for (size_t i = 0; test_str[i] != '\0'; ++i) {25    v.append(test_str[i]);26  }27  ASSERT_STREQ(v.c_str(), test_str);28}29 30TEST(LlvmLibcCharVectorTest, AppendMedium) {31  CharVector v;32  ASSERT_EQ(v.length(), size_t(0));33 34  // 100 characters (each row is 50)35  static constexpr char test_str[] =36      "12345678901234567890123456789012345678901234567890"37      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy";38  for (size_t i = 0; test_str[i] != '\0'; ++i) {39    ASSERT_EQ(v.length(), i);40    v.append(test_str[i]);41  }42  ASSERT_STREQ(v.c_str(), test_str);43  ASSERT_EQ(v.length(), size_t(100));44}45 46TEST(LlvmLibcCharVectorTest, AppendLong) {47  CharVector v;48  ASSERT_EQ(v.length(), size_t(0));49 50  // 1000 characters51  static constexpr char test_str[] =52      "12345678901234567890123456789012345678901234567890"53      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"54      "12345678901234567890123456789012345678901234567890"55      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"56      "12345678901234567890123456789012345678901234567890"57      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"58      "12345678901234567890123456789012345678901234567890"59      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"60      "12345678901234567890123456789012345678901234567890"61      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"62      "12345678901234567890123456789012345678901234567890"63      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"64      "12345678901234567890123456789012345678901234567890"65      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"66      "12345678901234567890123456789012345678901234567890"67      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"68      "12345678901234567890123456789012345678901234567890"69      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy"70      "12345678901234567890123456789012345678901234567890"71      "ABCDEFGHIJKLMNOPQRSTUVWXYabcdefghijklmnopqrstuvwxy";72  for (size_t i = 0; test_str[i] != '\0'; ++i) {73    ASSERT_EQ(v.length(), i);74    ASSERT_TRUE(v.append(test_str[i]));75  }76  ASSERT_EQ(v.length(), size_t(1000));77  ASSERT_STREQ(v.c_str(), test_str);78}79