MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / CompareIterators

Function CompareIterators

src/leveldb/db/db_test.cc:1969–2015  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1967}
1968
1969static bool CompareIterators(int step,
1970 DB* model,
1971 DB* db,
1972 const Snapshot* model_snap,
1973 const Snapshot* db_snap) {
1974 ReadOptions options;
1975 options.snapshot = model_snap;
1976 Iterator* miter = model->NewIterator(options);
1977 options.snapshot = db_snap;
1978 Iterator* dbiter = db->NewIterator(options);
1979 bool ok = true;
1980 int count = 0;
1981 for (miter->SeekToFirst(), dbiter->SeekToFirst();
1982 ok && miter->Valid() && dbiter->Valid();
1983 miter->Next(), dbiter->Next()) {
1984 count++;
1985 if (miter->key().compare(dbiter->key()) != 0) {
1986 fprintf(stderr, "step %d: Key mismatch: '%s' vs. '%s'\n",
1987 step,
1988 EscapeString(miter->key()).c_str(),
1989 EscapeString(dbiter->key()).c_str());
1990 ok = false;
1991 break;
1992 }
1993
1994 if (miter->value().compare(dbiter->value()) != 0) {
1995 fprintf(stderr, "step %d: Value mismatch for key '%s': '%s' vs. '%s'\n",
1996 step,
1997 EscapeString(miter->key()).c_str(),
1998 EscapeString(miter->value()).c_str(),
1999 EscapeString(miter->value()).c_str());
2000 ok = false;
2001 }
2002 }
2003
2004 if (ok) {
2005 if (miter->Valid() != dbiter->Valid()) {
2006 fprintf(stderr, "step %d: Mismatch at end of iterators: %d vs. %d\n",
2007 step, miter->Valid(), dbiter->Valid());
2008 ok = false;
2009 }
2010 }
2011 fprintf(stderr, "%d entries compared: ok=%d\n", count, ok);
2012 delete miter;
2013 delete dbiter;
2014 return ok;
2015}
2016
2017TEST(DBTest, Randomized) {
2018 Random rnd(test::RandomSeed());

Callers 1

TESTFunction · 0.85

Calls 8

EscapeStringFunction · 0.85
compareMethod · 0.80
NewIteratorMethod · 0.45
SeekToFirstMethod · 0.45
ValidMethod · 0.45
NextMethod · 0.45
keyMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected