Do more testing in ByteString.OneCharReverseIterator unit test.
- Test the distance between the reverse iterator and rbegin()/rend().
- Switch from EXPECT_TRUE/EXPECT_FALSE to EXPECT_EQ/EXPECT_NE for
slightly better failure output.
Also make the same changes to WideString.OneCharReverseIterator test.
Change-Id: If9df9bd5af9c96b62a4ec42662eb090809d32529
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/61530
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fxcrt/bytestring_unittest.cpp b/core/fxcrt/bytestring_unittest.cpp
index 6152f78..f40784b 100644
--- a/core/fxcrt/bytestring_unittest.cpp
+++ b/core/fxcrt/bytestring_unittest.cpp
@@ -987,46 +987,64 @@
TEST(ByteString, MultiCharReverseIterator) {
ByteString multi_str("abcd");
auto iter = multi_str.rbegin();
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(4, multi_str.rend() - iter);
+ EXPECT_EQ(0, iter - multi_str.rbegin());
char ch = *iter++;
EXPECT_EQ('d', ch);
EXPECT_EQ('c', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(3, multi_str.rend() - iter);
+ EXPECT_EQ(1, iter - multi_str.rbegin());
ch = *(++iter);
EXPECT_EQ('b', ch);
EXPECT_EQ('b', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(2, multi_str.rend() - iter);
+ EXPECT_EQ(2, iter - multi_str.rbegin());
ch = *iter++;
EXPECT_EQ('b', ch);
EXPECT_EQ('a', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(1, multi_str.rend() - iter);
+ EXPECT_EQ(3, iter - multi_str.rbegin());
ch = *iter++;
EXPECT_EQ('a', ch);
- EXPECT_TRUE(iter == multi_str.rend());
+ EXPECT_EQ(iter, multi_str.rend());
+ EXPECT_EQ(0, multi_str.rend() - iter);
+ EXPECT_EQ(4, iter - multi_str.rbegin());
ch = *(--iter);
EXPECT_EQ('a', ch);
EXPECT_EQ('a', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(1, multi_str.rend() - iter);
+ EXPECT_EQ(3, iter - multi_str.rbegin());
ch = *iter--;
EXPECT_EQ('a', ch);
EXPECT_EQ('b', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(2, multi_str.rend() - iter);
+ EXPECT_EQ(2, iter - multi_str.rbegin());
ch = *iter--;
EXPECT_EQ('b', ch);
EXPECT_EQ('c', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(3, multi_str.rend() - iter);
+ EXPECT_EQ(1, iter - multi_str.rbegin());
ch = *(--iter);
EXPECT_EQ('d', ch);
EXPECT_EQ('d', *iter);
- EXPECT_TRUE(iter == multi_str.rbegin());
+ EXPECT_EQ(iter, multi_str.rbegin());
+ EXPECT_EQ(4, multi_str.rend() - iter);
+ EXPECT_EQ(0, iter - multi_str.rbegin());
}
TEST(ByteStringView, Null) {
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp
index 48a45b7..bbd2fd9 100644
--- a/core/fxcrt/widestring_unittest.cpp
+++ b/core/fxcrt/widestring_unittest.cpp
@@ -958,46 +958,64 @@
TEST(WideString, MultiCharReverseIterator) {
WideString multi_str(L"abcd");
auto iter = multi_str.rbegin();
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(4, multi_str.rend() - iter);
+ EXPECT_EQ(0, iter - multi_str.rbegin());
char ch = *iter++;
EXPECT_EQ('d', ch);
EXPECT_EQ('c', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(3, multi_str.rend() - iter);
+ EXPECT_EQ(1, iter - multi_str.rbegin());
ch = *(++iter);
EXPECT_EQ('b', ch);
EXPECT_EQ('b', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(2, multi_str.rend() - iter);
+ EXPECT_EQ(2, iter - multi_str.rbegin());
ch = *iter++;
EXPECT_EQ('b', ch);
EXPECT_EQ('a', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(1, multi_str.rend() - iter);
+ EXPECT_EQ(3, iter - multi_str.rbegin());
ch = *iter++;
EXPECT_EQ('a', ch);
- EXPECT_TRUE(iter == multi_str.rend());
+ EXPECT_EQ(iter, multi_str.rend());
+ EXPECT_EQ(0, multi_str.rend() - iter);
+ EXPECT_EQ(4, iter - multi_str.rbegin());
ch = *(--iter);
EXPECT_EQ('a', ch);
EXPECT_EQ('a', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(1, multi_str.rend() - iter);
+ EXPECT_EQ(3, iter - multi_str.rbegin());
ch = *iter--;
EXPECT_EQ('a', ch);
EXPECT_EQ('b', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(2, multi_str.rend() - iter);
+ EXPECT_EQ(2, iter - multi_str.rbegin());
ch = *iter--;
EXPECT_EQ('b', ch);
EXPECT_EQ('c', *iter);
- EXPECT_FALSE(iter == multi_str.rend());
+ EXPECT_NE(iter, multi_str.rend());
+ EXPECT_EQ(3, multi_str.rend() - iter);
+ EXPECT_EQ(1, iter - multi_str.rbegin());
ch = *(--iter);
EXPECT_EQ('d', ch);
EXPECT_EQ('d', *iter);
- EXPECT_TRUE(iter == multi_str.rbegin());
+ EXPECT_EQ(iter, multi_str.rbegin());
+ EXPECT_EQ(4, multi_str.rend() - iter);
+ EXPECT_EQ(0, iter - multi_str.rbegin());
}
TEST(WideString, ToUTF16LE) {