Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow usage of mocha --grep in spec tests #4310

Merged
merged 2 commits into from Jul 17, 2022
Merged

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Jul 17, 2022

Motivation

To run only a single spec test, current setup requires usage of mocha --grep <test_name>.

However each fork has duplicated tests names, so if you single by full test name it will run the same test for phase0, altair and bellatrix.

Description

By making the it() name the full test path now you can have full control to single out

Single test on altair

yarn test:spec-minimal --grep "minimal/altair/fork_choice/on_block/pyspec_tests/proposer_boost"

Single test on all forks

yarn test:spec-minimal --grep "fork_choice/on_block/pyspec_tests/proposer_boost"

All fork_choice tests on altair

yarn test:spec-minimal --grep "minimal/altair/fork_choice"

@dapplion dapplion requested a review from a team as a code owner July 17, 2022 08:48
@github-actions
Copy link
Contributor

github-actions bot commented Jul 17, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 77d315a Previous: 13558b5 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.1206 ms/op 2.5192 ms/op 0.84
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 65.319 us/op 86.735 us/op 0.75
BLS verify - blst-native 2.1647 ms/op 2.1842 ms/op 0.99
BLS verifyMultipleSignatures 3 - blst-native 4.4684 ms/op 4.4466 ms/op 1.00
BLS verifyMultipleSignatures 8 - blst-native 9.6618 ms/op 9.6741 ms/op 1.00
BLS verifyMultipleSignatures 32 - blst-native 35.147 ms/op 35.252 ms/op 1.00
BLS aggregatePubkeys 32 - blst-native 46.991 us/op 45.754 us/op 1.03
BLS aggregatePubkeys 128 - blst-native 182.74 us/op 179.26 us/op 1.02
getAttestationsForBlock 43.075 ms/op 53.465 ms/op 0.81
isKnown best case - 1 super set check 473.00 ns/op 502.00 ns/op 0.94
isKnown normal case - 2 super set checks 463.00 ns/op 481.00 ns/op 0.96
isKnown worse case - 16 super set checks 466.00 ns/op 488.00 ns/op 0.95
CheckpointStateCache - add get delete 11.484 us/op 13.418 us/op 0.86
validate gossip signedAggregateAndProof - struct 5.0097 ms/op 5.0240 ms/op 1.00
validate gossip attestation - struct 2.3624 ms/op 2.4060 ms/op 0.98
altair verifyImport mainnet_s3766816:31 12.828 s/op 14.676 s/op 0.87
pickEth1Vote - no votes 2.0969 ms/op 2.4823 ms/op 0.84
pickEth1Vote - max votes 23.637 ms/op 29.271 ms/op 0.81
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.486 ms/op 13.841 ms/op 0.97
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.276 ms/op 25.872 ms/op 0.86
pickEth1Vote - Eth1Data fastSerialize value x2048 1.5777 ms/op 1.8680 ms/op 0.84
pickEth1Vote - Eth1Data fastSerialize tree x2048 16.931 ms/op 20.876 ms/op 0.81
bytes32 toHexString 1.0500 us/op 1.3330 us/op 0.79
bytes32 Buffer.toString(hex) 797.00 ns/op 841.00 ns/op 0.95
bytes32 Buffer.toString(hex) from Uint8Array 995.00 ns/op 1.1460 us/op 0.87
bytes32 Buffer.toString(hex) + 0x 806.00 ns/op 875.00 ns/op 0.92
Object access 1 prop 0.38600 ns/op 0.45300 ns/op 0.85
Map access 1 prop 0.30200 ns/op 0.33300 ns/op 0.91
Object get x1000 11.417 ns/op 20.340 ns/op 0.56
Map get x1000 0.93600 ns/op 1.1820 ns/op 0.79
Object set x1000 79.885 ns/op 143.12 ns/op 0.56
Map set x1000 53.094 ns/op 85.752 ns/op 0.62
Return object 10000 times 0.44020 ns/op 0.43550 ns/op 1.01
Throw Error 10000 times 6.1428 us/op 6.8360 us/op 0.90
enrSubnets - fastDeserialize 64 bits 2.8820 us/op 3.2300 us/op 0.89
enrSubnets - ssz BitVector 64 bits 871.00 ns/op 877.00 ns/op 0.99
enrSubnets - fastDeserialize 4 bits 424.00 ns/op 482.00 ns/op 0.88
enrSubnets - ssz BitVector 4 bits 838.00 ns/op 889.00 ns/op 0.94
prioritizePeers score -10:0 att 32-0.1 sync 2-0 89.948 us/op 122.02 us/op 0.74
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 115.79 us/op 140.74 us/op 0.82
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 216.42 us/op 258.35 us/op 0.84
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 415.60 us/op 540.60 us/op 0.77
prioritizePeers score 0:0 att 64-1 sync 4-1 407.44 us/op 540.49 us/op 0.75
RateTracker 1000000 limit, 1 obj count per request 196.28 ns/op 237.35 ns/op 0.83
RateTracker 1000000 limit, 2 obj count per request 143.02 ns/op 181.88 ns/op 0.79
RateTracker 1000000 limit, 4 obj count per request 116.62 ns/op 155.57 ns/op 0.75
RateTracker 1000000 limit, 8 obj count per request 103.65 ns/op 140.08 ns/op 0.74
RateTracker with prune 4.1660 us/op 5.2110 us/op 0.80
array of 16000 items push then shift 51.584 us/op 3.6984 us/op 13.95
LinkedList of 16000 items push then shift 15.869 ns/op 28.732 ns/op 0.55
array of 16000 items push then pop 219.65 ns/op 273.95 ns/op 0.80
LinkedList of 16000 items push then pop 14.521 ns/op 24.054 ns/op 0.60
array of 24000 items push then shift 77.340 us/op 5.3069 us/op 14.57
LinkedList of 24000 items push then shift 21.044 ns/op 29.419 ns/op 0.72
array of 24000 items push then pop 189.96 ns/op 231.51 ns/op 0.82
LinkedList of 24000 items push then pop 15.908 ns/op 24.414 ns/op 0.65
intersect bitArray bitLen 8 10.842 ns/op 14.017 ns/op 0.77
intersect array and set length 8 142.23 ns/op 202.44 ns/op 0.70
intersect bitArray bitLen 128 55.560 ns/op 73.111 ns/op 0.76
intersect array and set length 128 1.8737 us/op 2.6892 us/op 0.70
pass gossip attestations to forkchoice per slot 2.9020 ms/op 3.7357 ms/op 0.78
computeDeltas 3.5543 ms/op 3.8411 ms/op 0.93
computeProposerBoostScoreFromBalances 805.95 us/op 1.0761 ms/op 0.75
altair processAttestation - 250000 vs - 7PWei normalcase 3.6272 ms/op 4.9285 ms/op 0.74
altair processAttestation - 250000 vs - 7PWei worstcase 5.4962 ms/op 7.1035 ms/op 0.77
altair processAttestation - setStatus - 1/6 committees join 177.84 us/op 241.77 us/op 0.74
altair processAttestation - setStatus - 1/3 committees join 349.33 us/op 462.06 us/op 0.76
altair processAttestation - setStatus - 1/2 committees join 495.18 us/op 637.07 us/op 0.78
altair processAttestation - setStatus - 2/3 committees join 642.17 us/op 829.26 us/op 0.77
altair processAttestation - setStatus - 4/5 committees join 906.44 us/op 1.1582 ms/op 0.78
altair processAttestation - setStatus - 100% committees join 1.0970 ms/op 1.3635 ms/op 0.80
altair processBlock - 250000 vs - 7PWei normalcase 25.196 ms/op 33.023 ms/op 0.76
altair processBlock - 250000 vs - 7PWei normalcase hashState 36.418 ms/op 41.057 ms/op 0.89
altair processBlock - 250000 vs - 7PWei worstcase 82.635 ms/op 102.64 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase hashState 107.66 ms/op 113.32 ms/op 0.95
phase0 processBlock - 250000 vs - 7PWei normalcase 4.3453 ms/op 5.2650 ms/op 0.83
phase0 processBlock - 250000 vs - 7PWei worstcase 53.122 ms/op 56.006 ms/op 0.95
altair processEth1Data - 250000 vs - 7PWei normalcase 785.00 us/op 1.1266 ms/op 0.70
Tree 40 250000 create 756.58 ms/op 906.16 ms/op 0.83
Tree 40 250000 get(125000) 231.59 ns/op 342.43 ns/op 0.68
Tree 40 250000 set(125000) 2.2350 us/op 3.0463 us/op 0.73
Tree 40 250000 toArray() 28.037 ms/op 37.525 ms/op 0.75
Tree 40 250000 iterate all - toArray() + loop 28.035 ms/op 37.494 ms/op 0.75
Tree 40 250000 iterate all - get(i) 115.50 ms/op 133.21 ms/op 0.87
MutableVector 250000 create 13.854 ms/op 18.688 ms/op 0.74
MutableVector 250000 get(125000) 10.635 ns/op 17.930 ns/op 0.59
MutableVector 250000 set(125000) 554.30 ns/op 585.42 ns/op 0.95
MutableVector 250000 toArray() 6.2090 ms/op 7.6540 ms/op 0.81
MutableVector 250000 iterate all - toArray() + loop 6.4128 ms/op 7.8111 ms/op 0.82
MutableVector 250000 iterate all - get(i) 2.7066 ms/op 4.0149 ms/op 0.67
Array 250000 create 6.2739 ms/op 7.0599 ms/op 0.89
Array 250000 clone - spread 3.3945 ms/op 2.8794 ms/op 1.18
Array 250000 get(125000) 1.5190 ns/op 1.3170 ns/op 1.15
Array 250000 set(125000) 1.5930 ns/op 1.3010 ns/op 1.22
Array 250000 iterate all - loop 153.59 us/op 193.04 us/op 0.80
effectiveBalanceIncrements clone Uint8Array 300000 61.436 us/op 80.962 us/op 0.76
effectiveBalanceIncrements clone MutableVector 300000 1.1080 us/op 855.00 ns/op 1.30
effectiveBalanceIncrements rw all Uint8Array 300000 247.46 us/op 294.55 us/op 0.84
effectiveBalanceIncrements rw all MutableVector 300000 178.30 ms/op 186.71 ms/op 0.95
phase0 afterProcessEpoch - 250000 vs - 7PWei 189.97 ms/op 210.53 ms/op 0.90
phase0 beforeProcessEpoch - 250000 vs - 7PWei 51.686 ms/op 77.949 ms/op 0.66
altair processEpoch - mainnet_e81889 545.11 ms/op 667.38 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 120.09 ms/op 168.82 ms/op 0.71
mainnet_e81889 - altair processJustificationAndFinalization 17.124 us/op 33.722 us/op 0.51
mainnet_e81889 - altair processInactivityUpdates 8.8413 ms/op 12.697 ms/op 0.70
mainnet_e81889 - altair processRewardsAndPenalties 120.16 ms/op 107.86 ms/op 1.11
mainnet_e81889 - altair processRegistryUpdates 3.0520 us/op 7.1000 us/op 0.43
mainnet_e81889 - altair processSlashings 663.00 ns/op 2.3340 us/op 0.28
mainnet_e81889 - altair processEth1DataReset 732.00 ns/op 2.0340 us/op 0.36
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.2493 ms/op 2.6931 ms/op 0.84
mainnet_e81889 - altair processSlashingsReset 4.9400 us/op 10.638 us/op 0.46
mainnet_e81889 - altair processRandaoMixesReset 5.1650 us/op 11.953 us/op 0.43
mainnet_e81889 - altair processHistoricalRootsUpdate 638.00 ns/op 1.9330 us/op 0.33
mainnet_e81889 - altair processParticipationFlagUpdates 8.0920 us/op 6.4940 us/op 1.25
mainnet_e81889 - altair processSyncCommitteeUpdates 2.4310 us/op 1.7130 us/op 1.42
mainnet_e81889 - altair afterProcessEpoch 220.80 ms/op 225.42 ms/op 0.98
phase0 processEpoch - mainnet_e58758 538.00 ms/op 611.91 ms/op 0.88
mainnet_e58758 - phase0 beforeProcessEpoch 185.21 ms/op 257.42 ms/op 0.72
mainnet_e58758 - phase0 processJustificationAndFinalization 18.068 us/op 32.502 us/op 0.56
mainnet_e58758 - phase0 processRewardsAndPenalties 103.98 ms/op 99.155 ms/op 1.05
mainnet_e58758 - phase0 processRegistryUpdates 8.1730 us/op 16.185 us/op 0.50
mainnet_e58758 - phase0 processSlashings 583.00 ns/op 1.8440 us/op 0.32
mainnet_e58758 - phase0 processEth1DataReset 584.00 ns/op 1.9840 us/op 0.29
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.1076 ms/op 2.3770 ms/op 0.89
mainnet_e58758 - phase0 processSlashingsReset 4.1550 us/op 10.247 us/op 0.41
mainnet_e58758 - phase0 processRandaoMixesReset 3.8360 us/op 12.506 us/op 0.31
mainnet_e58758 - phase0 processHistoricalRootsUpdate 618.00 ns/op 2.3180 us/op 0.27
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.4660 us/op 11.231 us/op 0.31
mainnet_e58758 - phase0 afterProcessEpoch 164.74 ms/op 190.04 ms/op 0.87
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.2270 ms/op 3.0534 ms/op 0.73
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.4864 ms/op 3.6346 ms/op 0.68
altair processInactivityUpdates - 250000 normalcase 42.249 ms/op 55.347 ms/op 0.76
altair processInactivityUpdates - 250000 worstcase 33.722 ms/op 48.359 ms/op 0.70
phase0 processRegistryUpdates - 250000 normalcase 7.2990 us/op 14.053 us/op 0.52
phase0 processRegistryUpdates - 250000 badcase_full_deposits 367.93 us/op 554.50 us/op 0.66
phase0 processRegistryUpdates - 250000 worstcase 0.5 199.86 ms/op 274.30 ms/op 0.73
altair processRewardsAndPenalties - 250000 normalcase 107.54 ms/op 142.91 ms/op 0.75
altair processRewardsAndPenalties - 250000 worstcase 77.070 ms/op 100.66 ms/op 0.77
phase0 getAttestationDeltas - 250000 normalcase 13.449 ms/op 15.927 ms/op 0.84
phase0 getAttestationDeltas - 250000 worstcase 13.909 ms/op 15.588 ms/op 0.89
phase0 processSlashings - 250000 worstcase 6.2622 ms/op 6.3952 ms/op 0.98
altair processSyncCommitteeUpdates - 250000 303.95 ms/op 332.01 ms/op 0.92
BeaconState.hashTreeRoot - No change 775.00 ns/op 554.00 ns/op 1.40
BeaconState.hashTreeRoot - 1 full validator 65.801 us/op 64.361 us/op 1.02
BeaconState.hashTreeRoot - 32 full validator 670.08 us/op 666.39 us/op 1.01
BeaconState.hashTreeRoot - 512 full validator 7.1354 ms/op 7.3774 ms/op 0.97
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 86.049 us/op 83.339 us/op 1.03
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2322 ms/op 1.1114 ms/op 1.11
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 14.919 ms/op 16.020 ms/op 0.93
BeaconState.hashTreeRoot - 1 balances 63.963 us/op 62.361 us/op 1.03
BeaconState.hashTreeRoot - 32 balances 556.35 us/op 543.07 us/op 1.02
BeaconState.hashTreeRoot - 512 balances 5.3169 ms/op 5.4793 ms/op 0.97
BeaconState.hashTreeRoot - 250000 balances 104.03 ms/op 118.17 ms/op 0.88
aggregationBits - 2048 els - zipIndexesInBitList 27.621 us/op 32.071 us/op 0.86
regular array get 100000 times 61.435 us/op 78.777 us/op 0.78
wrappedArray get 100000 times 62.004 us/op 78.649 us/op 0.79
arrayWithProxy get 100000 times 28.852 ms/op 33.536 ms/op 0.86
ssz.Root.equals 486.00 ns/op 565.00 ns/op 0.86
byteArrayEquals 485.00 ns/op 561.00 ns/op 0.86
shuffle list - 16384 els 11.397 ms/op 12.682 ms/op 0.90
shuffle list - 250000 els 170.34 ms/op 189.02 ms/op 0.90
processSlot - 1 slots 13.470 us/op 13.564 us/op 0.99
processSlot - 32 slots 1.9507 ms/op 2.0164 ms/op 0.97
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 831.38 us/op 585.74 us/op 1.42
getCommitteeAssignments - req 1 vs - 250000 vc 5.3955 ms/op 6.1697 ms/op 0.87
getCommitteeAssignments - req 100 vs - 250000 vc 7.8261 ms/op 8.5948 ms/op 0.91
getCommitteeAssignments - req 1000 vs - 250000 vc 8.5137 ms/op 9.1501 ms/op 0.93
computeProposers - vc 250000 17.791 ms/op 21.381 ms/op 0.83
computeEpochShuffling - vc 250000 188.12 ms/op 194.47 ms/op 0.97
getNextSyncCommittee - vc 250000 298.25 ms/op 314.37 ms/op 0.95

by benchmarkbot/action

@dapplion dapplion merged commit 9b26250 into unstable Jul 17, 2022
@dapplion dapplion deleted the dapplion/mocha-grep branch July 17, 2022 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants