mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-19 12:10:19 +01:00
Merge bitcoin/bitcoin#30748: test: Pin and document TEST_DIR_PATH_ELEMENT, SeedRand::FIXED_SEED
fa84f9decdtest: Pin and document TEST_DIR_PATH_ELEMENT (MarcoFalke)2222f7a874test: Rename SeedRand::SEED to FIXED_SEED for clarity (MarcoFalke) Pull request description: Two small test changes: * A refactor to update the name and documentation around `SeedRand::FIXED_SEED`. * A change to extract and document `TEST_DIR_PATH_ELEMENT`, and to change its value to better match the `TMPDIR_PREFIX` in functional tests. The value previously included `PACKAGE_NAME`, which is cute, but doesn't explain why it was used (to include a space). So just use `test_common bitcoin` to achieve the same with less effort. ACKs for top commit: hodlinator: ACKfa84f9decdryanofsky: Code review ACKfa84f9decdTree-SHA512: eb35d6598bb08f9b996e3a4762d8f26b2441c0ca00780798e473015af735dfc9997120895a922b94d4b6ada45adadba4a686e9cf9c285ddf688848e764c64840
This commit is contained in:
@@ -2,8 +2,6 @@
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include <config/bitcoin-config.h> // IWYU pragma: keep
|
||||
|
||||
#include <test/util/setup_common.h>
|
||||
|
||||
#include <addrman.h>
|
||||
@@ -76,6 +74,7 @@ using node::VerifyLoadedChainstate;
|
||||
|
||||
const std::function<std::string(const char*)> G_TRANSLATION_FUN = nullptr;
|
||||
|
||||
constexpr inline auto TEST_DIR_PATH_ELEMENT{"test_common bitcoin"}; // Includes a space to catch possible path escape issues.
|
||||
/** Random context to get unique temp data dirs. Separate from m_rng, which can be seeded from a const env var */
|
||||
static FastRandomContext g_rng_temp_path;
|
||||
|
||||
@@ -109,7 +108,7 @@ static NetworkSetup g_networksetup_instance;
|
||||
/** Register test-only arguments */
|
||||
static void SetupUnitTestArgs(ArgsManager& argsman)
|
||||
{
|
||||
argsman.AddArg("-testdatadir", strprintf("Custom data directory (default: %s<random_string>)", fs::PathToString(fs::temp_directory_path() / "test_common_" PACKAGE_NAME / "")),
|
||||
argsman.AddArg("-testdatadir", strprintf("Custom data directory (default: %s<random_string>)", fs::PathToString(fs::temp_directory_path() / TEST_DIR_PATH_ELEMENT / "")),
|
||||
ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST);
|
||||
}
|
||||
|
||||
@@ -155,12 +154,12 @@ BasicTestingSetup::BasicTestingSetup(const ChainType chainType, TestOpts opts)
|
||||
|
||||
// Use randomly chosen seed for deterministic PRNG, so that (by default) test
|
||||
// data directories use a random name that doesn't overlap with other tests.
|
||||
SeedRandomForTest(SeedRand::SEED);
|
||||
SeedRandomForTest(SeedRand::FIXED_SEED);
|
||||
|
||||
if (!m_node.args->IsArgSet("-testdatadir")) {
|
||||
// By default, the data directory has a random name
|
||||
const auto rand_str{g_rng_temp_path.rand256().ToString()};
|
||||
m_path_root = fs::temp_directory_path() / "test_common_" PACKAGE_NAME / rand_str;
|
||||
m_path_root = fs::temp_directory_path() / TEST_DIR_PATH_ELEMENT / rand_str;
|
||||
TryCreateDirectories(m_path_root);
|
||||
} else {
|
||||
// Custom data directory
|
||||
@@ -170,7 +169,7 @@ BasicTestingSetup::BasicTestingSetup(const ChainType chainType, TestOpts opts)
|
||||
|
||||
root_dir = fs::absolute(root_dir);
|
||||
const std::string test_path{G_TEST_GET_FULL_NAME ? G_TEST_GET_FULL_NAME() : ""};
|
||||
m_path_lock = root_dir / "test_common_" PACKAGE_NAME / fs::PathFromString(test_path);
|
||||
m_path_lock = root_dir / TEST_DIR_PATH_ELEMENT / fs::PathFromString(test_path);
|
||||
m_path_root = m_path_lock / "datadir";
|
||||
|
||||
// Try to obtain the lock; if unsuccessful don't disturb the existing test.
|
||||
|
||||
Reference in New Issue
Block a user