From ca2b6c6ccb9b7749ff3df461b1d705117833e267 Mon Sep 17 00:00:00 2001 From: Asa Oines Date: Thu, 24 Oct 2019 16:27:23 -0700 Subject: [PATCH 1/2] Update governance end-to-end tests to work with changed precompile --- packages/celotool/src/e2e-tests/governance_tests.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/celotool/src/e2e-tests/governance_tests.ts b/packages/celotool/src/e2e-tests/governance_tests.ts index a49df9a9615..40ba1c648cf 100644 --- a/packages/celotool/src/e2e-tests/governance_tests.ts +++ b/packages/celotool/src/e2e-tests/governance_tests.ts @@ -174,9 +174,6 @@ describe('governance tests', () => { await sleep(epoch) }) - // Note that this returns the validator set at the END of `blockNumber`, i.e. the validator set - // that will validate the next block, and NOT necessarily the validator set that validated this - // block. const getValidatorSetAtBlock = async (blockNumber: number) => { const validatorSetSize = await election.methods .numberValidatorsInCurrentSet() @@ -212,9 +209,7 @@ describe('governance tests', () => { it('should only have created blocks whose miner was in the current validator set', async () => { for (const blockNumber of blockNumbers) { - // The validators responsible for creating `blockNumber` were those in the validator set at - // `blockNumber-1`. - const validatorSet = await getValidatorSetAtBlock(blockNumber - 1) + const validatorSet = await getValidatorSetAtBlock(blockNumber) const block = await web3.eth.getBlock(blockNumber) assert.include(validatorSet.map((x) => x.toLowerCase()), block.miner.toLowerCase()) } @@ -257,7 +252,7 @@ describe('governance tests', () => { let expectUnchangedScores: string[] let expectChangedScores: string[] if (isLastBlockOfEpoch(blockNumber, epoch)) { - expectChangedScores = await getValidatorSetAtBlock(blockNumber - 1) + expectChangedScores = await getValidatorSetAtBlock(blockNumber) expectUnchangedScores = allValidators.filter((x) => !expectChangedScores.includes(x)) } else { expectUnchangedScores = allValidators @@ -314,7 +309,7 @@ describe('governance tests', () => { let expectUnchangedBalances: string[] let expectChangedBalances: string[] if (isLastBlockOfEpoch(blockNumber, epoch)) { - expectChangedBalances = await getValidatorSetAtBlock(blockNumber - 1) + expectChangedBalances = await getValidatorSetAtBlock(blockNumber) expectUnchangedBalances = allValidators.filter((x) => !expectChangedBalances.includes(x)) } else { expectUnchangedBalances = allValidators From a105771b2181e6f285aef331049cf45d59ee2267 Mon Sep 17 00:00:00 2001 From: Asa Oines Date: Thu, 24 Oct 2019 17:43:57 -0700 Subject: [PATCH 2/2] Fix tests --- packages/celotool/src/e2e-tests/governance_tests.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/celotool/src/e2e-tests/governance_tests.ts b/packages/celotool/src/e2e-tests/governance_tests.ts index 40ba1c648cf..b026ba5ff24 100644 --- a/packages/celotool/src/e2e-tests/governance_tests.ts +++ b/packages/celotool/src/e2e-tests/governance_tests.ts @@ -187,9 +187,14 @@ describe('governance tests', () => { return validatorSet } + const getLastEpochBlock = (blockNumber: number) => { + const epochNumber = Math.floor((blockNumber - 1) / epoch) + return epochNumber * epoch + } + it('should always return a validator set size equal to the number of group members at the end of the last epoch', async () => { for (const blockNumber of blockNumbers) { - const lastEpochBlock = blockNumber - (blockNumber % epoch) + const lastEpochBlock = getLastEpochBlock(blockNumber) const validatorSetSize = await election.methods .numberValidatorsInCurrentSet() .call({}, blockNumber) @@ -200,7 +205,7 @@ describe('governance tests', () => { it('should always return a validator set equal to the group members at the end of the last epoch', async () => { for (const blockNumber of blockNumbers) { - const lastEpochBlock = blockNumber - (blockNumber % epoch) + const lastEpochBlock = getLastEpochBlock(blockNumber) const groupMembership = await getValidatorGroupMembers(lastEpochBlock) const validatorSet = await getValidatorSetAtBlock(blockNumber) assert.sameMembers(groupMembership, validatorSet)