Fix lastLeq bug

This commit is contained in:
2024-02-01 11:24:57 -08:00
parent 96aca4a1da
commit 0eff5628bd
133 changed files with 86 additions and 30 deletions

View File

@@ -7,6 +7,7 @@
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <inttypes.h>
#include <map>
#include <set>
#include <span>
@@ -14,7 +15,7 @@
#include <utility>
#include <vector>
#define DEBUG_VERBOSE 1
#define DEBUG_VERBOSE 0
// This header contains code that we want to reuse outside of ConflictSet.cpp or
// want to exclude from coverage since it's only testing related.
@@ -451,6 +452,19 @@ template <class ConflictSetImpl> struct TestDriver {
constexpr static auto kMaxKeyLen = 24;
bool ok = true;
static const char *resultToStr(ConflictSet::Result r) {
switch (r) {
case ConflictSet::Commit:
return "commit";
case ConflictSet::Conflict:
return "conflict";
case ConflictSet::TooOld:
return "too old";
}
}
// Call until it returns true, for "done". Check internal invariants etc
// between calls to next.
bool next() {
@@ -537,10 +551,12 @@ template <class ConflictSetImpl> struct TestDriver {
refImpl.check(reads, results2, numReads);
for (int i = 0; i < numReads; ++i) {
if (results1[i] != results2[i]) {
fprintf(stderr, "Expected %d, got %d for read of %s at version %d\n",
results2[i], results1[i], printable(reads[i].begin).c_str(),
int(reads[i].readVersion));
abort();
fprintf(stderr,
"Expected %s, got %s for read of %s at version %" PRId64 "\n",
resultToStr(results2[i]), resultToStr(results1[i]),
printable(reads[i].begin).c_str(), reads[i].readVersion);
ok = false;
return true;
}
}
}