Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(465)

Unified Diff: courgette/label_manager_unittest.cc

Issue 1853943002: [Courgette] Refactor LabelManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« courgette/label_manager.h ('K') | « courgette/label_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: courgette/label_manager_unittest.cc
diff --git a/courgette/label_manager_unittest.cc b/courgette/label_manager_unittest.cc
index 4b91d92530d9c5c96d175dd2746a09fc1e2c7a1e..e95b5135faf29eaa58856dc085b805d20c863f25 100644
--- a/courgette/label_manager_unittest.cc
+++ b/courgette/label_manager_unittest.cc
@@ -16,35 +16,23 @@
#include "base/logging.h"
#include "base/macros.h"
+#include "courgette/image_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace courgette {
namespace {
-// Test version of RvaVisitor: Just wrap std::vector<RVA>.
-class TestRvaVisitor : public LabelManagerImpl::RvaVisitor {
+class TestLabelManager : public LabelManager {
public:
- explicit TestRvaVisitor(std::vector<RVA>::const_iterator rva_begin,
- std::vector<RVA>::const_iterator rva_end)
- : rva_it_(rva_begin), rva_end_(rva_end) {}
-
- ~TestRvaVisitor() override {}
-
- size_t Remaining() const override { return std::distance(rva_it_, rva_end_); }
-
- RVA Get() const override { return *rva_it_; }
-
- void Next() override { ++rva_it_; }
-
- private:
- std::vector<RVA>::const_iterator rva_it_;
- std::vector<RVA>::const_iterator rva_end_;
+ void SetLabels(const LabelVector& labels) {
+ labels_ = labels;
+ };
};
void CheckLabelManagerContent(LabelManager* label_manager,
const std::map<RVA, int32_t>& expected) {
- EXPECT_EQ(expected.size(), label_manager->Size());
+ EXPECT_EQ(expected.size(), label_manager->Labels().size());
for (const auto& rva_and_count : expected) {
Label* label = label_manager->Find(rva_and_count.first);
EXPECT_TRUE(label != nullptr);
@@ -111,18 +99,18 @@ std::string EncodeLabelIndexes(const LabelVector& labels) {
} // namespace
-TEST(LabelManagerTest, GetIndexBound_LabelVector) {
+TEST(LabelManagerTest, GetLabelIndexBound) {
LabelVector labels0;
- EXPECT_EQ(0, LabelManager::GetIndexBound(labels0));
+ EXPECT_EQ(0, LabelManager::GetLabelIndexBound(labels0));
LabelVector labels1_uninit = CreateLabelVectorBasic(1);
ASSERT_EQ(1U, labels1_uninit.size());
- EXPECT_EQ(0, LabelManager::GetIndexBound(labels1_uninit));
+ EXPECT_EQ(0, LabelManager::GetLabelIndexBound(labels1_uninit));
LabelVector labels1_init = CreateLabelVectorBasic(1);
ASSERT_EQ(1U, labels1_init.size());
labels1_init[0].index_ = 99;
- EXPECT_EQ(100, LabelManager::GetIndexBound(labels1_init));
+ EXPECT_EQ(100, LabelManager::GetLabelIndexBound(labels1_init));
LabelVector labels6_mixed = CreateLabelVectorBasic(6);
ASSERT_EQ(6U, labels6_mixed.size());
@@ -130,28 +118,7 @@ TEST(LabelManagerTest, GetIndexBound_LabelVector) {
labels6_mixed[2].index_ = 2;
labels6_mixed[4].index_ = 15;
labels6_mixed[5].index_ = 7;
- EXPECT_EQ(16, LabelManager::GetIndexBound(labels6_mixed));
-}
-
-TEST(LabelManagerTest, GetIndexBound_RVAToLabel) {
- RVAToLabel labels_map0;
- EXPECT_EQ(0, LabelManager::GetIndexBound(labels_map0));
-
- RVAToLabel labels1_map_init;
- Label label1(static_cast<RVA>(0), 99, 1);
- labels1_map_init[label1.rva_] = &label1;
- EXPECT_EQ(100, LabelManager::GetIndexBound(labels1_map_init));
-
- RVAToLabel labels_map6_mixed;
- Label labels6[] = {
- Label(static_cast<RVA>(1), 5, 1),
- Label(static_cast<RVA>(2), 2, 1),
- Label(static_cast<RVA>(4), 15, 1),
- Label(static_cast<RVA>(5), 7, 1)
- };
- for (Label& label : labels6)
- labels_map6_mixed[label.rva_] = &label;
- EXPECT_EQ(16, LabelManager::GetIndexBound(labels_map6_mixed));
+ EXPECT_EQ(16, LabelManager::GetLabelIndexBound(labels6_mixed));
}
TEST(LabelManagerTest, Basic) {
@@ -169,10 +136,10 @@ TEST(LabelManagerTest, Basic) {
};
std::vector<RVA> test_targets(std::begin(kTestTargetsRaw),
std::end(kTestTargetsRaw));
- TestRvaVisitor visitor(test_targets.begin(), test_targets.end());
+ TrivialRvaVisitor visitor(test_targets);
// Preallocate targets, then populate.
- LabelManagerImpl label_manager;
+ TestLabelManager label_manager;
label_manager.Read(&visitor);
static const std::pair<RVA, int32_t> kExpected1Raw[] = {
@@ -205,10 +172,10 @@ TEST(LabelManagerTest, Single) {
for (int dup = 1; dup < 8; ++dup) {
// Test data: |dup| copies of kRva.
std::vector<RVA> test_targets(dup, kRva);
- TestRvaVisitor visitor(test_targets.begin(), test_targets.end());
- LabelManagerImpl label_manager;
+ TrivialRvaVisitor visitor(test_targets);
+ TestLabelManager label_manager;
label_manager.Read(&visitor);
- EXPECT_EQ(1U, label_manager.Size()); // Deduped to 1 Label.
+ EXPECT_EQ(1U, label_manager.Labels().size()); // Deduped to 1 Label.
Label* label = label_manager.Find(kRva);
EXPECT_NE(nullptr, label);
@@ -224,16 +191,16 @@ TEST(LabelManagerTest, Single) {
TEST(LabelManagerTest, Empty) {
std::vector<RVA> empty_test_targets;
- TestRvaVisitor visitor(empty_test_targets.begin(), empty_test_targets.end());
- LabelManagerImpl label_manager;
+ TrivialRvaVisitor visitor(empty_test_targets);
+ TestLabelManager label_manager;
label_manager.Read(&visitor);
- EXPECT_EQ(0U, label_manager.Size());
+ EXPECT_EQ(0U, label_manager.Labels().size());
for (RVA rva = 0U; rva < 16U; ++rva)
EXPECT_EQ(nullptr, label_manager.Find(rva));
}
TEST(LabelManagerTest, EmptyAssign) {
- LabelManagerImpl label_manager_empty;
+ TestLabelManager label_manager_empty;
label_manager_empty.DefaultAssignIndexes();
label_manager_empty.UnassignIndexes();
label_manager_empty.AssignRemainingIndexes();
@@ -241,7 +208,7 @@ TEST(LabelManagerTest, EmptyAssign) {
TEST(LabelManagerTest, TrivialAssign) {
for (size_t size = 0; size < 20; ++size) {
- LabelManagerImpl label_manager;
+ TestLabelManager label_manager;
label_manager.SetLabels(CreateLabelVectorBasic(size));
// Sanity check.
@@ -267,7 +234,7 @@ TEST(LabelManagerTest, TrivialAssign) {
// Tests SimpleIndexAssigner fill strategies independently.
TEST(LabelManagerTest, SimpleIndexAssigner) {
- using SimpleIndexAssigner = LabelManagerImpl::SimpleIndexAssigner;
+ using SimpleIndexAssigner = LabelManager::SimpleIndexAssigner;
// See CreateLabelVectorWithIndexes() explanation on how we encode LabelVector
// |index_| values as a string.
const struct TestCase {
@@ -384,7 +351,7 @@ TEST(LabelManagerTest, AssignRemainingIndexes) {
{"..FE..GD..", "ABFECHGDIJ"}, // Forward: "AB"; backward: "IJ"; in: "CH".
};
for (const auto& test_case : kTestCases) {
- LabelManagerImpl label_manager;
+ TestLabelManager label_manager;
label_manager.SetLabels(CreateLabelVectorWithIndexes(test_case.input));
label_manager.AssignRemainingIndexes();
« courgette/label_manager.h ('K') | « courgette/label_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698