#include "absl/strings/string_view.h"
#include <stdlib.h>
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <iomanip>
#include <ios>
#include <iterator>
#include <limits>
#include <map>
#include <memory>
#include <sstream>
#include <string>
#include <type_traits>
#include <utility>
#include "gtest/gtest.h"
#include "absl/base/config.h"
#include "absl/meta/type_traits.h"
#if defined(ABSL_HAVE_STD_STRING_VIEW) || defined(__ANDROID__)
#define ABSL_EXPECT_DEATH_IF_SUPPORTED(statement, regex) …
#else
#define ABSL_EXPECT_DEATH_IF_SUPPORTED …
#endif
namespace {
static_assert …;
static_assert …;
template <typename T>
struct Mallocator { … };
template <typename T, typename U>
bool operator==(const Mallocator<T>&, const Mallocator<U>&) { … }
template <typename T, typename U>
bool operator!=(const Mallocator<T>&, const Mallocator<U>&) { … }
TEST(StringViewTest, Ctor) { … }
TEST(StringViewTest, Swap) { … }
TEST(StringViewTest, STLComparator) { … }
#define COMPARE …
TEST(StringViewTest, ComparisonOperators) { … }
TEST(StringViewTest, ComparisonOperatorsByCharacterPosition) { … }
#undef COMPARE
template <typename T>
struct is_type { … };
TEST(StringViewTest, NposMatchesStdStringView) { … }
TEST(StringViewTest, STL1) { … }
TEST(StringViewTest, STL2) { … }
TEST(StringViewTest, STL2FindFirst) { … }
TEST(StringViewTest, STL2FindLast) { … }
TEST(StringViewTest, STL2Substr) { … }
TEST(StringViewTest, TruncSubstr) { … }
TEST(StringViewTest, UTF8) { … }
TEST(StringViewTest, FindConformance) { … }
TEST(StringViewTest, Remove) { … }
TEST(StringViewTest, Set) { … }
TEST(StringViewTest, FrontBack) { … }
TEST(StringViewTest, FrontBackSingleChar) { … }
TEST(StringViewTest, FrontBackEmpty) { … }
#if !defined(ABSL_USES_STD_STRING_VIEW) || \
(!(defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE >= 9) && \
!defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
#define ABSL_HAVE_STRING_VIEW_FROM_NULLPTR …
#endif
TEST(StringViewTest, NULLInput) { … }
TEST(StringViewTest, Comparisons2) { … }
TEST(StringViewTest, At) { … }
#if ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
TEST(StringViewTest, StartsWith) { … }
TEST(StringViewTest, EndsWith) { … }
#endif
struct MyCharAlloc : std::allocator<char> { … };
TEST(StringViewTest, ExplicitConversionOperator) { … }
TEST(StringViewTest, NullSafeStringView) { … }
TEST(StringViewTest, ConstexprNullSafeStringView) { … }
TEST(StringViewTest, ConstexprCompiles) { … }
constexpr char ConstexprMethodsHelper() { … }
TEST(StringViewTest, ConstexprMethods) { … }
TEST(StringViewTest, Noexcept) { … }
TEST(StringViewTest, BoundsCheck) { … }
TEST(ComparisonOpsTest, StringCompareNotAmbiguous) { … }
TEST(ComparisonOpsTest, HeterogeneousStringViewEquals) { … }
TEST(FindOneCharTest, EdgeCases) { … }
#ifndef ABSL_HAVE_THREAD_SANITIZER
TEST(HugeStringView, TwoPointTwoGB) { … }
#endif
#if !defined(NDEBUG) && !defined(ABSL_USES_STD_STRING_VIEW)
TEST(NonNegativeLenTest, NonNegativeLen) {
ABSL_EXPECT_DEATH_IF_SUPPORTED(
absl::string_view("xyz", static_cast<size_t>(-1)), "len <= kMaxSize");
}
TEST(LenExceedsMaxSizeTest, LenExceedsMaxSize) {
auto max_size = absl::string_view().max_size();
absl::string_view ok_view("", max_size);
ABSL_EXPECT_DEATH_IF_SUPPORTED(absl::string_view("", max_size + 1),
"len <= kMaxSize");
}
#endif
class StringViewStreamTest : public ::testing::Test { … };
TEST_F(StringViewStreamTest, Padding) { … }
TEST_F(StringViewStreamTest, ResetsWidth) { … }
}