tests: port vm_qrexec_gui to core3 API
This commit is contained in:
parent
e19df4c5b6
commit
d8286b6dab
@ -987,7 +987,7 @@ def load_tests(loader, tests, pattern): # pylint: disable=unused-argument
|
|||||||
'qubes.tests.int.dom0_update',
|
'qubes.tests.int.dom0_update',
|
||||||
'qubes.tests.int.network',
|
'qubes.tests.int.network',
|
||||||
'qubes.tests.int.dispvm',
|
'qubes.tests.int.dispvm',
|
||||||
# 'qubes.tests.vm_qrexec_gui',
|
'qubes.tests.int.vm_qrexec_gui',
|
||||||
'qubes.tests.int.backup',
|
'qubes.tests.int.backup',
|
||||||
'qubes.tests.int.backupcompatibility',
|
'qubes.tests.int.backupcompatibility',
|
||||||
# 'qubes.tests.regressions',
|
# 'qubes.tests.regressions',
|
||||||
|
@ -30,30 +30,34 @@ import subprocess
|
|||||||
import unittest
|
import unittest
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from qubes.qubes import QubesVmCollection, defaults, QubesException
|
import qubes.config
|
||||||
|
|
||||||
import qubes.tests
|
import qubes.tests
|
||||||
|
import qubes.vm.appvm
|
||||||
|
import qubes.vm.templatevm
|
||||||
import re
|
import re
|
||||||
|
|
||||||
TEST_DATA = "0123456789" * 1024
|
TEST_DATA = "0123456789" * 1024
|
||||||
|
|
||||||
|
|
||||||
class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(TC_00_AppVMMixin, self).setUp()
|
super(TC_00_AppVMMixin, self).setUp()
|
||||||
self.testvm1 = self.qc.add_new_vm(
|
self.init_default_template(self.template)
|
||||||
"QubesAppVm",
|
if self._testMethodName == 'test_210_time_sync':
|
||||||
|
self.init_networking()
|
||||||
|
self.testvm1 = self.app.add_new_vm(
|
||||||
|
qubes.vm.appvm.AppVM,
|
||||||
|
label='red',
|
||||||
name=self.make_vm_name('vm1'),
|
name=self.make_vm_name('vm1'),
|
||||||
template=self.qc.get_vm_by_name(self.template))
|
template=self.app.domains[self.template])
|
||||||
self.testvm1.create_on_disk(verbose=False)
|
self.testvm1.create_on_disk()
|
||||||
self.testvm2 = self.qc.add_new_vm(
|
self.testvm2 = self.app.add_new_vm(
|
||||||
"QubesAppVm",
|
qubes.vm.appvm.AppVM,
|
||||||
|
label='red',
|
||||||
name=self.make_vm_name('vm2'),
|
name=self.make_vm_name('vm2'),
|
||||||
template=self.qc.get_vm_by_name(self.template))
|
template=self.app.domains[self.template])
|
||||||
self.testvm2.create_on_disk(verbose=False)
|
self.testvm2.create_on_disk()
|
||||||
self.save_and_reload_db()
|
self.app.save()
|
||||||
self.qc.unlock_db()
|
|
||||||
self.testvm1 = self.qc[self.testvm1.qid]
|
|
||||||
self.testvm2 = self.qc[self.testvm2.qid]
|
|
||||||
|
|
||||||
def test_000_start_shutdown(self):
|
def test_000_start_shutdown(self):
|
||||||
self.testvm1.start()
|
self.testvm1.start()
|
||||||
@ -62,7 +66,7 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
|
|
||||||
shutdown_counter = 0
|
shutdown_counter = 0
|
||||||
while self.testvm1.is_running():
|
while self.testvm1.is_running():
|
||||||
if shutdown_counter > defaults["shutdown_counter_max"]:
|
if shutdown_counter > qubes.config.defaults["shutdown_counter_max"]:
|
||||||
self.fail("VM hanged during shutdown")
|
self.fail("VM hanged during shutdown")
|
||||||
shutdown_counter += 1
|
shutdown_counter += 1
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
@ -791,15 +795,9 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
self.testvm2.start()
|
self.testvm2.start()
|
||||||
(start_time, _) = subprocess.Popen(["date", "-u", "+%s"],
|
(start_time, _) = subprocess.Popen(["date", "-u", "+%s"],
|
||||||
stdout=subprocess.PIPE).communicate()
|
stdout=subprocess.PIPE).communicate()
|
||||||
original_clockvm = self.qc.get_clockvm_vm()
|
|
||||||
if original_clockvm:
|
|
||||||
original_clockvm_name = original_clockvm.name
|
|
||||||
else:
|
|
||||||
original_clockvm_name = "none"
|
|
||||||
try:
|
try:
|
||||||
# use qubes-prefs to not hassle with qubes.xml locking
|
self.app.clockvm = self.testvm1
|
||||||
subprocess.check_call(["qubes-prefs", "-s", "clockvm",
|
self.app.save()
|
||||||
self.testvm1.name])
|
|
||||||
# break vm and dom0 time, to check if qvm-sync-clock would fix it
|
# break vm and dom0 time, to check if qvm-sync-clock would fix it
|
||||||
subprocess.check_call(["sudo", "date", "-s",
|
subprocess.check_call(["sudo", "date", "-s",
|
||||||
"2001-01-01T12:34:56"],
|
"2001-01-01T12:34:56"],
|
||||||
@ -833,9 +831,6 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
# reset time to some approximation of the real time
|
# reset time to some approximation of the real time
|
||||||
subprocess.Popen(["sudo", "date", "-u", "-s", "@" + start_time])
|
subprocess.Popen(["sudo", "date", "-u", "-s", "@" + start_time])
|
||||||
raise
|
raise
|
||||||
finally:
|
|
||||||
subprocess.call(["qubes-prefs", "-s", "clockvm",
|
|
||||||
original_clockvm_name])
|
|
||||||
|
|
||||||
def test_250_resize_private_img(self):
|
def test_250_resize_private_img(self):
|
||||||
"""
|
"""
|
||||||
@ -843,7 +838,7 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
# First offline test
|
# First offline test
|
||||||
self.testvm1.resize_private_img(4*1024**3)
|
self.testvm1.storage.resize('private', 4*1024**3)
|
||||||
self.testvm1.start()
|
self.testvm1.start()
|
||||||
df_cmd = '( df --output=size /rw || df /rw | awk \'{print $2}\' )|' \
|
df_cmd = '( df --output=size /rw || df /rw | awk \'{print $2}\' )|' \
|
||||||
'tail -n 1'
|
'tail -n 1'
|
||||||
@ -854,7 +849,7 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
# some safety margin for FS metadata
|
# some safety margin for FS metadata
|
||||||
self.assertGreater(int(new_size.strip()), 3.8*1024**2)
|
self.assertGreater(int(new_size.strip()), 3.8*1024**2)
|
||||||
# Then online test
|
# Then online test
|
||||||
self.testvm1.resize_private_img(6*1024**3)
|
self.testvm1.storage.resize('private', 6*1024**3)
|
||||||
p = self.testvm1.run(df_cmd,
|
p = self.testvm1.run(df_cmd,
|
||||||
passio_popen=True)
|
passio_popen=True)
|
||||||
# new_size in 1k-blocks
|
# new_size in 1k-blocks
|
||||||
@ -873,7 +868,7 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
self.testvm1.memory = 800
|
self.testvm1.memory = 800
|
||||||
self.testvm1.maxmem = 800
|
self.testvm1.maxmem = 800
|
||||||
# exclude from memory balancing
|
# exclude from memory balancing
|
||||||
self.testvm1.services['meminfo-writer'] = False
|
self.testvm1.features['services/meminfo-writer'] = False
|
||||||
self.testvm1.start()
|
self.testvm1.start()
|
||||||
# and allow large map count
|
# and allow large map count
|
||||||
self.testvm1.run("echo 256000 > /proc/sys/vm/max_map_count",
|
self.testvm1.run("echo 256000 > /proc/sys/vm/max_map_count",
|
||||||
@ -1010,12 +1005,9 @@ class TC_00_AppVMMixin(qubes.tests.SystemTestsMixin):
|
|||||||
|
|
||||||
def load_tests(loader, tests, pattern):
|
def load_tests(loader, tests, pattern):
|
||||||
try:
|
try:
|
||||||
qc = qubes.qubes.QubesVmCollection()
|
app = qubes.Qubes()
|
||||||
qc.lock_db_for_reading()
|
templates = [vm.name for vm in app.domains if
|
||||||
qc.load()
|
isinstance(vm, qubes.vm.templatevm.TemplateVM)]
|
||||||
qc.unlock_db()
|
|
||||||
templates = [vm.name for vm in qc.values() if
|
|
||||||
isinstance(vm, qubes.qubes.QubesTemplateVm)]
|
|
||||||
except OSError:
|
except OSError:
|
||||||
templates = []
|
templates = []
|
||||||
for template in templates:
|
for template in templates:
|
@ -307,6 +307,7 @@ fi
|
|||||||
%{python_sitelib}/qubes/tests/int/dispvm.py*
|
%{python_sitelib}/qubes/tests/int/dispvm.py*
|
||||||
%{python_sitelib}/qubes/tests/int/dom0_update.py*
|
%{python_sitelib}/qubes/tests/int/dom0_update.py*
|
||||||
%{python_sitelib}/qubes/tests/int/network.py*
|
%{python_sitelib}/qubes/tests/int/network.py*
|
||||||
|
%{python_sitelib}/qubes/tests/int/vm_qrexec_gui.py*
|
||||||
|
|
||||||
%dir %{python_sitelib}/qubes/tests/int/tools
|
%dir %{python_sitelib}/qubes/tests/int/tools
|
||||||
%{python_sitelib}/qubes/tests/int/tools/__init__.py*
|
%{python_sitelib}/qubes/tests/int/tools/__init__.py*
|
||||||
|
Loading…
Reference in New Issue
Block a user