#!/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) run.wait_for_services(pid, [ lambda: run.check_rest_api(ip), lambda: check_cql(ip) ]) success = run.run_pytest(sys.path[0], ['--host=' + ip] + 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).