nimbus-eth2/tests/all_tests.nim
Jacek Sieka 61538fa581 speed up shuffling
Replace shuffling function with zrnt version - `get_shuffled_seq` in
particular puts more strain on the GC by allocating superfluous seq's
which turns out to have a significant impact on block processing (when
replaying blocks for example) - 4x improvement on non-epoch, 1.5x on
epoch blocks (replay is done without signature checking)

Medalla, first 10k slots - pre:

```
Loaded 68973 blocks, head slot 117077
All time are ms
Average,       StdDev,          Min,          Max,      Samples,
Test
Validation is turned off meaning that no BLS operations are performed
76855.848,        0.000,    76855.848,    76855.848,            1,
Initialize DB
1.073,        0.914,        0.071,       12.454,         7831,
Load block from database
31.382,        0.000,       31.382,       31.382,            1,
Load state from database
85.644,       30.350,        3.056,      466.136,         7519,
Apply block
506.569,       91.129,      130.654,      874.786,          312,
Apply epoch block
```

post:

```
Loaded 68973 blocks, head slot 117077
All time are ms
Average,       StdDev,          Min,          Max,      Samples,
Test
Validation is turned off meaning that no BLS operations are performed
72457.303,        0.000,    72457.303,    72457.303,            1,
Initialize DB
1.015,        0.858,        0.070,       11.231,         7831,
Load block from database
28.983,        0.000,       28.983,       28.983,            1,
Load state from database
21.725,       17.461,        2.659,      393.217,         7519,
Apply block
324.012,       33.954,       45.452,      440.532,          312,
Apply epoch block
```
2020-08-21 16:05:10 +03:00

48 lines
1.5 KiB
Nim

# beacon_chain
# Copyright (c) 2018 Status Research & Development GmbH
# Licensed and distributed under either of
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
# at your option. This file may not be copied, modified, or distributed except according to those terms.
import ./testutil
import # Official constants
./official/test_fixture_const_sanity_check
import # Unit test
./test_attestation_pool,
./test_beacon_chain_db,
./test_beacon_node,
./test_beaconstate,
./test_bitseqs,
./test_block_pool,
./test_datatypes,
./test_helpers,
./test_keystore,
./test_mocking,
./test_mainchain_monitor,
./test_ssz,
./test_state_transition,
./test_sync_protocol,
./test_zero_signature,
./test_peer_pool,
./test_sync_manager,
./test_honest_validator,
./test_interop,
./fork_choice/tests_fork_choice
import # Refactor state transition unit tests
# In mainnet these take 2 minutes and are empty TODOs
./spec_block_processing/test_process_deposits,
./spec_block_processing/test_process_attestation,
./spec_epoch_processing/test_process_justification_and_finalization
# TODO: json tests were removed
# import # Official fixtures that don't require SSZ parsing of invalid BLS signatures
# # https://github.com/status-im/nim-beacon-chain/issues/374
# ./official/test_fixture_bls
summarizeLongTests("AllTests")