Skip to content

Commit

Permalink
test(en): Add consistency checker checks to recovery test (matter-lab…
Browse files Browse the repository at this point in the history
…s#2029)

## What ❔

Returns consistency checker checks to the genesis recovery test.

## Why ❔

These checks were previously too slow because of commitment generation,
but now it is sped up.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
  • Loading branch information
slowli authored May 27, 2024
1 parent 8f71c2f commit c156798
Showing 1 changed file with 29 additions and 4 deletions.
33 changes: 29 additions & 4 deletions core/tests/recovery-test/tests/genesis-recovery.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import {
FundedWallet
} from '../src';

// FIXME: check consistency checker health once it has acceptable speed

/**
* Tests recovery of an external node from scratch.
*
Expand Down Expand Up @@ -101,8 +99,9 @@ describe('genesis recovery', () => {

let reorgDetectorSucceeded = false;
let treeFetcherSucceeded = false;
let consistencyCheckerSucceeded = false;

while (!treeFetcherSucceeded || !reorgDetectorSucceeded) {
while (!treeFetcherSucceeded || !reorgDetectorSucceeded || !consistencyCheckerSucceeded) {
await sleep(1000);
const health = await getExternalNodeHealth();
if (health === null) {
Expand All @@ -129,6 +128,19 @@ describe('genesis recovery', () => {
}
}
}

if (!consistencyCheckerSucceeded) {
const status = health.components.consistency_checker?.status;
expect(status).to.be.oneOf([undefined, 'not_ready', 'ready']);
const details = health.components.consistency_checker?.details;
if (status === 'ready' && details !== undefined) {
console.log('Received consistency checker health details', details);
if (details.first_checked_batch !== undefined && details.last_checked_batch !== undefined) {
expect(details.first_checked_batch).to.equal(1);
consistencyCheckerSucceeded = details.last_checked_batch >= CATCH_UP_BATCH_COUNT;
}
}
}
}

// If `externalNodeProcess` fails early, we'll trip these checks.
Expand Down Expand Up @@ -181,8 +193,9 @@ describe('genesis recovery', () => {

let reorgDetectorSucceeded = false;
let treeSucceeded = false;
let consistencyCheckerSucceeded = false;

while (!treeSucceeded || !reorgDetectorSucceeded) {
while (!treeSucceeded || !reorgDetectorSucceeded || !consistencyCheckerSucceeded) {
await sleep(1000);
const health = await getExternalNodeHealth();
if (health === null) {
Expand Down Expand Up @@ -210,6 +223,18 @@ describe('genesis recovery', () => {
}
}
}

if (!consistencyCheckerSucceeded) {
const status = health.components.consistency_checker?.status;
expect(status).to.be.oneOf([undefined, 'not_ready', 'ready']);
const details = health.components.consistency_checker?.details;
if (status === 'ready' && details !== undefined) {
console.log('Received consistency checker health details', details);
if (details.first_checked_batch !== undefined && details.last_checked_batch !== undefined) {
consistencyCheckerSucceeded = details.last_checked_batch >= catchUpBatchNumber;
}
}
}
}
});
});

0 comments on commit c156798

Please sign in to comment.