Export of internal Abseil changes

--
45c3adace0020bb705e04d254f7b3f914d2ba2e6 by Abseil Team <absl-team@google.com>:

Cleanup CordRepRing unit tests

PiperOrigin-RevId: 365848947

--
3d16aae1a4a20666151d8a5ebfd48a2777053b75 by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 365830995

--
298f2de7061f21fb94b4bc715bbadef37732d1fa by Derek Mauro <dmauro@google.com>:

Internal change

PiperOrigin-RevId: 365830862

--
540c6f4b8f4443d3bb969e566761760813b17545 by Derek Mauro <dmauro@google.com>:

Upgrade MacOS CI to use Bazel 3.7.0

PiperOrigin-RevId: 365825990

--
8b09ef04a1061038a982c3ff29dc7c8a28364f5f by Abseil Team <absl-team@google.com>:

internal change

PiperOrigin-RevId: 365819242
GitOrigin-RevId: 45c3adace0020bb705e04d254f7b3f914d2ba2e6
Change-Id: I3b2bebd212a41d0c0dda56fefb455240408cc461
pull/928/head
Abseil Team 4 years ago committed by Andy Getz
parent 9fde5a6eb0
commit d9a31a2d44
  1. 8
      absl/status/status_test.cc
  2. 197
      absl/strings/cord_ring_test.cc
  3. 2
      ci/macos_xcode_bazel.sh

