Commit 815bf6d5 authored by Iustin Pop's avatar Iustin Pop
Browse files

Fix utils unittest TestRunCmd.testTimeoutKill

Currently the test executes "/bin/sh -c 'trap "" TERM …" via the shell,
which means we have two shells involved (the parent one and the child
one, which does the trap). For some weird reason, this works for older
OSes: the first shell exec's the second one, whereas on squeeze it forks
and only then exec. This might be due to changes in Python or bash or

In any case, the point is that this is a hacky way to call a shell, so
we change this to simply execute the desired shell directly, without any
intermediate shells (I don't understand why it was written as such
Signed-off-by: default avatarIustin Pop <>
Reviewed-by: default avatarRené Nussbaumer <>
parent fd254195
......@@ -296,10 +296,9 @@ class TestRunCmd(testutils.GanetiTestCase):
self.assertEqual(result.exit_code, 0)
def testTimeoutKill(self):
cmd = "trap '' TERM; read < %s" % self.fifo_file
cmd = ["/bin/sh", "-c", "trap '' TERM; read < %s" % self.fifo_file]
timeout = 0.2
strcmd = utils.ShellQuoteArgs(["/bin/sh", "-c", cmd])
out, err, status, ta = utils._RunCmdPipe(strcmd, {}, True, "/", False,
out, err, status, ta = utils._RunCmdPipe(cmd, {}, False, "/", False,
timeout, _linger_timeout=0.2)
self.assert_(status < 0)
self.assertEqual(-status, signal.SIGKILL)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment