oeqa/selftest/imagefeatures: handle killpg victim not existing

If Pexpect throws an exception it may be because the child has already died, in
which case killpg will fail.  Catch the latter exception silently, and output
the exception from Pexpect.

(From OE-Core rev: 4d777ce9736e91bb560558b691b8025acf784046)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton authored and Richard Purdie committed 2015-07-25 14:41:42 +01:00
1 parent 7b33ced7d2
commit 46cb3f0d2f
1 file changed
+18 -9
+18 -9
View File
@@ -43,9 +43,12 @@ class ImageFeatures(oeSelfTest):
proc_qemu.expect(self.get_ip_patt, timeout=100)
qemu_ip = proc_qemu.match.group('qemu_ip')
proc_qemu.expect('qemux86 login:', timeout=100)
except:
killpg(proc_qemu.pid, signal.SIGTERM)
self.fail('Failed to start qemu.')
except Exception as e:
try:
killpg(proc_qemu.pid, signal.SIGTERM)
except:
pass
self.fail('Failed to start qemu: %s' % e)
# Attempt to ssh with each user into qemu with empty password
for user in [self.root_user, self.test_user]:
@@ -93,9 +96,12 @@ class ImageFeatures(oeSelfTest):
proc_qemu.expect(self.get_ip_patt, timeout=100)
qemu_ip = proc_qemu.match.group('qemu_ip')
proc_qemu.expect('qemux86 login:', timeout=100)
except:
killpg(proc_qemu.pid, signal.SIGTERM)
self.fail('Failed to start qemu.')
except Exception as e:
try:
killpg(proc_qemu.pid, signal.SIGTERM)
except:
pass
self.fail('Failed to start qemu: %s' % e)
# Attempt to ssh with each user into qemu with empty password
for user in [self.root_user, self.test_user]:
@@ -147,9 +153,12 @@ class ImageFeatures(oeSelfTest):
proc_qemu.expect(self.prompt)
proc_qemu.sendline('rpm --version')
proc_qemu.expect(self.prompt)
except:
killpg(proc_qemu.pid, signal.SIGTERM)
self.fail('Failed to boot qemu.')
except Exception as e:
try:
killpg(proc_qemu.pid, signal.SIGTERM)
except:
pass
self.fail('Failed to start qemu: %s' % e)
found_rpm_version = proc_qemu.before