EXPECT_EQ(eversion_t(19, 160), write_from_dups2);
EXPECT_EQ(2u, log.log.size());
EXPECT_EQ(1u, trimmed2.size());
- EXPECT_EQ(3u, log.dups.size());
- EXPECT_EQ(0u, trimmed_dups2.size());
+ EXPECT_EQ(2u, log.dups.size());
+ EXPECT_EQ(1u, trimmed_dups2.size());
}
EXPECT_EQ(eversion_t(20, 103), write_from_dups) << log;
EXPECT_EQ(2u, log.log.size()) << log;
- EXPECT_EQ(4u, log.dups.size()) << log;
+ EXPECT_EQ(3u, log.dups.size()) << log;
}
// This tests trim() to make copies of
EXPECT_EQ(eversion_t(10, 100), write_from_dups) << log;
EXPECT_EQ(4u, log.log.size()) << log;
- EXPECT_EQ(6u, log.dups.size()) << log;
-}
-
-// This tests trim() to make copies of
-// 5 log entries (107, 106, 105, 104, 103) and trim all dups
-TEST_F(PGLogTrimTest, TestTrimAllDups) {
- SetUp(0);
- PGLog::IndexedLog log;
- log.head = mk_evt(21, 107);
- log.skip_can_rollback_to_to_head();
- log.tail = mk_evt(9, 99);
- log.head = mk_evt(9, 99);
-
- entity_name_t client = entity_name_t::CLIENT(777);
-
- log.dups.push_back(pg_log_dup_t(mk_ple_mod(mk_obj(1),
- mk_evt(9, 98), mk_evt(8, 97), osd_reqid_t(client, 8, 1))));
- log.dups.push_back(pg_log_dup_t(mk_ple_mod(mk_obj(1),
- mk_evt(9, 99), mk_evt(8, 98), osd_reqid_t(client, 8, 1))));
-
- log.add(mk_ple_mod(mk_obj(1), mk_evt(10, 100), mk_evt(9, 99),
- osd_reqid_t(client, 8, 1)));
- log.add(mk_ple_dt(mk_obj(2), mk_evt(15, 101), mk_evt(10, 100),
- osd_reqid_t(client, 8, 2)));
- log.add(mk_ple_mod_rb(mk_obj(3), mk_evt(15, 102), mk_evt(15, 101),
- osd_reqid_t(client, 8, 3)));
- log.add(mk_ple_mod(mk_obj(1), mk_evt(20, 103), mk_evt(15, 102),
- osd_reqid_t(client, 8, 4)));
- log.add(mk_ple_mod(mk_obj(4), mk_evt(21, 104), mk_evt(20, 103),
- osd_reqid_t(client, 8, 5)));
- log.add(mk_ple_dt_rb(mk_obj(5), mk_evt(21, 105), mk_evt(21, 104),
- osd_reqid_t(client, 8, 6)));
- log.add(mk_ple_dt_rb(mk_obj(5), mk_evt(21, 106), mk_evt(21, 105),
- osd_reqid_t(client, 8, 6)));
- log.add(mk_ple_dt_rb(mk_obj(5), mk_evt(21, 107), mk_evt(21, 106),
- osd_reqid_t(client, 8, 6)));
-
- eversion_t write_from_dups = eversion_t::max();
-
- log.trim(cct, mk_evt(20, 102), nullptr, nullptr, &write_from_dups);
-
- EXPECT_EQ(eversion_t::max(), write_from_dups) << log;
- EXPECT_EQ(5u, log.log.size()) << log;
- EXPECT_EQ(0u, log.dups.size()) << log;
+ EXPECT_EQ(5u, log.dups.size()) << log;
}
// This tests copy_up_to() to make copies of