@ -36,7 +36,9 @@ TEST(StatusCode, InsertionOperator) {
// its creator, and its classifier. // its creator, and its classifier.
struct ErrorTest { struct ErrorTest {
absl::StatusCode code; absl::StatusCode code;
using Creator = absl::Status (*)(absl::string_view); using Creator = absl::Status (*)(
absl::string_view
);
using Classifier = bool (*)(const absl::Status&); using Classifier = bool (*)(const absl::Status&);
Creator creator; Creator creator;
Classifier classifier; Classifier classifier;
@ -78,7 +80,9 @@ TEST(Status, CreateAndClassify) {
// expected error code and message. // expected error code and message.
std::string message = std::string message =
absl::StrCat("error code ", test.code, " test message"); absl::StrCat("error code ", test.code, " test message");
absl::Status status = test.creator(message); absl::Status status = test.creator(
message
);
EXPECT_EQ(test.code, status.code()); EXPECT_EQ(test.code, status.code());
EXPECT_EQ(message, status.message()); EXPECT_EQ(message, status.message());

@ -31,9 +31,6 @@
extern thread_local bool cord_ring; extern thread_local bool cord_ring;
// TOOD(b/177688959): weird things happened with the original test
#define ASAN_BUG_177688959_FIXED false
namespace absl { namespace absl {
ABSL_NAMESPACE_BEGIN ABSL_NAMESPACE_BEGIN
namespace { namespace {
@ -340,19 +337,15 @@ std::string TestParamToString(const testing::TestParamInfo<TestParam>& info) {
class CordRingTest : public testing::Test { class CordRingTest : public testing::Test {
public: public:
~CordRingTest() override { ~CordRingTest() override {
#if ASAN_BUG_177688959_FIXED
for (CordRep* rep : unrefs_) { for (CordRep* rep : unrefs_) {
CordRep::Unref(rep); CordRep::Unref(rep);
} }
#endif
} }
template <typename CordRepType> template <typename CordRepType>
CordRepType* NeedsUnref(CordRepType* rep) { CordRepType* NeedsUnref(CordRepType* rep) {
assert(rep); assert(rep);
#if ASAN_BUG_177688959_FIXED
unrefs_.push_back(rep); unrefs_.push_back(rep);
#endif
return rep; return rep;
} }
@ -362,26 +355,16 @@ class CordRingTest : public testing::Test {
return NeedsUnref(rep); return NeedsUnref(rep);
} }
void Unref(CordRep* rep) {
#if !ASAN_BUG_177688959_FIXED
CordRep::Unref(rep);
#endif
}
private: private:
#if ASAN_BUG_177688959_FIXED
std::vector<CordRep*> unrefs_; std::vector<CordRep*> unrefs_;
#endif
}; };
class CordRingTestWithParam : public testing::TestWithParam<TestParam> { class CordRingTestWithParam : public testing::TestWithParam<TestParam> {
public: public:
~CordRingTestWithParam() override { ~CordRingTestWithParam() override {
#if ASAN_BUG_177688959_FIXED
for (CordRep* rep : unrefs_) { for (CordRep* rep : unrefs_) {
CordRep::Unref(rep); CordRep::Unref(rep);
} }
#endif
} }
CordRepRing* CreateWithCapacity(CordRep* child, size_t extra_capacity) { CordRepRing* CreateWithCapacity(CordRep* child, size_t extra_capacity) {
@ -400,9 +383,7 @@ class CordRingTestWithParam : public testing::TestWithParam<TestParam> {
template <typename CordRepType> template <typename CordRepType>
CordRepType* NeedsUnref(CordRepType* rep) { CordRepType* NeedsUnref(CordRepType* rep) {
assert(rep); assert(rep);
#if ASAN_BUG_177688959_FIXED
unrefs_.push_back(rep); unrefs_.push_back(rep);
#endif
return rep; return rep;
} }
@ -412,43 +393,23 @@ class CordRingTestWithParam : public testing::TestWithParam<TestParam> {
return NeedsUnref(rep); return NeedsUnref(rep);
} }
void Unref(CordRep* rep) {
#if !ASAN_BUG_177688959_FIXED
CordRep::Unref(rep);
#endif
}
template <typename CordRepType> template <typename CordRepType>
CordRepType* RefIfShared(CordRepType* rep) { CordRepType* RefIfShared(CordRepType* rep) {
return Shared() ? Ref(rep) : rep; return Shared() ? Ref(rep) : rep;
} }
void UnrefIfShared(CordRep* rep) {
if (Shared()) Unref(rep);
}
template <typename CordRepType> template <typename CordRepType>
CordRepType* RefIfInputShared(CordRepType* rep) { CordRepType* RefIfInputShared(CordRepType* rep) {
return InputShared() ? Ref(rep) : rep; return InputShared() ? Ref(rep) : rep;
} }
void UnrefIfInputShared(CordRep* rep) {
if (InputShared()) Unref(rep);
}
template <typename CordRepType> template <typename CordRepType>
CordRepType* RefIfInputSharedIndirect(CordRepType* rep) { CordRepType* RefIfInputSharedIndirect(CordRepType* rep) {
return InputSharedIndirect() ? Ref(rep) : rep; return InputSharedIndirect() ? Ref(rep) : rep;
} }
void UnrefIfInputSharedIndirect(CordRep* rep) {
if (InputSharedIndirect()) Unref(rep);
}
private: private:
#if ASAN_BUG_177688959_FIXED
std::vector<CordRep*> unrefs_; std::vector<CordRep*> unrefs_;
#endif
}; };
class CordRingCreateTest : public CordRingTestWithParam { class CordRingCreateTest : public CordRingTestWithParam {
@ -520,26 +481,26 @@ class CordRingBuildInputTest : public CordRingTestWithParam {
} }
}; };
INSTANTIATE_TEST_CASE_P(WithParam, CordRingSubTest, INSTANTIATE_TEST_SUITE_P(WithParam, CordRingSubTest,
testing::ValuesIn(CordRingSubTest::CreateTestParams()), testing::ValuesIn(CordRingSubTest::CreateTestParams()),
TestParamToString); TestParamToString);
INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_SUITE_P(
WithParam, CordRingCreateTest, WithParam, CordRingCreateTest,
testing::ValuesIn(CordRingCreateTest::CreateTestParams()), testing::ValuesIn(CordRingCreateTest::CreateTestParams()),
TestParamToString); TestParamToString);
INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_SUITE_P(
WithParam, CordRingCreateFromTreeTest, WithParam, CordRingCreateFromTreeTest,
testing::ValuesIn(CordRingCreateFromTreeTest::CreateTestParams()), testing::ValuesIn(CordRingCreateFromTreeTest::CreateTestParams()),
TestParamToString); TestParamToString);
INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_SUITE_P(
WithParam, CordRingBuildTest, WithParam, CordRingBuildTest,
testing::ValuesIn(CordRingBuildTest::CreateTestParams()), testing::ValuesIn(CordRingBuildTest::CreateTestParams()),
TestParamToString); TestParamToString);
INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_SUITE_P(
WithParam, CordRingBuildInputTest, WithParam, CordRingBuildInputTest,
testing::ValuesIn(CordRingBuildInputTest::CreateTestParams()), testing::ValuesIn(CordRingBuildInputTest::CreateTestParams()),
TestParamToString); TestParamToString);
@ -550,7 +511,6 @@ TEST_P(CordRingCreateTest, CreateFromFlat) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(str1.size())); EXPECT_THAT(result->length, Eq(str1.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str1)); EXPECT_THAT(ToFlats(result), ElementsAre(str1));
Unref(result);
} }
TEST_P(CordRingCreateTest, CreateFromRing) { TEST_P(CordRingCreateTest, CreateFromRing) {
@ -559,8 +519,6 @@ TEST_P(CordRingCreateTest, CreateFromRing) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivate(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats)); EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringRing) { TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringRing) {
@ -570,23 +528,20 @@ TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringRing) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfInputPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfInputPrivate(GetParam(), ring));
EXPECT_THAT(ToString(result), string_view(kFox).substr(2, 11)); EXPECT_THAT(ToString(result), string_view(kFox).substr(2, 11));
UnrefIfInputSharedIndirect(ring);
UnrefIfInputShared(sub);
Unref(result);
} }
TEST_F(CordRingTest, CreateWithIllegalExtraCapacity) { TEST_F(CordRingTest, CreateWithIllegalExtraCapacity) {
CordRep* flat = NeedsUnref(MakeFlat("Hello world"));
#if defined(ABSL_HAVE_EXCEPTIONS) #if defined(ABSL_HAVE_EXCEPTIONS)
CordRep* flat = NeedsUnref(MakeFlat("Hello world"));
try { try {
CordRepRing::Create(flat, CordRepRing::kMaxCapacity); CordRepRing::Create(flat, CordRepRing::kMaxCapacity);
GTEST_FAIL() << "expected std::length_error exception"; GTEST_FAIL() << "expected std::length_error exception";
} catch (const std::length_error&) { } catch (const std::length_error&) {
} }
#elif defined(GTEST_HAS_DEATH_TEST) #elif defined(GTEST_HAS_DEATH_TEST)
CordRep* flat = NeedsUnref(MakeFlat("Hello world"));
EXPECT_DEATH(CordRepRing::Create(flat, CordRepRing::kMaxCapacity), ".*"); EXPECT_DEATH(CordRepRing::Create(flat, CordRepRing::kMaxCapacity), ".*");
#endif #endif
Unref(flat);
} }
TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfFlat) { TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfFlat) {
@ -597,9 +552,6 @@ TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfFlat) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(20)); EXPECT_THAT(result->length, Eq(20));
EXPECT_THAT(ToFlats(result), ElementsAre(str1.substr(4, 20))); EXPECT_THAT(ToFlats(result), ElementsAre(str1.substr(4, 20)));
Unref(result);
UnrefIfInputShared(flat);
UnrefIfInputSharedIndirect(child);
} }
TEST_P(CordRingCreateTest, CreateFromExternal) { TEST_P(CordRingCreateTest, CreateFromExternal) {
@ -609,8 +561,6 @@ TEST_P(CordRingCreateTest, CreateFromExternal) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(str1.size())); EXPECT_THAT(result->length, Eq(str1.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str1)); EXPECT_THAT(ToFlats(result), ElementsAre(str1));
Unref(result);
UnrefIfInputShared(child);
} }
TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfExternal) { TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfExternal) {
@ -621,9 +571,6 @@ TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfExternal) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(24)); EXPECT_THAT(result->length, Eq(24));
EXPECT_THAT(ToFlats(result), ElementsAre(str1.substr(1, 24))); EXPECT_THAT(ToFlats(result), ElementsAre(str1.substr(1, 24)));
Unref(result);
UnrefIfInputShared(external);
UnrefIfInputSharedIndirect(child);
} }
TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfLargeExternal) { TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfLargeExternal) {
@ -637,9 +584,6 @@ TEST_P(CordRingCreateFromTreeTest, CreateFromSubstringOfLargeExternal) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(str.size())); EXPECT_THAT(result->length, Eq(str.size()));
EXPECT_THAT(ToRawFlats(result), ElementsAre(str)); EXPECT_THAT(ToRawFlats(result), ElementsAre(str));
Unref(result);
UnrefIfInputShared(external);
UnrefIfInputSharedIndirect(child);
} }
TEST_P(CordRingBuildInputTest, CreateFromConcat) { TEST_P(CordRingBuildInputTest, CreateFromConcat) {
@ -652,10 +596,6 @@ TEST_P(CordRingBuildInputTest, CreateFromConcat) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(26)); EXPECT_THAT(result->length, Eq(26));
EXPECT_THAT(ToString(result), Eq(kAlphabet)); EXPECT_THAT(ToString(result), Eq(kAlphabet));
UnrefIfInputSharedIndirect(flats[0]);
UnrefIfInputSharedIndirect(flats[3]);
UnrefIfInputShared(concat);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, CreateFromSubstringConcat) { TEST_P(CordRingBuildInputTest, CreateFromSubstringConcat) {
@ -671,10 +611,6 @@ TEST_P(CordRingBuildInputTest, CreateFromSubstringConcat) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
ASSERT_THAT(result->length, Eq(len)); ASSERT_THAT(result->length, Eq(len));
ASSERT_THAT(ToString(result), string_view(kAlphabet).substr(off, len)); ASSERT_THAT(ToString(result), string_view(kAlphabet).substr(off, len));
UnrefIfInputSharedIndirect(flats[0]);
UnrefIfInputSharedIndirect(flats[3]);
UnrefIfInputShared(child);
Unref(result);
} }
} }
} }
@ -689,7 +625,6 @@ TEST_P(CordRingCreateTest, Properties) {
EXPECT_THAT(result->capacity(), Le(2 * 120 + 1)); EXPECT_THAT(result->capacity(), Le(2 * 120 + 1));
EXPECT_THAT(result->entries(), Eq(1)); EXPECT_THAT(result->entries(), Eq(1));
EXPECT_THAT(result->begin_pos(), Eq(0)); EXPECT_THAT(result->begin_pos(), Eq(0));
Unref(result);
} }
TEST_P(CordRingCreateTest, EntryForNewFlat) { TEST_P(CordRingCreateTest, EntryForNewFlat) {
@ -700,7 +635,6 @@ TEST_P(CordRingCreateTest, EntryForNewFlat) {
EXPECT_THAT(result->entry_child(0), Eq(child)); EXPECT_THAT(result->entry_child(0), Eq(child));
EXPECT_THAT(result->entry_end_pos(0), Eq(str1.length())); EXPECT_THAT(result->entry_end_pos(0), Eq(str1.length()));
EXPECT_THAT(result->entry_data_offset(0), Eq(0)); EXPECT_THAT(result->entry_data_offset(0), Eq(0));
Unref(result);
} }
TEST_P(CordRingCreateTest, EntryForNewFlatSubstring) { TEST_P(CordRingCreateTest, EntryForNewFlatSubstring) {
@ -712,7 +646,6 @@ TEST_P(CordRingCreateTest, EntryForNewFlatSubstring) {
EXPECT_THAT(result->entry_child(0), Eq(child)); EXPECT_THAT(result->entry_child(0), Eq(child));
EXPECT_THAT(result->entry_end_pos(0), Eq(26)); EXPECT_THAT(result->entry_end_pos(0), Eq(26));
EXPECT_THAT(result->entry_data_offset(0), Eq(10)); EXPECT_THAT(result->entry_data_offset(0), Eq(10));
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendFlat) { TEST_P(CordRingBuildTest, AppendFlat) {
@ -724,8 +657,6 @@ TEST_P(CordRingBuildTest, AppendFlat) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(result->length, Eq(str1.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2)); EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, PrependFlat) { TEST_P(CordRingBuildTest, PrependFlat) {
@ -737,8 +668,6 @@ TEST_P(CordRingBuildTest, PrependFlat) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(result->length, Eq(str1.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1)); EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendString) { TEST_P(CordRingBuildTest, AppendString) {
@ -750,8 +679,6 @@ TEST_P(CordRingBuildTest, AppendString) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(result->length, Eq(str1.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2)); EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendStringHavingExtra) { TEST_P(CordRingBuildTest, AppendStringHavingExtra) {
@ -762,8 +689,6 @@ TEST_P(CordRingBuildTest, AppendStringHavingExtra) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result->length, Eq(str1.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size()));
EXPECT_THAT(result, EqIfPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivate(GetParam(), ring));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendStringHavingPartialExtra) { TEST_P(CordRingBuildTest, AppendStringHavingPartialExtra) {
@ -790,8 +715,6 @@ TEST_P(CordRingBuildTest, AppendStringHavingPartialExtra) {
} else { } else {
EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2)); EXPECT_THAT(ToFlats(result), ElementsAre(str1, str2));
} }
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendStringHavingExtraInSubstring) { TEST_P(CordRingBuildTest, AppendStringHavingExtraInSubstring) {
@ -808,8 +731,6 @@ TEST_P(CordRingBuildTest, AppendStringHavingExtraInSubstring) {
} else { } else {
EXPECT_THAT(ToFlats(result), ElementsAre("1234", str2)); EXPECT_THAT(ToFlats(result), ElementsAre("1234", str2));
} }
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendStringHavingSharedExtra) { TEST_P(CordRingBuildTest, AppendStringHavingSharedExtra) {
@ -839,8 +760,6 @@ TEST_P(CordRingBuildTest, AppendStringHavingSharedExtra) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(result->length, Eq(4 + str2.size())); EXPECT_THAT(result->length, Eq(4 + str2.size()));
EXPECT_THAT(ToFlats(result), ElementsAre("1234", str2)); EXPECT_THAT(ToFlats(result), ElementsAre("1234", str2));
UnrefIfShared(ring);
Unref(result);
CordRep::Unref(shared_type == 1 ? flat1 : flat); CordRep::Unref(shared_type == 1 ? flat1 : flat);
} }
@ -857,8 +776,6 @@ TEST_P(CordRingBuildTest, AppendStringWithExtra) {
EXPECT_THAT(result->length, Eq(str1.size() + str2.size() + str3.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size() + str3.size()));
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre(str1, StrCat(str2, str3))); EXPECT_THAT(ToFlats(result), ElementsAre(str1, StrCat(str2, str3)));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, PrependString) { TEST_P(CordRingBuildTest, PrependString) {
@ -875,8 +792,6 @@ TEST_P(CordRingBuildTest, PrependString) {
} }
EXPECT_THAT(result->length, Eq(str1.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size()));
EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1)); EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, PrependStringHavingExtra) { TEST_P(CordRingBuildTest, PrependStringHavingExtra) {
@ -893,8 +808,6 @@ TEST_P(CordRingBuildTest, PrependStringHavingExtra) {
} else { } else {
EXPECT_THAT(ToFlats(result), ElementsAre(str2, "1234")); EXPECT_THAT(ToFlats(result), ElementsAre(str2, "1234"));
} }
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, PrependStringHavingSharedExtra) { TEST_P(CordRingBuildTest, PrependStringHavingSharedExtra) {
@ -921,8 +834,6 @@ TEST_P(CordRingBuildTest, PrependStringHavingSharedExtra) {
EXPECT_THAT(result->length, Eq(str1a.size() + str2.size())); EXPECT_THAT(result->length, Eq(str1a.size() + str2.size()));
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1a)); EXPECT_THAT(ToFlats(result), ElementsAre(str2, str1a));
UnrefIfShared(ring);
Unref(result);
CordRep::Unref(shared_type == 1 ? flat1 : flat); CordRep::Unref(shared_type == 1 ? flat1 : flat);
} }
} }
@ -938,8 +849,6 @@ TEST_P(CordRingBuildTest, PrependStringWithExtra) {
EXPECT_THAT(result->length, Eq(str1.size() + str2.size() + str3.size())); EXPECT_THAT(result->length, Eq(str1.size() + str2.size() + str3.size()));
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre(StrCat(str3, str2), str1)); EXPECT_THAT(ToFlats(result), ElementsAre(StrCat(str3, str2), str1));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendPrependStringMix) { TEST_P(CordRingBuildTest, AppendPrependStringMix) {
@ -950,12 +859,10 @@ TEST_P(CordRingBuildTest, AppendPrependStringMix) {
result = CordRepRing::Prepend(result, flats[4 - i]); result = CordRepRing::Prepend(result, flats[4 - i]);
result = CordRepRing::Append(result, flats[4 + i]); result = CordRepRing::Append(result, flats[4 + i]);
} }
UnrefIfShared(ring);
NeedsUnref(result); NeedsUnref(result);
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToString(result), kFox); EXPECT_THAT(ToString(result), kFox);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendPrependStringMixWithExtra) { TEST_P(CordRingBuildTest, AppendPrependStringMixWithExtra) {
@ -976,8 +883,6 @@ TEST_P(CordRingBuildTest, AppendPrependStringMixWithExtra) {
EXPECT_THAT(ToFlats(result), ElementsAre("The quick brown fox ", "jumps ", EXPECT_THAT(ToFlats(result), ElementsAre("The quick brown fox ", "jumps ",
"over the lazy dog")); "over the lazy dog"));
} }
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendPrependStringMixWithPrependedExtra) { TEST_P(CordRingBuildTest, AppendPrependStringMixWithPrependedExtra) {
@ -998,8 +903,6 @@ TEST_P(CordRingBuildTest, AppendPrependStringMixWithPrependedExtra) {
EXPECT_THAT(ToFlats(result), ElementsAre("The quick brown fox ", "jumps ", EXPECT_THAT(ToFlats(result), ElementsAre("The quick brown fox ", "jumps ",
"over the lazy dog")); "over the lazy dog"));
} }
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingSubTest, SubRing) { TEST_P(CordRingSubTest, SubRing) {
@ -1011,7 +914,6 @@ TEST_P(CordRingSubTest, SubRing) {
CordRepRing* ring = RefIfShared(FromFlats(flats, composition)); CordRepRing* ring = RefIfShared(FromFlats(flats, composition));
CordRepRing* result = CordRepRing::SubRing(ring, offset, 0); CordRepRing* result = CordRepRing::SubRing(ring, offset, 0);
EXPECT_THAT(result, nullptr); EXPECT_THAT(result, nullptr);
UnrefIfShared(ring);
for (size_t len = 1; len < all.size() - offset; ++len) { for (size_t len = 1; len < all.size() - offset; ++len) {
ring = RefIfShared(FromFlats(flats, composition)); ring = RefIfShared(FromFlats(flats, composition));
@ -1019,8 +921,6 @@ TEST_P(CordRingSubTest, SubRing) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
ASSERT_THAT(result, EqIfPrivate(GetParam(), ring)); ASSERT_THAT(result, EqIfPrivate(GetParam(), ring));
ASSERT_THAT(ToString(result), Eq(all.substr(offset, len))); ASSERT_THAT(ToString(result), Eq(all.substr(offset, len)));
UnrefIfShared(ring);
Unref(result);
} }
} }
} }
@ -1039,7 +939,6 @@ TEST_P(CordRingSubTest, SubRingFromLargeExternal) {
CordRepRing* ring = RefIfShared(FromFlats(flats, composition)); CordRepRing* ring = RefIfShared(FromFlats(flats, composition));
CordRepRing* result = CordRepRing::SubRing(ring, offset, 0); CordRepRing* result = CordRepRing::SubRing(ring, offset, 0);
EXPECT_THAT(result, nullptr); EXPECT_THAT(result, nullptr);
UnrefIfShared(ring);
for (size_t len = all.size() - 30; len < all.size() - offset; ++len) { for (size_t len = all.size() - 30; len < all.size() - offset; ++len) {
ring = RefIfShared(FromFlats(flats, composition)); ring = RefIfShared(FromFlats(flats, composition));
@ -1049,8 +948,6 @@ TEST_P(CordRingSubTest, SubRingFromLargeExternal) {
auto str = ToString(result); auto str = ToString(result);
ASSERT_THAT(str, SizeIs(len)); ASSERT_THAT(str, SizeIs(len));
ASSERT_THAT(str, Eq(all.substr(offset, len))); ASSERT_THAT(str, Eq(all.substr(offset, len)));
UnrefIfShared(ring);
Unref(result);
} }
} }
} }
@ -1063,7 +960,6 @@ TEST_P(CordRingSubTest, RemovePrefix) {
CordRepRing* ring = RefIfShared(FromFlats(flats, composition)); CordRepRing* ring = RefIfShared(FromFlats(flats, composition));
CordRepRing* result = CordRepRing::RemovePrefix(ring, all.size()); CordRepRing* result = CordRepRing::RemovePrefix(ring, all.size());
EXPECT_THAT(result, nullptr); EXPECT_THAT(result, nullptr);
UnrefIfShared(ring);
for (size_t len = 1; len < all.size(); ++len) { for (size_t len = 1; len < all.size(); ++len) {
ring = RefIfShared(FromFlats(flats, composition)); ring = RefIfShared(FromFlats(flats, composition));
@ -1071,8 +967,6 @@ TEST_P(CordRingSubTest, RemovePrefix) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivate(GetParam(), ring));
EXPECT_THAT(ToString(result), Eq(all.substr(len))); EXPECT_THAT(ToString(result), Eq(all.substr(len)));
UnrefIfShared(ring);
Unref(result);
} }
} }
@ -1087,7 +981,6 @@ TEST_P(CordRingSubTest, RemovePrefixFromLargeExternal) {
ElementsAre( ElementsAre(
not_a_string_view(external1->base, 1 << 20).remove_prefix(1 << 16), not_a_string_view(external1->base, 1 << 20).remove_prefix(1 << 16),
not_a_string_view(external2->base, 1 << 20))); not_a_string_view(external2->base, 1 << 20)));
Unref(result);
} }
TEST_P(CordRingSubTest, RemoveSuffix) { TEST_P(CordRingSubTest, RemoveSuffix) {
@ -1098,7 +991,6 @@ TEST_P(CordRingSubTest, RemoveSuffix) {
CordRepRing* ring = RefIfShared(FromFlats(flats, composition)); CordRepRing* ring = RefIfShared(FromFlats(flats, composition));
CordRepRing* result = CordRepRing::RemoveSuffix(ring, all.size()); CordRepRing* result = CordRepRing::RemoveSuffix(ring, all.size());
EXPECT_THAT(result, nullptr); EXPECT_THAT(result, nullptr);
UnrefIfShared(ring);
for (size_t len = 1; len < all.size(); ++len) { for (size_t len = 1; len < all.size(); ++len) {
ring = RefIfShared(FromFlats(flats, composition)); ring = RefIfShared(FromFlats(flats, composition));
@ -1106,8 +998,6 @@ TEST_P(CordRingSubTest, RemoveSuffix) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivate(GetParam(), ring));
EXPECT_THAT(ToString(result), Eq(all.substr(0, all.size() - len))); EXPECT_THAT(ToString(result), Eq(all.substr(0, all.size() - len)));
UnrefIfShared(ring);
Unref(result);
} }
} }
@ -1121,8 +1011,6 @@ TEST_P(CordRingSubTest, AppendRing) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivate(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivate(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats)); EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats));
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, AppendRingWithFlatOffset) { TEST_P(CordRingBuildInputTest, AppendRingWithFlatOffset) {
@ -1137,9 +1025,6 @@ TEST_P(CordRingBuildInputTest, AppendRingWithFlatOffset) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("Head", "brown ", "fox ", "jumps ", EXPECT_THAT(ToFlats(result), ElementsAre("Head", "brown ", "fox ", "jumps ",
"over ", "the ", "lazy ", "dog")); "over ", "the ", "lazy ", "dog"));
UnrefIfInputSharedIndirect(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, AppendRingWithBrokenOffset) { TEST_P(CordRingBuildInputTest, AppendRingWithBrokenOffset) {
@ -1154,9 +1039,6 @@ TEST_P(CordRingBuildInputTest, AppendRingWithBrokenOffset) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), EXPECT_THAT(ToFlats(result),
ElementsAre("Head", "umps ", "over ", "the ", "lazy ", "dog")); ElementsAre("Head", "umps ", "over ", "the ", "lazy ", "dog"));
UnrefIfInputSharedIndirect(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, AppendRingWithFlatLength) { TEST_P(CordRingBuildInputTest, AppendRingWithFlatLength) {
@ -1171,9 +1053,6 @@ TEST_P(CordRingBuildInputTest, AppendRingWithFlatLength) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("Head", "The ", "quick ", "brown ", EXPECT_THAT(ToFlats(result), ElementsAre("Head", "The ", "quick ", "brown ",
"fox ", "jumps ", "over ", "the ")); "fox ", "jumps ", "over ", "the "));
UnrefIfInputSharedIndirect(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendRingWithBrokenFlatLength) { TEST_P(CordRingBuildTest, AppendRingWithBrokenFlatLength) {
@ -1188,9 +1067,6 @@ TEST_P(CordRingBuildTest, AppendRingWithBrokenFlatLength) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("Head", "The ", "quick ", "brown ", EXPECT_THAT(ToFlats(result), ElementsAre("Head", "The ", "quick ", "brown ",
"fox ", "jumps ", "ov")); "fox ", "jumps ", "ov"));
UnrefIfInputSharedIndirect(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendRingMiddlePiece) { TEST_P(CordRingBuildTest, AppendRingMiddlePiece) {
@ -1205,9 +1081,6 @@ TEST_P(CordRingBuildTest, AppendRingMiddlePiece) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), EXPECT_THAT(ToFlats(result),
ElementsAre("Head", "ck ", "brown ", "fox ", "jum")); ElementsAre("Head", "ck ", "brown ", "fox ", "jum"));
UnrefIfInputSharedIndirect(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildTest, AppendRingSinglePiece) { TEST_P(CordRingBuildTest, AppendRingSinglePiece) {
@ -1221,10 +1094,6 @@ TEST_P(CordRingBuildTest, AppendRingSinglePiece) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("Head", "row")); EXPECT_THAT(ToFlats(result), ElementsAre("Head", "row"));
UnrefIfInputSharedIndirect(child);
UnrefIfInputShared(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, AppendRingSinglePieceWithPrefix) { TEST_P(CordRingBuildInputTest, AppendRingSinglePieceWithPrefix) {
@ -1242,10 +1111,6 @@ TEST_P(CordRingBuildInputTest, AppendRingSinglePieceWithPrefix) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("Prepend", "Head", "row")); EXPECT_THAT(ToFlats(result), ElementsAre("Prepend", "Head", "row"));
UnrefIfInputSharedIndirect(child);
UnrefIfInputShared(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRing) { TEST_P(CordRingBuildInputTest, PrependRing) {
@ -1259,9 +1124,6 @@ TEST_P(CordRingBuildInputTest, PrependRing) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats)); EXPECT_THAT(ToFlats(result), ElementsAreArray(kFoxFlats));
UnrefIfInputShared(child);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingWithFlatOffset) { TEST_P(CordRingBuildInputTest, PrependRingWithFlatOffset) {
@ -1276,10 +1138,6 @@ TEST_P(CordRingBuildInputTest, PrependRingWithFlatOffset) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("brown ", "fox ", "jumps ", "over ", EXPECT_THAT(ToFlats(result), ElementsAre("brown ", "fox ", "jumps ", "over ",
"the ", "lazy ", "dog", "Tail")); "the ", "lazy ", "dog", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingWithBrokenOffset) { TEST_P(CordRingBuildInputTest, PrependRingWithBrokenOffset) {
@ -1293,10 +1151,6 @@ TEST_P(CordRingBuildInputTest, PrependRingWithBrokenOffset) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), EXPECT_THAT(ToFlats(result),
ElementsAre("umps ", "over ", "the ", "lazy ", "dog", "Tail")); ElementsAre("umps ", "over ", "the ", "lazy ", "dog", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingWithFlatLength) { TEST_P(CordRingBuildInputTest, PrependRingWithFlatLength) {
@ -1311,10 +1165,6 @@ TEST_P(CordRingBuildInputTest, PrependRingWithFlatLength) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("The ", "quick ", "brown ", "fox ", EXPECT_THAT(ToFlats(result), ElementsAre("The ", "quick ", "brown ", "fox ",
"jumps ", "over ", "the ", "Tail")); "jumps ", "over ", "the ", "Tail"));
UnrefIfShared(ring);
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingWithBrokenFlatLength) { TEST_P(CordRingBuildInputTest, PrependRingWithBrokenFlatLength) {
@ -1329,10 +1179,6 @@ TEST_P(CordRingBuildInputTest, PrependRingWithBrokenFlatLength) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("The ", "quick ", "brown ", "fox ", EXPECT_THAT(ToFlats(result), ElementsAre("The ", "quick ", "brown ", "fox ",
"jumps ", "ov", "Tail")); "jumps ", "ov", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingMiddlePiece) { TEST_P(CordRingBuildInputTest, PrependRingMiddlePiece) {
@ -1348,10 +1194,6 @@ TEST_P(CordRingBuildInputTest, PrependRingMiddlePiece) {
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), EXPECT_THAT(ToFlats(result),
ElementsAre("ck ", "brown ", "fox ", "jum", "Tail")); ElementsAre("ck ", "brown ", "fox ", "jum", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingSinglePiece) { TEST_P(CordRingBuildInputTest, PrependRingSinglePiece) {
@ -1365,10 +1207,6 @@ TEST_P(CordRingBuildInputTest, PrependRingSinglePiece) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("row", "Tail")); EXPECT_THAT(ToFlats(result), ElementsAre("row", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_P(CordRingBuildInputTest, PrependRingSinglePieceWithPrefix) { TEST_P(CordRingBuildInputTest, PrependRingSinglePieceWithPrefix) {
@ -1385,10 +1223,6 @@ TEST_P(CordRingBuildInputTest, PrependRingSinglePieceWithPrefix) {
ASSERT_THAT(result, IsValidRingBuffer()); ASSERT_THAT(result, IsValidRingBuffer());
EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring)); EXPECT_THAT(result, EqIfPrivateAndCapacity(GetParam(), ring));
EXPECT_THAT(ToFlats(result), ElementsAre("row", "Prepend", "Tail")); EXPECT_THAT(ToFlats(result), ElementsAre("row", "Prepend", "Tail"));
UnrefIfInputShared(child);
UnrefIfInputSharedIndirect(stripped);
UnrefIfShared(ring);
Unref(result);
} }
TEST_F(CordRingTest, Find) { TEST_F(CordRingTest, Find) {
@ -1406,7 +1240,6 @@ TEST_F(CordRingTest, Find) {
ASSERT_THAT(found.offset, Lt(data.length())); ASSERT_THAT(found.offset, Lt(data.length()));
ASSERT_THAT(data[found.offset], Eq(value[i])); ASSERT_THAT(data[found.offset], Eq(value[i]));
} }
Unref(ring);
} }
TEST_F(CordRingTest, FindWithHint) { TEST_F(CordRingTest, FindWithHint) {
@ -1442,7 +1275,6 @@ TEST_F(CordRingTest, FindWithHint) {
++flat_pos; ++flat_pos;
flat_offset += flat.length(); flat_offset += flat.length();
} }
Unref(ring);
} }
TEST_F(CordRingTest, FindInLargeRing) { TEST_F(CordRingTest, FindInLargeRing) {
@ -1464,7 +1296,6 @@ TEST_F(CordRingTest, FindInLargeRing) {
ASSERT_THAT(pos.offset, Lt(data.length())); ASSERT_THAT(pos.offset, Lt(data.length()));
ASSERT_THAT(data[pos.offset], Eq(value[i])); ASSERT_THAT(data[pos.offset], Eq(value[i]));
} }
Unref(ring);
} }
TEST_F(CordRingTest, FindTail) { TEST_F(CordRingTest, FindTail) {
@ -1483,7 +1314,6 @@ TEST_F(CordRingTest, FindTail) {
ASSERT_THAT(pos.offset, Lt(data.length())); ASSERT_THAT(pos.offset, Lt(data.length()));
ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i])); ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i]));
} }
Unref(ring);
} }
TEST_F(CordRingTest, FindTailWithHint) { TEST_F(CordRingTest, FindTailWithHint) {
@ -1510,7 +1340,6 @@ TEST_F(CordRingTest, FindTailWithHint) {
ASSERT_THAT(pos.offset, Lt(data.length())); ASSERT_THAT(pos.offset, Lt(data.length()));
ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i])); ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i]));
} }
Unref(ring);
} }
TEST_F(CordRingTest, FindTailInLargeRing) { TEST_F(CordRingTest, FindTailInLargeRing) {
@ -1532,7 +1361,6 @@ TEST_F(CordRingTest, FindTailInLargeRing) {
ASSERT_THAT(pos.offset, Lt(data.length())); ASSERT_THAT(pos.offset, Lt(data.length()));
ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i])); ASSERT_THAT(data[data.length() - pos.offset - 1], Eq(value[i]));
} }
Unref(ring);
} }
TEST_F(CordRingTest, GetCharacter) { TEST_F(CordRingTest, GetCharacter) {
@ -1544,7 +1372,6 @@ TEST_F(CordRingTest, GetCharacter) {
for (int i = 0; i < value.length(); ++i) { for (int i = 0; i < value.length(); ++i) {
ASSERT_THAT(result->GetCharacter(i), Eq(value[i])); ASSERT_THAT(result->GetCharacter(i), Eq(value[i]));
} }
Unref(result);
} }
TEST_F(CordRingTest, GetCharacterWithSubstring) { TEST_F(CordRingTest, GetCharacterWithSubstring) {
@ -1556,7 +1383,6 @@ TEST_F(CordRingTest, GetCharacterWithSubstring) {
for (int i = 0; i < value.length(); ++i) { for (int i = 0; i < value.length(); ++i) {
ASSERT_THAT(result->GetCharacter(i), Eq(value[i])); ASSERT_THAT(result->GetCharacter(i), Eq(value[i]));
} }
Unref(result);
} }
TEST_F(CordRingTest, IsFlatSingleFlat) { TEST_F(CordRingTest, IsFlatSingleFlat) {
@ -1581,8 +1407,6 @@ TEST_F(CordRingTest, IsFlatSingleFlat) {
EXPECT_THAT(fragment, Eq("ello")); EXPECT_THAT(fragment, Eq("ello"));
EXPECT_TRUE(ring->IsFlat(6, 5, &fragment)); EXPECT_TRUE(ring->IsFlat(6, 5, &fragment));
EXPECT_THAT(fragment, Eq("world")); EXPECT_THAT(fragment, Eq("world"));
Unref(ring);
} }
} }
@ -1619,8 +1443,6 @@ TEST_F(CordRingTest, IsFlatMultiFlat) {
EXPECT_FALSE(ring->IsFlat(1, 18, &fragment)); EXPECT_FALSE(ring->IsFlat(1, 18, &fragment));
EXPECT_FALSE(ring->IsFlat(10, 2, &fragment)); EXPECT_FALSE(ring->IsFlat(10, 2, &fragment));
EXPECT_THAT(fragment, Eq("Don't touch this")); EXPECT_THAT(fragment, Eq("Don't touch this"));
Unref(ring);
} }
} }
@ -1629,7 +1451,6 @@ TEST_F(CordRingTest, Dump) {
auto flats = MakeSpan(kFoxFlats); auto flats = MakeSpan(kFoxFlats);
CordRepRing* ring = NeedsUnref(FromFlats(flats, kPrepend)); CordRepRing* ring = NeedsUnref(FromFlats(flats, kPrepend));
ss << *ring; ss << *ring;
Unref(ring);
} }
} // namespace } // namespace

@ -24,7 +24,7 @@ if [[ -z ${ABSEIL_ROOT:-} ]]; then
fi fi
# If we are running on Kokoro, check for a versioned Bazel binary. # If we are running on Kokoro, check for a versioned Bazel binary.
KOKORO_GFILE_BAZEL_BIN="bazel-2.0.0-darwin-x86_64" KOKORO_GFILE_BAZEL_BIN="bazel-3.7.0-darwin-x86_64"
if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f ${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN} ]]; then if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f ${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN} ]]; then
BAZEL_BIN="${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN}" BAZEL_BIN="${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN}"
chmod +x ${BAZEL_BIN} chmod +x ${BAZEL_BIN}

Loading…
Cancel
Save