67 candidates.push_back(&entry);
68 ASSERT_EQ(rp->getVictim(candidates), &entry);
71 ASSERT_EQ(rp->getVictim(candidates), &entry);
74 ASSERT_EQ(rp->getVictim(candidates), &entry);
77 ASSERT_EQ(rp->getVictim(candidates), &entry);
106 auto expected_victim = &entries.front();
110 ASSERT_EQ(rp->getVictim(candidates), expected_victim);
116 for (
auto it = candidates.rbegin(); it != candidates.rend(); ++it) {
117 rp->invalidate((*it)->replacementData);
119 ASSERT_EQ(rp->getVictim(candidates), expected_victim);
127 auto expected_victim = &entries.front();
131 ASSERT_EQ(rp->getVictim(candidates), expected_victim);
135 for (
auto it = candidates.rbegin(); it != candidates.rend(); ++it) {
136 rp->invalidate((*it)->replacementData);
138 ASSERT_EQ(rp->getVictim(candidates), expected_victim);
161 for (
size_t i = 0; i < entries.size(); ++i) {
163 auto &entry = entries[i];
166 rp->reset(entry.replacementData);
170 for (
size_t j = 0; j < entries.size(); ++j) {
172 rp->reset(entries[j].replacementData);
176 ASSERT_EQ(rp->getVictim(candidates), &entry);
184 for (
size_t i = 0; i < entries.size(); ++i) {
186 auto &entry = entries[i];
189 rp->reset(entry.replacementData);
193 for (
size_t j = 0; j < entries.size(); ++j) {
195 rp->reset(entries[j].replacementData);
201 rp->touch(entry.replacementData);
203 ASSERT_EQ(rp->getVictim(candidates), &entry);
A replaceable entry is a basic entry in a 2d table-like structure that needs to have replacement func...
std::shared_ptr< replacement_policy::ReplacementData > replacementData
Replacement data associated to this entry.