Browse Source

Merge pull request #5950

3a3ecc0 Initialization: setup environment before starting QT tests (dexX7)
fc3979a Initialization: setup environment before starting tests (dexX7)
ba0fa0d Initialization: set fallback locale as environment variable (dexX7)
0.13
Wladimir J. van der Laan 10 years ago
parent
commit
41113e33ad
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 2
      src/qt/test/test_main.cpp
  2. 1
      src/test/test_bitcoin.cpp
  3. 7
      src/util.cpp

2
src/qt/test/test_main.cpp

@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
#include "config/bitcoin-config.h"
#endif
#include "util.h"
#include "uritests.h"
#ifdef ENABLE_WALLET
@ -27,6 +28,7 @@ Q_IMPORT_PLUGIN(qkrcodecs) @@ -27,6 +28,7 @@ Q_IMPORT_PLUGIN(qkrcodecs)
// This is all you need to run all the tests
int main(int argc, char *argv[])
{
SetupEnvironment();
bool fInvalid = false;
// Don't remove this, it's needed to access

1
src/test/test_bitcoin.cpp

@ -28,6 +28,7 @@ extern void noui_connect(); @@ -28,6 +28,7 @@ extern void noui_connect();
BasicTestingSetup::BasicTestingSetup()
{
SetupEnvironment();
fPrintToDebugLog = false; // don't want to write to debug.log file
SelectParams(CBaseChainParams::MAIN);
}

7
src/util.cpp

@ -723,18 +723,19 @@ void RenameThread(const char* name) @@ -723,18 +723,19 @@ void RenameThread(const char* name)
void SetupEnvironment()
{
std::locale loc("C");
// On most POSIX systems (e.g. Linux, but not BSD) the environment's locale
// may be invalid, in which case the "C" locale is used as fallback.
#if !defined(WIN32) && !defined(MAC_OSX) && !defined(__FreeBSD__) && !defined(__OpenBSD__)
try {
std::locale(""); // Raises a runtime error if current locale is invalid
loc = std::locale(""); // Raises a runtime error if current locale is invalid
} catch (const std::runtime_error&) {
std::locale::global(std::locale("C"));
setenv("LC_ALL", "C", 1);
}
#endif
// The path locale is lazy initialized and to avoid deinitialization errors
// in multithreading environments, it is set explicitly by the main thread.
boost::filesystem::path::imbue(std::locale());
boost::filesystem::path::imbue(loc);
}
void SetThreadPriority(int nPriority)

Loading…
Cancel
Save