mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-27 03:33:27 -03:00
test: Create data dir in BasicTestingSetup
This commit is contained in:
parent
b1344eac5f
commit
fad3d2a624
11 changed files with 28 additions and 42 deletions
|
@ -267,8 +267,6 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, TestChain100Setup)
|
||||||
|
|
||||||
BOOST_FIXTURE_TEST_CASE(blockfilter_index_init_destroy, BasicTestingSetup)
|
BOOST_FIXTURE_TEST_CASE(blockfilter_index_init_destroy, BasicTestingSetup)
|
||||||
{
|
{
|
||||||
SetDataDir("tempdir");
|
|
||||||
|
|
||||||
BlockFilterIndex* filter_index;
|
BlockFilterIndex* filter_index;
|
||||||
|
|
||||||
filter_index = GetBlockFilterIndex(BlockFilterType::BASIC);
|
filter_index = GetBlockFilterIndex(BlockFilterType::BASIC);
|
||||||
|
|
|
@ -27,7 +27,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper)
|
||||||
{
|
{
|
||||||
// Perform tests both obfuscated and non-obfuscated.
|
// Perform tests both obfuscated and non-obfuscated.
|
||||||
for (const bool obfuscate : {false, true}) {
|
for (const bool obfuscate : {false, true}) {
|
||||||
fs::path ph = SetDataDir(std::string("dbwrapper").append(obfuscate ? "_true" : "_false"));
|
fs::path ph = GetDataDir() / (obfuscate ? "dbwrapper_obfuscate_true" : "dbwrapper_obfuscate_false");
|
||||||
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
||||||
char key = 'k';
|
char key = 'k';
|
||||||
uint256 in = InsecureRand256();
|
uint256 in = InsecureRand256();
|
||||||
|
@ -47,7 +47,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper_batch)
|
||||||
{
|
{
|
||||||
// Perform tests both obfuscated and non-obfuscated.
|
// Perform tests both obfuscated and non-obfuscated.
|
||||||
for (const bool obfuscate : {false, true}) {
|
for (const bool obfuscate : {false, true}) {
|
||||||
fs::path ph = SetDataDir(std::string("dbwrapper_batch").append(obfuscate ? "_true" : "_false"));
|
fs::path ph = GetDataDir() / (obfuscate ? "dbwrapper_batch_obfuscate_true" : "dbwrapper_batch_obfuscate_false");
|
||||||
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
||||||
|
|
||||||
char key = 'i';
|
char key = 'i';
|
||||||
|
@ -83,7 +83,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper_iterator)
|
||||||
{
|
{
|
||||||
// Perform tests both obfuscated and non-obfuscated.
|
// Perform tests both obfuscated and non-obfuscated.
|
||||||
for (const bool obfuscate : {false, true}) {
|
for (const bool obfuscate : {false, true}) {
|
||||||
fs::path ph = SetDataDir(std::string("dbwrapper_iterator").append(obfuscate ? "_true" : "_false"));
|
fs::path ph = GetDataDir() / (obfuscate ? "dbwrapper_iterator_obfuscate_true" : "dbwrapper_iterator_obfuscate_false");
|
||||||
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
CDBWrapper dbw(ph, (1 << 20), true, false, obfuscate);
|
||||||
|
|
||||||
// The two keys are intentionally chosen for ordering
|
// The two keys are intentionally chosen for ordering
|
||||||
|
@ -123,7 +123,7 @@ BOOST_AUTO_TEST_CASE(dbwrapper_iterator)
|
||||||
BOOST_AUTO_TEST_CASE(existing_data_no_obfuscate)
|
BOOST_AUTO_TEST_CASE(existing_data_no_obfuscate)
|
||||||
{
|
{
|
||||||
// We're going to share this fs::path between two wrappers
|
// We're going to share this fs::path between two wrappers
|
||||||
fs::path ph = SetDataDir("existing_data_no_obfuscate");
|
fs::path ph = GetDataDir() / "existing_data_no_obfuscate";
|
||||||
create_directories(ph);
|
create_directories(ph);
|
||||||
|
|
||||||
// Set up a non-obfuscated wrapper to write some initial data.
|
// Set up a non-obfuscated wrapper to write some initial data.
|
||||||
|
@ -164,7 +164,7 @@ BOOST_AUTO_TEST_CASE(existing_data_no_obfuscate)
|
||||||
BOOST_AUTO_TEST_CASE(existing_data_reindex)
|
BOOST_AUTO_TEST_CASE(existing_data_reindex)
|
||||||
{
|
{
|
||||||
// We're going to share this fs::path between two wrappers
|
// We're going to share this fs::path between two wrappers
|
||||||
fs::path ph = SetDataDir("existing_data_reindex");
|
fs::path ph = GetDataDir() / "existing_data_reindex";
|
||||||
create_directories(ph);
|
create_directories(ph);
|
||||||
|
|
||||||
// Set up a non-obfuscated wrapper to write some initial data.
|
// Set up a non-obfuscated wrapper to write some initial data.
|
||||||
|
@ -199,7 +199,7 @@ BOOST_AUTO_TEST_CASE(existing_data_reindex)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(iterator_ordering)
|
BOOST_AUTO_TEST_CASE(iterator_ordering)
|
||||||
{
|
{
|
||||||
fs::path ph = SetDataDir("iterator_ordering");
|
fs::path ph = GetDataDir() / "iterator_ordering";
|
||||||
CDBWrapper dbw(ph, (1 << 20), true, false, false);
|
CDBWrapper dbw(ph, (1 << 20), true, false, false);
|
||||||
for (int x=0x00; x<256; ++x) {
|
for (int x=0x00; x<256; ++x) {
|
||||||
uint8_t key = x;
|
uint8_t key = x;
|
||||||
|
@ -277,7 +277,7 @@ BOOST_AUTO_TEST_CASE(iterator_string_ordering)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
|
|
||||||
fs::path ph = SetDataDir("iterator_string_ordering");
|
fs::path ph = GetDataDir() / "iterator_string_ordering";
|
||||||
CDBWrapper dbw(ph, (1 << 20), true, false, false);
|
CDBWrapper dbw(ph, (1 << 20), true, false, false);
|
||||||
for (int x=0x00; x<10; ++x) {
|
for (int x=0x00; x<10; ++x) {
|
||||||
for (int y = 0; y < 10; y++) {
|
for (int y = 0; y < 10; y++) {
|
||||||
|
|
|
@ -11,7 +11,7 @@ BOOST_FIXTURE_TEST_SUITE(flatfile_tests, BasicTestingSetup)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(flatfile_filename)
|
BOOST_AUTO_TEST_CASE(flatfile_filename)
|
||||||
{
|
{
|
||||||
auto data_dir = SetDataDir("flatfile_test");
|
const auto data_dir = GetDataDir();
|
||||||
|
|
||||||
FlatFilePos pos(456, 789);
|
FlatFilePos pos(456, 789);
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ BOOST_AUTO_TEST_CASE(flatfile_filename)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(flatfile_open)
|
BOOST_AUTO_TEST_CASE(flatfile_open)
|
||||||
{
|
{
|
||||||
auto data_dir = SetDataDir("flatfile_test");
|
const auto data_dir = GetDataDir();
|
||||||
FlatFileSeq seq(data_dir, "a", 16 * 1024);
|
FlatFileSeq seq(data_dir, "a", 16 * 1024);
|
||||||
|
|
||||||
std::string line1("A purely peer-to-peer version of electronic cash would allow online "
|
std::string line1("A purely peer-to-peer version of electronic cash would allow online "
|
||||||
|
@ -85,7 +85,7 @@ BOOST_AUTO_TEST_CASE(flatfile_open)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(flatfile_allocate)
|
BOOST_AUTO_TEST_CASE(flatfile_allocate)
|
||||||
{
|
{
|
||||||
auto data_dir = SetDataDir("flatfile_test");
|
const auto data_dir = GetDataDir();
|
||||||
FlatFileSeq seq(data_dir, "a", 100);
|
FlatFileSeq seq(data_dir, "a", 100);
|
||||||
|
|
||||||
bool out_of_space;
|
bool out_of_space;
|
||||||
|
@ -105,7 +105,7 @@ BOOST_AUTO_TEST_CASE(flatfile_allocate)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(flatfile_flush)
|
BOOST_AUTO_TEST_CASE(flatfile_flush)
|
||||||
{
|
{
|
||||||
auto data_dir = SetDataDir("flatfile_test");
|
const auto data_dir = GetDataDir();
|
||||||
FlatFileSeq seq(data_dir, "a", 100);
|
FlatFileSeq seq(data_dir, "a", 100);
|
||||||
|
|
||||||
bool out_of_space;
|
bool out_of_space;
|
||||||
|
|
|
@ -11,7 +11,7 @@ BOOST_FIXTURE_TEST_SUITE(fs_tests, BasicTestingSetup)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(fsbridge_fstream)
|
BOOST_AUTO_TEST_CASE(fsbridge_fstream)
|
||||||
{
|
{
|
||||||
fs::path tmpfolder = SetDataDir("fsbridge_fstream");
|
fs::path tmpfolder = GetDataDir();
|
||||||
// tmpfile1 should be the same as tmpfile2
|
// tmpfile1 should be the same as tmpfile2
|
||||||
fs::path tmpfile1 = tmpfolder / "fs_tests_₿_🏃";
|
fs::path tmpfile1 = tmpfolder / "fs_tests_₿_🏃";
|
||||||
fs::path tmpfile2 = tmpfolder / L"fs_tests_₿_🏃";
|
fs::path tmpfile2 = tmpfolder / L"fs_tests_₿_🏃";
|
||||||
|
|
|
@ -89,7 +89,6 @@ BOOST_AUTO_TEST_CASE(cnode_listen_port)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(caddrdb_read)
|
BOOST_AUTO_TEST_CASE(caddrdb_read)
|
||||||
{
|
{
|
||||||
SetDataDir("caddrdb_read");
|
|
||||||
CAddrManUncorrupted addrmanUncorrupted;
|
CAddrManUncorrupted addrmanUncorrupted;
|
||||||
addrmanUncorrupted.MakeDeterministic();
|
addrmanUncorrupted.MakeDeterministic();
|
||||||
|
|
||||||
|
@ -135,7 +134,6 @@ BOOST_AUTO_TEST_CASE(caddrdb_read)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(caddrdb_read_corrupted)
|
BOOST_AUTO_TEST_CASE(caddrdb_read_corrupted)
|
||||||
{
|
{
|
||||||
SetDataDir("caddrdb_read_corrupted");
|
|
||||||
CAddrManCorrupted addrmanCorrupted;
|
CAddrManCorrupted addrmanCorrupted;
|
||||||
addrmanCorrupted.MakeDeterministic();
|
addrmanCorrupted.MakeDeterministic();
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,9 @@ std::ostream& operator<<(std::ostream& os, const uint256& num)
|
||||||
BasicTestingSetup::BasicTestingSetup(const std::string& chainName)
|
BasicTestingSetup::BasicTestingSetup(const std::string& chainName)
|
||||||
: m_path_root(fs::temp_directory_path() / "test_common_" PACKAGE_NAME / strprintf("%lu_%i", (unsigned long)GetTime(), (int)(InsecureRandRange(1 << 30))))
|
: m_path_root(fs::temp_directory_path() / "test_common_" PACKAGE_NAME / strprintf("%lu_%i", (unsigned long)GetTime(), (int)(InsecureRandRange(1 << 30))))
|
||||||
{
|
{
|
||||||
|
fs::create_directories(m_path_root);
|
||||||
|
gArgs.ForceSetArg("-datadir", m_path_root.string());
|
||||||
|
ClearDatadirCache();
|
||||||
SHA256AutoDetect();
|
SHA256AutoDetect();
|
||||||
ECC_Start();
|
ECC_Start();
|
||||||
SetupEnvironment();
|
SetupEnvironment();
|
||||||
|
@ -55,23 +58,13 @@ BasicTestingSetup::~BasicTestingSetup()
|
||||||
ECC_Stop();
|
ECC_Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
fs::path BasicTestingSetup::SetDataDir(const std::string& name)
|
|
||||||
{
|
|
||||||
fs::path ret = m_path_root / name;
|
|
||||||
fs::create_directories(ret);
|
|
||||||
gArgs.ForceSetArg("-datadir", ret.string());
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(chainName)
|
TestingSetup::TestingSetup(const std::string& chainName) : BasicTestingSetup(chainName)
|
||||||
{
|
{
|
||||||
SetDataDir("tempdir");
|
|
||||||
const CChainParams& chainparams = Params();
|
const CChainParams& chainparams = Params();
|
||||||
// Ideally we'd move all the RPC tests to the functional testing framework
|
// Ideally we'd move all the RPC tests to the functional testing framework
|
||||||
// instead of unit tests, but for now we need these here.
|
// instead of unit tests, but for now we need these here.
|
||||||
|
|
||||||
RegisterAllCoreRPCCommands(tableRPC);
|
RegisterAllCoreRPCCommands(tableRPC);
|
||||||
ClearDatadirCache();
|
|
||||||
|
|
||||||
// We have to run a scheduler thread to prevent ActivateBestChain
|
// We have to run a scheduler thread to prevent ActivateBestChain
|
||||||
// from blocking due to queue overrun.
|
// from blocking due to queue overrun.
|
||||||
|
|
|
@ -54,22 +54,19 @@ static inline bool InsecureRandBool() { return g_insecure_rand_ctx.randbool(); }
|
||||||
static constexpr CAmount CENT{1000000};
|
static constexpr CAmount CENT{1000000};
|
||||||
|
|
||||||
/** Basic testing setup.
|
/** Basic testing setup.
|
||||||
* This just configures logging and chain parameters.
|
* This just configures logging, data dir and chain parameters.
|
||||||
*/
|
*/
|
||||||
struct BasicTestingSetup {
|
struct BasicTestingSetup {
|
||||||
ECCVerifyHandle globalVerifyHandle;
|
ECCVerifyHandle globalVerifyHandle;
|
||||||
|
|
||||||
explicit BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
|
explicit BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
|
||||||
~BasicTestingSetup();
|
~BasicTestingSetup();
|
||||||
|
|
||||||
fs::path SetDataDir(const std::string& name);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const fs::path m_path_root;
|
const fs::path m_path_root;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Testing setup that configures a complete environment.
|
/** Testing setup that configures a complete environment.
|
||||||
* Included are data directory, coins database, script check threads setup.
|
* Included are coins database, script check threads setup.
|
||||||
*/
|
*/
|
||||||
struct TestingSetup : public BasicTestingSetup {
|
struct TestingSetup : public BasicTestingSetup {
|
||||||
boost::thread_group threadGroup;
|
boost::thread_group threadGroup;
|
||||||
|
|
|
@ -1398,7 +1398,7 @@ static void TestOtherProcess(fs::path dirname, std::string lockname, int fd)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(test_LockDirectory)
|
BOOST_AUTO_TEST_CASE(test_LockDirectory)
|
||||||
{
|
{
|
||||||
fs::path dirname = SetDataDir("test_LockDirectory") / fs::unique_path();
|
fs::path dirname = GetDataDir() / "lock_dir";
|
||||||
const std::string lockname = ".lock";
|
const std::string lockname = ".lock";
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
// Revert SIGCHLD to default, otherwise boost.test will catch and fail on
|
// Revert SIGCHLD to default, otherwise boost.test will catch and fail on
|
||||||
|
@ -1487,7 +1487,7 @@ BOOST_AUTO_TEST_CASE(test_LockDirectory)
|
||||||
BOOST_AUTO_TEST_CASE(test_DirIsWritable)
|
BOOST_AUTO_TEST_CASE(test_DirIsWritable)
|
||||||
{
|
{
|
||||||
// Should be able to write to the data dir.
|
// Should be able to write to the data dir.
|
||||||
fs::path tmpdirname = SetDataDir("test_DirIsWritable");
|
fs::path tmpdirname = GetDataDir();
|
||||||
BOOST_CHECK_EQUAL(DirIsWritable(tmpdirname), true);
|
BOOST_CHECK_EQUAL(DirIsWritable(tmpdirname), true);
|
||||||
|
|
||||||
// Should not be able to write to a non-existent dir.
|
// Should not be able to write to a non-existent dir.
|
||||||
|
|
|
@ -16,7 +16,7 @@ BOOST_FIXTURE_TEST_SUITE(db_tests, BasicTestingSetup)
|
||||||
BOOST_AUTO_TEST_CASE(getwalletenv_file)
|
BOOST_AUTO_TEST_CASE(getwalletenv_file)
|
||||||
{
|
{
|
||||||
std::string test_name = "test_name.dat";
|
std::string test_name = "test_name.dat";
|
||||||
fs::path datadir = SetDataDir("tempdir");
|
const fs::path datadir = GetDataDir();
|
||||||
fs::path file_path = datadir / test_name;
|
fs::path file_path = datadir / test_name;
|
||||||
std::ofstream f(file_path.BOOST_FILESYSTEM_C_STR);
|
std::ofstream f(file_path.BOOST_FILESYSTEM_C_STR);
|
||||||
f.close();
|
f.close();
|
||||||
|
@ -30,7 +30,7 @@ BOOST_AUTO_TEST_CASE(getwalletenv_file)
|
||||||
BOOST_AUTO_TEST_CASE(getwalletenv_directory)
|
BOOST_AUTO_TEST_CASE(getwalletenv_directory)
|
||||||
{
|
{
|
||||||
std::string expected_name = "wallet.dat";
|
std::string expected_name = "wallet.dat";
|
||||||
fs::path datadir = SetDataDir("tempdir");
|
const fs::path datadir = GetDataDir();
|
||||||
|
|
||||||
std::string filename;
|
std::string filename;
|
||||||
std::shared_ptr<BerkeleyEnvironment> env = GetWalletEnv(datadir, filename);
|
std::shared_ptr<BerkeleyEnvironment> env = GetWalletEnv(datadir, filename);
|
||||||
|
@ -40,8 +40,8 @@ BOOST_AUTO_TEST_CASE(getwalletenv_directory)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(getwalletenv_g_dbenvs_multiple)
|
BOOST_AUTO_TEST_CASE(getwalletenv_g_dbenvs_multiple)
|
||||||
{
|
{
|
||||||
fs::path datadir = SetDataDir("tempdir");
|
fs::path datadir = GetDataDir() / "1";
|
||||||
fs::path datadir_2 = SetDataDir("tempdir_2");
|
fs::path datadir_2 = GetDataDir() / "2";
|
||||||
std::string filename;
|
std::string filename;
|
||||||
|
|
||||||
std::shared_ptr<BerkeleyEnvironment> env_1 = GetWalletEnv(datadir, filename);
|
std::shared_ptr<BerkeleyEnvironment> env_1 = GetWalletEnv(datadir, filename);
|
||||||
|
@ -54,8 +54,8 @@ BOOST_AUTO_TEST_CASE(getwalletenv_g_dbenvs_multiple)
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(getwalletenv_g_dbenvs_free_instance)
|
BOOST_AUTO_TEST_CASE(getwalletenv_g_dbenvs_free_instance)
|
||||||
{
|
{
|
||||||
fs::path datadir = SetDataDir("tempdir");
|
fs::path datadir = GetDataDir() / "1";
|
||||||
fs::path datadir_2 = SetDataDir("tempdir_2");
|
fs::path datadir_2 = GetDataDir() / "2";
|
||||||
std::string filename;
|
std::string filename;
|
||||||
|
|
||||||
std::shared_ptr <BerkeleyEnvironment> env_1_a = GetWalletEnv(datadir, filename);
|
std::shared_ptr <BerkeleyEnvironment> env_1_a = GetWalletEnv(datadir, filename);
|
||||||
|
|
|
@ -13,7 +13,7 @@ InitWalletDirTestingSetup::InitWalletDirTestingSetup(const std::string& chainNam
|
||||||
std::string sep;
|
std::string sep;
|
||||||
sep += fs::path::preferred_separator;
|
sep += fs::path::preferred_separator;
|
||||||
|
|
||||||
m_datadir = SetDataDir("tempdir");
|
m_datadir = GetDataDir();
|
||||||
m_cwd = fs::current_path();
|
m_cwd = fs::current_path();
|
||||||
|
|
||||||
m_walletdir_path_cases["default"] = m_datadir / "wallets";
|
m_walletdir_path_cases["default"] = m_datadir / "wallets";
|
||||||
|
|
|
@ -192,7 +192,7 @@ BOOST_FIXTURE_TEST_CASE(importwallet_rescan, TestChain100Setup)
|
||||||
auto locked_chain = chain->lock();
|
auto locked_chain = chain->lock();
|
||||||
LockAssertion lock(::cs_main);
|
LockAssertion lock(::cs_main);
|
||||||
|
|
||||||
std::string backup_file = (SetDataDir("importwallet_rescan") / "wallet.backup").string();
|
std::string backup_file = (GetDataDir() / "wallet.backup").string();
|
||||||
|
|
||||||
// Import key into wallet and call dumpwallet to create backup file.
|
// Import key into wallet and call dumpwallet to create backup file.
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue