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 2015-07-23 22:59:48 +01:00 committed by Richard Purdie
parent 7b33ced7d2
commit 46cb3f0d2f
1 changed files with 18 additions and 9 deletions

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