| 231 | }; |
| 232 | |
| 233 | void TestLoaderCheckpointing(const std::unique_ptr<DummyCountingLoader> &loader, int n) { |
| 234 | std::vector<uint64_t> reference; |
| 235 | std::vector<LoaderStateSnapshot> snapshots; |
| 236 | for (int i = 0; i < n; i++) { |
| 237 | snapshots.push_back(loader->GetStateSnapshot()); |
| 238 | reference.push_back(loader->ReadInt(false, false)); |
| 239 | } |
| 240 | |
| 241 | for (int start = 0; start < n; start++) { |
| 242 | loader->RestoreStateFromSnapshot(snapshots[start]); |
| 243 | std::vector<uint64_t> rest; |
| 244 | for (int i = start; i < n; i++) { |
| 245 | rest.push_back(loader->ReadInt(false, false)); |
| 246 | } |
| 247 | std::vector<uint64_t> expected{reference.begin() + start, reference.end()}; |
| 248 | EXPECT_EQ(rest, expected); |
| 249 | } |
| 250 | } |
| 251 | |
| 252 | TEST(LoaderCheckpointingTest, TestCheckpoint) { |
| 253 | auto spec = OpSpec("FileReader") |
no test coverage detected