mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
Merge #19014: test: Replace TEST_PREVIOUS_RELEASES env var with test_framework option
fad798be76dd5e330463c837fda768477d536078 test: Default --previous-releases to false if dir is empty (MarcoFalke) faf1c3cc58d14f86ba5364e6ee5c8ef29cac2e26 test: Replace TEST_PREVIOUS_RELEASES env var with test_framework option (MarcoFalke) Pull request description: The "auto-detection" feature is kept in place, but making it an option allows to properly document it. For example, on my machine I get: ``` $ ./test/functional/wallet_disable.py --help | grep previous-releases --previous-releases Force test of previous releases (default: False) ACKs for top commit: Sjors: re-tACK fad798b Tree-SHA512: a7377d0d5378be0a50be278d76396cc403583617b5fc43467773eee706df698acf3f4e67651491183b9b43a8e1816b052e4c17b90272b7ec4b6ac134ad811400
This commit is contained in:
parent
eb2792a882
commit
2d95e9284c
@ -39,7 +39,6 @@ export USE_BUSY_BOX=${USE_BUSY_BOX:-false}
|
||||
export RUN_UNIT_TESTS=${RUN_UNIT_TESTS:-true}
|
||||
export RUN_INTEGRATION_TESTS=${RUN_INTEGRATION_TESTS:-true}
|
||||
export RUN_SECURITY_TESTS=${RUN_SECURITY_TESTS:-false}
|
||||
export TEST_PREVIOUS_RELEASES=${TEST_PREVIOUS_RELEASES:-false}
|
||||
export RUN_FUZZ_TESTS=${RUN_FUZZ_TESTS:-false}
|
||||
export RUN_SYMBOL_TESTS=${RUN_SYMBOL_TESTS:-true}
|
||||
export CONTAINER_NAME=${CONTAINER_NAME:-ci_unnamed}
|
||||
|
@ -10,10 +10,9 @@ export CONTAINER_NAME=ci_native_qt5
|
||||
export PACKAGES="python3-zmq qtbase5-dev qttools5-dev-tools libdbus-1-dev libharfbuzz-dev"
|
||||
export DEP_OPTS="NO_UPNP=1 DEBUG=1"
|
||||
# TODO: we have few rpcs that aren't covered by any test, re-enable the line below once it's fixed
|
||||
# export TEST_RUNNER_EXTRA="--coverage --extended --exclude feature_pruning,feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
|
||||
# export TEST_RUNNER_EXTRA="--previous-releases --coverage --extended --exclude feature_pruning,feature_dbcrash" # Run extended tests so that coverage does not fail, but exclude the very slow dbcrash
|
||||
export RUN_UNIT_TESTS_SEQUENTIAL="true"
|
||||
export RUN_UNIT_TESTS="false"
|
||||
export GOAL="install"
|
||||
export TEST_PREVIOUS_RELEASES=true
|
||||
export PREVIOUS_RELEASES_TO_DOWNLOAD="v0.15.0.0 v0.16.1.1 v0.17.0.3 v18.2.2 v19.3.0 v20.0.1"
|
||||
export BITCOIN_CONFIG="--enable-zmq --enable-reduce-exports --disable-fuzz-binary LDFLAGS=-static-libstdc++"
|
||||
|
@ -26,7 +26,7 @@ export ASAN_OPTIONS="detect_stack_use_after_return=1:check_initialization_order=
|
||||
export LSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/lsan"
|
||||
export TSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/tsan"
|
||||
export UBSAN_OPTIONS="suppressions=${BASE_BUILD_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1"
|
||||
env | grep -E '^(BASE_|QEMU_|CCACHE_|LC_ALL|BOOST_TEST_RANDOM|DEBIAN_FRONTEND|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS|TEST_PREVIOUS_RELEASES|PREVIOUS_RELEASES_DIR))' | tee /tmp/env
|
||||
env | grep -E '^(BASE_|QEMU_|CCACHE_|LC_ALL|BOOST_TEST_RANDOM|DEBIAN_FRONTEND|CONFIG_SHELL|(ASAN|LSAN|TSAN|UBSAN)_OPTIONS|PREVIOUS_RELEASES_DIR))' | tee /tmp/env
|
||||
if [[ $HOST = *-mingw32 ]]; then
|
||||
DOCKER_ADMIN="--cap-add SYS_ADMIN"
|
||||
elif [[ $BITCOIN_CONFIG = *--with-sanitizers=*address* ]]; then # If ran with (ASan + LSan), Docker needs access to ptrace (https://github.com/google/sanitizers/issues/764)
|
||||
|
@ -179,6 +179,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
sys.exit(exit_code)
|
||||
|
||||
def parse_args(self):
|
||||
previous_releases_path = os.getenv("PREVIOUS_RELEASES_DIR") or os.getcwd() + "/releases"
|
||||
parser = argparse.ArgumentParser(usage="%(prog)s [options]")
|
||||
parser.add_argument("--nocleanup", dest="nocleanup", default=False, action="store_true",
|
||||
help="Leave dashds and test.* datadir on exit or error")
|
||||
@ -193,6 +194,9 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
help="Print out all RPC calls as they are made")
|
||||
parser.add_argument("--portseed", dest="port_seed", default=os.getpid(), type=int,
|
||||
help="The seed to use for assigning port numbers (default: current process id)")
|
||||
parser.add_argument("--previous-releases", dest="prev_releases", action="store_true",
|
||||
default=os.path.isdir(previous_releases_path) and bool(os.listdir(previous_releases_path)),
|
||||
help="Force test of previous releases (default: %(default)s)")
|
||||
parser.add_argument("--coveragedir", dest="coveragedir",
|
||||
help="Write tested RPC commands into this directory")
|
||||
parser.add_argument("--configfile", dest="configfile",
|
||||
@ -216,6 +220,7 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
|
||||
self.add_options(parser)
|
||||
self.options = parser.parse_args()
|
||||
self.options.previous_releases_path = previous_releases_path
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read_file(open(self.options.configfile))
|
||||
@ -243,20 +248,18 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
fname_bitcoind = os.path.join(
|
||||
config["environment"]["BUILDDIR"],
|
||||
"src",
|
||||
"dashd" + config["environment"]["EXEEXT"]
|
||||
"dashd" + config["environment"]["EXEEXT"],
|
||||
)
|
||||
fname_bitcoincli = os.path.join(
|
||||
config["environment"]["BUILDDIR"],
|
||||
"src",
|
||||
"dash-cli" + config["environment"]["EXEEXT"]
|
||||
"dash-cli" + config["environment"]["EXEEXT"],
|
||||
)
|
||||
self.options.bitcoind = os.getenv("BITCOIND", default=fname_bitcoind)
|
||||
self.options.bitcoincli = os.getenv("BITCOINCLI", default=fname_bitcoincli)
|
||||
|
||||
self.extra_args_from_options = self.options.dashd_extra_args
|
||||
|
||||
self.options.previous_releases_path = os.getenv("PREVIOUS_RELEASES_DIR") or os.getcwd() + "/releases"
|
||||
|
||||
os.environ['PATH'] = os.pathsep.join([
|
||||
os.path.join(config['environment']['BUILDDIR'], 'src'),
|
||||
os.path.join(config['environment']['BUILDDIR'], 'src', 'qt'), os.environ['PATH']
|
||||
@ -959,17 +962,11 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
|
||||
|
||||
def has_previous_releases(self):
|
||||
"""Checks whether previous releases are present and enabled."""
|
||||
if os.getenv("TEST_PREVIOUS_RELEASES") == "false":
|
||||
# disabled
|
||||
return False
|
||||
|
||||
if not os.path.isdir(self.options.previous_releases_path):
|
||||
if os.getenv("TEST_PREVIOUS_RELEASES") == "true":
|
||||
raise AssertionError("TEST_PREVIOUS_RELEASES=true but releases missing: {}".format(
|
||||
if self.options.prev_releases:
|
||||
raise AssertionError("Force test of previous releases but releases missing: {}".format(
|
||||
self.options.previous_releases_path))
|
||||
# missing
|
||||
return False
|
||||
return True
|
||||
return self.options.prev_releases
|
||||
|
||||
def is_cli_compiled(self):
|
||||
"""Checks whether dash-cli was compiled."""
|
||||
|
Loading…
Reference in New Issue
Block a user