in dtest_config.py [0:0]
def setup(self, config):
"""
Reads and validates configuration. Throws UsageError if configuration is invalid.
"""
self.metatests = config.getoption("--metatests")
if self.metatests:
self.cassandra_dir = os.path.join(os.getcwd(), "meta_tests/cassandra-dir-4.0-beta")
self.cassandra_version_from_build = self.get_version_from_build()
return
self.use_vnodes = config.getoption("--use-vnodes")
self.use_off_heap_memtables = config.getoption("--use-off-heap-memtables")
self.num_tokens = config.getoption("--num-tokens")
self.data_dir_count = config.getoption("--data-dir-count-per-instance")
self.force_execution_of_resource_intensive_tests = config.getoption("--force-resource-intensive-tests")
self.skip_resource_intensive_tests = config.getoption("--skip-resource-intensive-tests")
self.only_resource_intensive_tests = config.getoption("--only-resource-intensive-tests")
cassandra_dir = config.getoption("--cassandra-dir") or config.getini("cassandra_dir")
if cassandra_dir is not None and cassandra_dir.strip() == "":
cassandra_dir = None
if cassandra_dir is not None:
self.cassandra_dir = os.path.expanduser(cassandra_dir)
self.cassandra_version = config.getoption("--cassandra-version")
if self.cassandra_version is not None and self.cassandra_dir is not None:
raise UsageError("Please remove --cassandra-version because Cassandra build directory is already "
"defined (by --cassandra-dir or in ini file)")
try:
self.cassandra_version_from_build = self.get_version_from_build()
except FileNotFoundError as fnfe:
raise UsageError("The Cassandra directory %s does not seem to be valid: %s" % (self.cassandra_dir, fnfe))
self.delete_logs = config.getoption("--delete-logs")
self.execute_upgrade_tests = config.getoption("--execute-upgrade-tests")
self.execute_upgrade_tests_only = config.getoption("--execute-upgrade-tests-only")
self.disable_active_log_watching = config.getoption("--disable-active-log-watching")
self.keep_test_dir = config.getoption("--keep-test-dir")
self.keep_failed_test_dir = config.getoption("--keep-failed-test-dir")
self.enable_jacoco_code_coverage = config.getoption("--enable-jacoco-code-coverage")
if self.cassandra_version is None and self.cassandra_version_from_build is None:
raise UsageError("Required dtest arguments were missing! You must provide either --cassandra-dir "
"or --cassandra-version. You can also set 'cassandra_dir' in pytest.ini. "
"Refer to the documentation or invoke the help with --help.")
version = self.cassandra_version or self.cassandra_version_from_build
if self.skip_resource_intensive_tests and \
(self.only_resource_intensive_tests or self.force_execution_of_resource_intensive_tests):
raise UsageError("--skip-resource-intensive-tests does not make any sense with either "
"--only-resource-intensive-tests or --force-resource-intensive-tests.")
# Check that use_off_heap_memtables is supported in this c* version
if self.use_off_heap_memtables and ("3.0" <= version < "3.4"):
raise UsageError("The selected Cassandra version %s doesn't support the provided option "
"--use-off-heap-memtables, see https://issues.apache.org/jira/browse/CASSANDRA-9472 "
"for details" % version)