[llvm] r369525 - Revert "[gtest] Fix printing of StringRef and SmallString in assert messages."

Sam McCall via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 21 06:31:44 PDT 2019


Author: sammccall
Date: Wed Aug 21 06:31:44 2019
New Revision: 369525

URL: http://llvm.org/viewvc/llvm-project?rev=369525&view=rev
Log:
Revert "[gtest] Fix printing of StringRef and SmallString in assert messages."

This reverts commit 4becb2ab4e9f52ce98272d1f5930d6942af5172b.

Modified:
    llvm/trunk/unittests/ADT/SmallStringTest.cpp
    llvm/trunk/unittests/ADT/StringRefTest.cpp
    llvm/trunk/utils/unittest/googletest/include/gtest/internal/custom/gtest-printers.h

Modified: llvm/trunk/unittests/ADT/SmallStringTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/SmallStringTest.cpp?rev=369525&r1=369524&r2=369525&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/SmallStringTest.cpp (original)
+++ llvm/trunk/unittests/ADT/SmallStringTest.cpp Wed Aug 21 06:31:44 2019
@@ -169,7 +169,7 @@ TEST_F(SmallStringTest, Realloc) {
   EXPECT_EQ("abcdyyy", theString.slice(0, 7));
 }
 
-TEST_F(SmallStringTest, Comparisons) {
+TEST(StringRefTest, Comparisons) {
   EXPECT_EQ(-1, SmallString<10>("aab").compare("aad"));
   EXPECT_EQ( 0, SmallString<10>("aab").compare("aab"));
   EXPECT_EQ( 1, SmallString<10>("aab").compare("aaa"));
@@ -203,12 +203,4 @@ TEST_F(SmallStringTest, Comparisons) {
   EXPECT_EQ( 1, SmallString<10>("V8_q0").compare_numeric("V1_q0"));
 }
 
-// Check gtest prints SmallString as a string instead of a container of chars.
-// The code is in utils/unittest/googletest/internal/custom/gtest-printers.h
-TEST_F(SmallStringTest, GTestPrinter) {
-  EXPECT_EQ(R"("foo")", ::testing::PrintToString(SmallString<1>("foo")));
-  const SmallVectorImpl<char> &ErasedSmallString = SmallString<1>("foo");
-  EXPECT_EQ(R"("foo")", ::testing::PrintToString(ErasedSmallString));
 }
-
-} // namespace

Modified: llvm/trunk/unittests/ADT/StringRefTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ADT/StringRefTest.cpp?rev=369525&r1=369524&r2=369525&view=diff
==============================================================================
--- llvm/trunk/unittests/ADT/StringRefTest.cpp (original)
+++ llvm/trunk/unittests/ADT/StringRefTest.cpp Wed Aug 21 06:31:44 2019
@@ -1055,12 +1055,6 @@ TEST(StringRefTest, StringLiteral) {
   EXPECT_EQ(StringRef("Bar"), Strings[1]);
 }
 
-// Check gtest prints StringRef as a string instead of a container of chars.
-// The code is in utils/unittest/googletest/internal/custom/gtest-printers.h
-TEST(StringRefTest, GTestPrinter) {
-  EXPECT_EQ(R"("foo")", ::testing::PrintToString(StringRef("foo")));
-}
-
 static_assert(is_trivially_copyable<StringRef>::value, "trivially copyable");
 
 } // end anonymous namespace

Modified: llvm/trunk/utils/unittest/googletest/include/gtest/internal/custom/gtest-printers.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/unittest/googletest/include/gtest/internal/custom/gtest-printers.h?rev=369525&r1=369524&r2=369525&view=diff
==============================================================================
--- llvm/trunk/utils/unittest/googletest/include/gtest/internal/custom/gtest-printers.h (original)
+++ llvm/trunk/utils/unittest/googletest/include/gtest/internal/custom/gtest-printers.h Wed Aug 21 06:31:44 2019
@@ -39,33 +39,4 @@
 #ifndef GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_
 #define GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_
 
-#include "llvm/ADT/SmallString.h"
-#include "llvm/ADT/StringRef.h"
-#include <ostream>
-
-namespace llvm {
-
-// Printing of llvm String types.
-// gtest sees these as containers of char (they have nested iterator types),
-// so their operator<< is never considered unless we provide PrintTo().
-// PrintStringTo provides quotes and escaping, at the cost of a copy.
-
-inline void PrintTo(llvm::StringRef S, std::ostream *OS) {
-  *OS << ::testing::PrintToString(S.str());
-}
-// We need both SmallString<N> and SmallVectorImpl<char> overloads:
-//  - the SmallString<N> template is needed as overload resolution will
-//    instantiate generic PrintTo<T> rather than do derived-to-base conversion
-//  - but SmallVectorImpl<char> is sometimes the actual static type, in code
-//    that erases the small size
-template <unsigned N>
-inline void PrintTo(const SmallString<N> &S, std::ostream *OS) {
-  *OS << ::testing::PrintToString(std::string(S.data(), S.size()));
-}
-inline void PrintTo(const SmallVectorImpl<char> &S, std::ostream *OS) {
-  *OS << ::testing::PrintToString(std::string(S.data(), S.size()));
-}
-
-} // namespace llvm
-
 #endif  // GTEST_INCLUDE_GTEST_INTERNAL_CUSTOM_GTEST_PRINTERS_H_




More information about the llvm-commits mailing list