mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 02:25:40 +01:00
Merge #16294: qt: test: Create at most one testing setup
faa1e0fb17
qt: test: Create at most one testing setup (MarcoFalke) Pull request description: It is assumed that ideally only one BasicTestingSetup exists at any point in time for each process (due to use of globals). This assumption is violated in the GUI tests, as a testing setup is created as the first step of the `main` function and then (sometimes) another one for the following test cases. So, the gui tests create two testing setups: * `BasicTestingSetup` in `main` (added infa4a04a5a9
) * a testing setup for individual test cases Avoid that by destructing the testing setup in main after creation and then move the explicit `ECC_Stop` to the only places where it is needed (before and after `apptests`). ACKs for top commit: laanwj: code review ACKfaa1e0fb17
Tree-SHA512: b8edceb7e2a8749e1de3ea80bc20b6fb7d4390bf366bb9817206ada3dc8669a91416f4803c22a0e6c636c514e0c858dcfe04523221f8851b10deaf472f107d82
This commit is contained in:
commit
38fbb575e2
@ -11,6 +11,8 @@
|
||||
#include <qt/networkstyle.h>
|
||||
#include <qt/rpcconsole.h>
|
||||
#include <shutdown.h>
|
||||
#include <test/setup_common.h>
|
||||
#include <univalue.h>
|
||||
#include <validation.h>
|
||||
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
@ -26,8 +28,6 @@
|
||||
#include <QtGlobal>
|
||||
#include <QtTest/QtTestWidgets>
|
||||
#include <QtTest/QtTestGui>
|
||||
#include <string>
|
||||
#include <univalue.h>
|
||||
|
||||
namespace {
|
||||
//! Call getblockchaininfo RPC and check first field of JSON output.
|
||||
@ -62,6 +62,7 @@ void AppTests::appTests()
|
||||
}
|
||||
#endif
|
||||
|
||||
BasicTestingSetup test{CBaseChainParams::REGTEST}; // Create a temp data directory to backup the gui settings to
|
||||
ECC_Stop(); // Already started by the common test setup, so stop it to avoid interference
|
||||
LogInstance().DisconnectTestLogger();
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
#include <random.h>
|
||||
#include <script/script.h>
|
||||
#include <script/standard.h>
|
||||
#include <util/system.h>
|
||||
#include <test/setup_common.h>
|
||||
#include <util/strencodings.h>
|
||||
|
||||
#include <openssl/x509.h>
|
||||
@ -66,7 +66,7 @@ static SendCoinsRecipient handleRequest(PaymentServer* server, std::vector<unsig
|
||||
|
||||
void PaymentServerTests::paymentServerTests()
|
||||
{
|
||||
SelectParams(CBaseChainParams::MAIN);
|
||||
BasicTestingSetup testing_setup(CBaseChainParams::MAIN);
|
||||
auto node = interfaces::MakeNode();
|
||||
OptionsModel optionsModel(*node);
|
||||
PaymentServer* server = new PaymentServer(nullptr, false);
|
||||
|
@ -34,9 +34,6 @@ void RPCNestedTests::rpcNestedTests()
|
||||
tableRPC.appendCommand("rpcNestedTest", &vRPCCommands[0]);
|
||||
//mempool.setSanityCheck(1.0);
|
||||
|
||||
ECC_Stop(); // Already started by the common test setup, so stop it to avoid interference
|
||||
LogInstance().DisconnectTestLogger();
|
||||
|
||||
TestingSetup test;
|
||||
|
||||
if (RPCIsInWarmup(nullptr)) SetRPCWarmupFinished();
|
||||
|
@ -42,12 +42,18 @@ Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern void noui_connect();
|
||||
|
||||
// This is all you need to run all the tests
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
BasicTestingSetup test{CBaseChainParams::REGTEST};
|
||||
// Initialize persistent globals with the testing setup state for sanity.
|
||||
// E.g. -datadir in gArgs is set to a temp directory dummy value (instead
|
||||
// of defaulting to the default datadir), or globalChainParams is set to
|
||||
// regtest params.
|
||||
//
|
||||
// All tests must use their own testing setup (if needed).
|
||||
{
|
||||
BasicTestingSetup dummy{CBaseChainParams::REGTEST};
|
||||
}
|
||||
|
||||
auto node = interfaces::MakeNode();
|
||||
|
||||
|
@ -73,7 +73,6 @@ TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(cha
|
||||
const CChainParams& chainparams = Params();
|
||||
// Ideally we'd move all the RPC tests to the functional testing framework
|
||||
// instead of unit tests, but for now we need these here.
|
||||
|
||||
RegisterAllCoreRPCCommands(tableRPC);
|
||||
|
||||
// We have to run a scheduler thread to prevent ActivateBestChain
|
||||
|
Loading…
Reference in New Issue
Block a user