Tidy up and finish reference table dumping.
Change-Id: I9f0d214e27a75d373e3144b738f1e3da51bbc0ca
diff --git a/src/reference_table_test.cc b/src/reference_table_test.cc
index 4c1e67f..c7c1cc6 100644
--- a/src/reference_table_test.cc
+++ b/src/reference_table_test.cc
@@ -27,10 +27,10 @@
Object* o1 = String::AllocFromModifiedUtf8("hello");
Object* o2 = ShortArray::Alloc(0);
- // TODO: rewrite Dump to take a std::ostream& so we can test it better.
-
ReferenceTable rt("test", 0, 4);
- rt.Dump();
+ std::ostringstream oss1;
+ rt.Dump(oss1);
+ EXPECT_TRUE(oss1.str().find("(empty)") != std::string::npos) << oss1.str();
EXPECT_EQ(0U, rt.Size());
rt.Remove(NULL);
EXPECT_EQ(0U, rt.Size());
@@ -40,8 +40,16 @@
EXPECT_EQ(1U, rt.Size());
rt.Add(o2);
EXPECT_EQ(2U, rt.Size());
- rt.Dump();
+ rt.Add(o2);
+ EXPECT_EQ(3U, rt.Size());
+ std::ostringstream oss2;
+ rt.Dump(oss2);
+ EXPECT_TRUE(oss2.str().find("Last 3 entries (of 3):") != std::string::npos) << oss2.str();
+ EXPECT_TRUE(oss2.str().find("1 of java.lang.String") != std::string::npos) << oss2.str();
+ EXPECT_TRUE(oss2.str().find("2 of short[] (1 unique instances)") != std::string::npos) << oss2.str();
rt.Remove(o1);
+ EXPECT_EQ(2U, rt.Size());
+ rt.Remove(o2);
EXPECT_EQ(1U, rt.Size());
rt.Remove(o2);
EXPECT_EQ(0U, rt.Size());