introduce unittest2 (#2437)

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
This commit is contained in:
Jacek Sieka 2021-03-22 08:21:22 +01:00 committed by GitHub
parent baa43ae7f7
commit 3743df6434
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 1 deletions

5
.gitmodules vendored
View File

@ -203,3 +203,8 @@
url = https://github.com/status-im/nimbus-benchmarking.git
ignore = untracked
branch = master
[submodule "vendor/nim-unittest2"]
path = vendor/nim-unittest2
url = https://github.com/status-im/nim-unittest2.git
ignore = untracked
branch = master

@ -1 +1 @@
Subproject commit cc5d6e46123e0cf5dfd14f5fc32f0d6f58a20645
Subproject commit 0f890d4a667fcb2dcafd7243a079e5af2874db1d

1
vendor/nim-unittest2 vendored Submodule

@ -0,0 +1 @@
Subproject commit 93674cbdbd3ce59e2d4d0cbdfac9ab62d9a6d28f