mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-21 00:50:35 +00:00
We want to add tool tests. These tests will have to invoke scylla executable (as tools are hosted by the latter) and they want access to the scylla data directories. Propagate the scylla path and data directory used from `run` into the test suite via pytest request parameters.
46 lines
1.4 KiB
Python
Executable File
46 lines
1.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
|
|
import run # run.py in this directory
|
|
|
|
print('Scylla is: ' + run.scylla + '.')
|
|
|
|
ssl = '--ssl' in sys.argv
|
|
if ssl:
|
|
cmd = run.run_scylla_ssl_cql_cmd
|
|
check_cql = run.check_ssl_cql
|
|
else:
|
|
cmd = run.run_scylla_cmd
|
|
check_cql = run.check_cql
|
|
|
|
# If the "--raft" option is given, switch to the experimental Raft-based
|
|
# implementation of schema operations. Some tests are expected to fail
|
|
# when not in raft mode, so they use the fails_without_raft fixture
|
|
# that will cause them to xfail when raft isn't used.
|
|
if '--raft' in sys.argv:
|
|
sys.argv.remove('--raft')
|
|
def run_with_raft(pid, dir):
|
|
(c, e) = run_with_raft.orig_cmd(pid, dir)
|
|
return (c + ['--experimental-features=raft'], e)
|
|
run_with_raft.orig_cmd = cmd
|
|
cmd = run_with_raft
|
|
|
|
pid = run.run_with_temporary_dir(cmd)
|
|
ip = run.pid_to_ip(pid)
|
|
wd = run.pid_to_dir(pid)
|
|
|
|
run.wait_for_services(pid, [
|
|
lambda: run.check_rest_api(ip),
|
|
lambda: check_cql(ip)
|
|
])
|
|
success = run.run_pytest(sys.path[0], ['--host', ip, '--workdir', wd, '--scylla-path', run.scylla] + sys.argv[1:])
|
|
|
|
run.summary = 'Scylla tests pass' if success else 'Scylla tests failure'
|
|
|
|
exit(0 if success else 1)
|
|
|
|
# Note that the run.cleanup_all() function runs now, just like on any exit
|
|
# for any reason in this script. It will delete the temporary files and
|
|
# announce the failure or success of the test (printing run.summary).
|