Ensure cat process is terminated

per bug report we should be terminating that "cat" subprocess at the
end of test_KillFilter.

switching from kill to terminate/wait, add try/finally to make sure we
are ok even if an exception is thrown in between

fixes bug #1079629

Change-Id: I8ca767402a2bd992d4b9579615375eda0c75cb6b
This commit is contained in:
Davanum Srinivas
2012-11-16 09:43:55 -05:00
parent 77e48a2994
commit 36f23bbe39

View File

@@ -69,6 +69,7 @@ class RootwrapTestCase(test.TestCase):
p = subprocess.Popen(["cat"], stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
try:
f = filters.KillFilter("root", "/bin/cat", "-9", "-HUP")
f2 = filters.KillFilter("root", "/usr/bin/cat", "-9", "-HUP")
usercmd = ['kill', '-ALRM', p.pid]
@@ -92,6 +93,10 @@ class RootwrapTestCase(test.TestCase):
usercmd = ['kill', p.pid]
# Providing no signal should work
self.assertTrue(f.match(usercmd) or f2.match(usercmd))
finally:
# Terminate the "cat" process and wait for it to finish
p.terminate()
p.wait()
def test_KillFilter_no_raise(self):
"""Makes sure ValueError from bug 926412 is gone"""