tests: make sure that DispVM service call receive EOF

Even when the test fails. Otherwise the DispVM will stay alive.
This commit is contained in:
Marek Marczykowski-Górecki 2015-11-07 18:46:54 +01:00
parent 34f7ddd41e
commit c595ac464b
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -837,35 +837,35 @@ class TC_20_DispVMMixin(qubes.tests.SystemTestsMixin):
dispvm = self.qc[max_qid] dispvm = self.qc[max_qid]
self.assertNotEqual(dispvm.qid, 0, "DispVM not found in qubes.xml") self.assertNotEqual(dispvm.qid, 0, "DispVM not found in qubes.xml")
self.assertTrue(dispvm.is_running()) self.assertTrue(dispvm.is_running())
try:
window_title = 'user@%s' % (dispvm.template.name + "-dvm")
p.stdin.write("gnome-terminal -e "
"\"sh -s -c 'echo \\\"\033]0;{}\007\\\"'\"\n".
format(window_title))
wait_count = 0
while subprocess.call(['xdotool', 'search', '--name', window_title],
stdout=open(os.path.devnull, 'w'),
stderr=subprocess.STDOUT) > 0:
wait_count += 1
if wait_count > 100:
self.fail("Timeout while waiting for gnome-terminal window")
time.sleep(0.1)
window_title = 'user@%s' % (dispvm.template.name + "-dvm") time.sleep(0.5)
p.stdin.write("gnome-terminal -e " subprocess.check_call(['xdotool', 'search', '--name', window_title,
"\"sh -s -c 'echo \\\"\033]0;{}\007\\\"'\"\n". 'windowactivate', 'type', 'exit\n'])
format(window_title))
wait_count = 0
while subprocess.call(['xdotool', 'search', '--name', window_title],
stdout=open(os.path.devnull, 'w'),
stderr=subprocess.STDOUT) > 0:
wait_count += 1
if wait_count > 100:
self.fail("Timeout while waiting for gnome-terminal window")
time.sleep(0.1)
time.sleep(0.5) wait_count = 0
subprocess.check_call(['xdotool', 'search', '--name', window_title, while subprocess.call(['xdotool', 'search', '--name', window_title],
'windowactivate', 'type', 'exit\n']) stdout=open(os.path.devnull, 'w'),
stderr=subprocess.STDOUT) == 0:
wait_count = 0 wait_count += 1
while subprocess.call(['xdotool', 'search', '--name', window_title], if wait_count > 100:
stdout=open(os.path.devnull, 'w'), self.fail("Timeout while waiting for gnome-terminal "
stderr=subprocess.STDOUT) == 0: "termination")
wait_count += 1 time.sleep(0.1)
if wait_count > 100: finally:
self.fail("Timeout while waiting for gnome-terminal " p.stdin.close()
"termination")
time.sleep(0.1)
p.stdin.close()
wait_count = 0 wait_count = 0
while dispvm.is_running(): while dispvm.is_running():