mdbx-test: implement 'speculum' checking for ttl testcase.

Change-Id: Ic825711893f782a71e75447575ac76644ac3f482
This commit is contained in:
Leonid Yuriev
2020-05-18 16:39:55 +03:00
parent d1d65f8090
commit 3990f1cc07
4 changed files with 28 additions and 8 deletions

View File

@@ -97,7 +97,7 @@ bool testcase_ttl::run() {
for (unsigned n = 0; n < tail_count; ++n) {
log_trace("ttl: remove-tail %" PRIu64, tail_serial);
generate_pair(tail_serial);
err = mdbx_del(txn_guard.get(), dbi, &key->value, &data->value);
err = remove(key, data);
if (unlikely(err != MDBX_SUCCESS)) {
if (err == MDBX_MAP_FULL && config.params.ignore_dbfull) {
log_notice("ttl: tail-bailout due '%s'", mdbx_strerror(err));
@@ -120,13 +120,17 @@ bool testcase_ttl::run() {
log_notice("ttl: bailout at commit due '%s'", mdbx_strerror(err));
break;
}
if (!speculum_verify()) {
log_notice("ttl: bailout after tail-trim");
return false;
}
fifo.push_front(std::make_pair(serial, head_count));
retry:
for (unsigned n = 0; n < head_count; ++n) {
log_trace("ttl: insert-head %" PRIu64, serial);
generate_pair(serial);
err = mdbx_put(txn_guard.get(), dbi, &key->value, &data->value,
insert_flags);
err = insert(key, data, insert_flags);
if (unlikely(err != MDBX_SUCCESS)) {
if (err == MDBX_MAP_FULL && config.params.ignore_dbfull) {
log_notice("ttl: head-insert skip due '%s'", mdbx_strerror(err));
@@ -149,6 +153,10 @@ bool testcase_ttl::run() {
serial = fifo.front().first;
fifo.pop_front();
}
if (!speculum_verify()) {
log_notice("ttl: bailout after head-grow");
return false;
}
report(1);
rc = true;