Skip to content

Commit

Permalink
qubes/tests/run: refuse to run tests if qubesd is running
Browse files Browse the repository at this point in the history
Test suite creates some VMs and needs to pass the knowledge about them
to qrexec policy checker. This is done using Admin API, so we need to
substitute qubesd with our own API server.
  • Loading branch information
woju authored and marmarek committed Jun 20, 2017
1 parent 858e547 commit 4b8e5c3
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions qubes/tests/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import unittest.signals

import qubes.tests
import qubes.api.admin

class CursesColor(dict):
colors = (
Expand Down Expand Up @@ -331,6 +332,11 @@ def test_6_unexpected_success(self):
action='store_false', dest='kmsg',
help='do not abuse kernel ring-buffer')

parser.add_argument('--allow-running-along-qubesd',
action='store_true', default=False,
help='allow running in parallel with qubesd;'
' this is DANGEROUS and WILL RESULT IN INCONSISTENT SYSTEM STATE')

parser.add_argument('names', metavar='TESTNAME',
action='store', nargs='*',
help='list of tests to run named like in description '
Expand Down Expand Up @@ -406,6 +412,10 @@ def main():
ha_kmsg.setLevel(logging.CRITICAL)
logging.root.addHandler(ha_kmsg)

if not args.allow_running_along_qubesd \
and os.path.exists(qubes.api.admin.QUBESD_ADMIN_SOCK):
parser.error('refusing to run until qubesd is disabled')

runner = unittest.TextTestRunner(stream=sys.stdout,
verbosity=(args.verbose-args.quiet),
failfast=args.failfast)
Expand Down

0 comments on commit 4b8e5c3

Please sign in to comment.