From eeb4fc20c578b1e428a92d64cc9f8f903a677580 Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Wed, 2 Mar 2022 20:04:12 -0500 Subject: test: Use Set/UnsetGlobals in BasicTestingSetup ...instead of calling initialization functions directly and having to keep around a ECCVerifyHandle member variable. This makes the initialization codepath of our tests more closely resemble those of AppInitMain and potentially eases the review of subsequent commit removing init::{Set,Unset}Globals. [META] In a future commit, we will introduce a kernel::Context which calls init::{Set,Unset}Globals in its ctor and dtor. It will be owned by node::NodeContext, so in the end, this patchset won't have made the previously local ECCVerifyHandle global. --- src/test/util/setup_common.cpp | 6 +++--- src/test/util/setup_common.h | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src/test') diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp index b7566bd1fa..7b70ace759 100644 --- a/src/test/util/setup_common.cpp +++ b/src/test/util/setup_common.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -125,8 +126,7 @@ BasicTestingSetup::BasicTestingSetup(const std::string& chainName, const std::ve InitLogging(*m_node.args); AppInitParameterInteraction(*m_node.args); LogInstance().StartLogging(); - SHA256AutoDetect(); - ECC_Start(); + init::SetGlobals(); SetupEnvironment(); SetupNetworking(); InitSignatureCache(); @@ -146,7 +146,7 @@ BasicTestingSetup::~BasicTestingSetup() LogInstance().DisconnectTestLogger(); fs::remove_all(m_path_root); gArgs.ClearArgs(); - ECC_Stop(); + init::UnsetGlobals(); } ChainTestingSetup::ChainTestingSetup(const std::string& chainName, const std::vector& extra_args) diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h index a1b7525cf4..3030271827 100644 --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -81,7 +81,6 @@ static constexpr CAmount CENT{1000000}; * This just configures logging, data dir and chain parameters. */ struct BasicTestingSetup { - ECCVerifyHandle globalVerifyHandle; node::NodeContext m_node; explicit BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN, const std::vector& extra_args = {}); -- cgit v1.2.3 From fed085a1a4cd2787202752b6a0d98e42dce97f09 Mon Sep 17 00:00:00 2001 From: Carl Dong Date: Wed, 25 May 2022 14:31:54 -0400 Subject: init: Initialize globals with kernel::Context's life ...instead of explicitly calling init::{Set,Unset}Globals. Cool thing about this is that in both the testing and bitcoin-chainstate codepaths, we no longer need to explicitly unset globals. The kernel::Context goes out of scope and the globals are unset "automatically". Also construct kernel::Context outside of AppInitSanityChecks() --- src/test/util/setup_common.cpp | 3 +-- src/test/util/setup_common.h | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'src/test') diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp index 7b70ace759..61af5d4418 100644 --- a/src/test/util/setup_common.cpp +++ b/src/test/util/setup_common.cpp @@ -126,7 +126,7 @@ BasicTestingSetup::BasicTestingSetup(const std::string& chainName, const std::ve InitLogging(*m_node.args); AppInitParameterInteraction(*m_node.args); LogInstance().StartLogging(); - init::SetGlobals(); + m_node.kernel = std::make_unique(); SetupEnvironment(); SetupNetworking(); InitSignatureCache(); @@ -146,7 +146,6 @@ BasicTestingSetup::~BasicTestingSetup() LogInstance().DisconnectTestLogger(); fs::remove_all(m_path_root); gArgs.ClearArgs(); - init::UnsetGlobals(); } ChainTestingSetup::ChainTestingSetup(const std::string& chainName, const std::vector& extra_args) diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h index 3030271827..5c31cfc22b 100644 --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -81,7 +81,7 @@ static constexpr CAmount CENT{1000000}; * This just configures logging, data dir and chain parameters. */ struct BasicTestingSetup { - node::NodeContext m_node; + node::NodeContext m_node; // keep as first member to be destructed last explicit BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN, const std::vector& extra_args = {}); ~BasicTestingSetup(); -- cgit v1.2.3