mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-09 22:06:21 +00:00
3743df6434
This commit introduces `unittest2`, driven by the need to fix several long-standing issues with `unittest`, in particular exception handling, test isolation, timing and others. Upgrading to `unittest2` generally requires updating the unittest import and potentially fixing the code to support the new `one-proc-per-test` setup. * nim-unittest2 has been moved from Stefans repository to status-im - https://github.com/status-im/nim-unittest2/pull/2 fixes some exception handling issues and brings it in line with latest nim devel - a notable difference to unittest is that each test is run inside a proc which gives it a fresh stack and removes a lot of globals, meaning tests should run under conditions more similar to "normal" code and interfere with each other less - this is a crucial first step to improving the testing experience in general, that stefan implemented for the multithreading support * the multithreading in unittest2 is optional, and disabled by default * nim-testutils contains utilities for fuzzing, as well as other "large:ish" features that have dependencies - https://github.com/status-im/nim-testutils/pull/27 pulls in unittest2 so unittest2 can be kept "low-dependency" * nim-chronos needs the above unittest changes to test its own new, stricter exception handling - https://github.com/status-im/nim-chronos/pull/166 - the strictess introduced is expected to increase with time