PageRenderTime 283ms CodeModel.GetById 141ms app.highlight 3ms RepoModel.GetById 138ms app.codeStats 0ms

/Lib/test/test_wait4.py

http://unladen-swallow.googlecode.com/
Python | 37 lines | 27 code | 6 blank | 4 comment | 4 complexity | a97de02aaa47696bf6c17288a9c4bb2e MD5 | raw file
 1"""This test checks for correct wait4() behavior.
 2"""
 3
 4import os
 5import time
 6from test.fork_wait import ForkWait
 7from test.test_support import TestSkipped, run_unittest, reap_children
 8
 9try:
10    os.fork
11except AttributeError:
12    raise TestSkipped, "os.fork not defined -- skipping test_wait4"
13
14try:
15    os.wait4
16except AttributeError:
17    raise TestSkipped, "os.wait4 not defined -- skipping test_wait4"
18
19class Wait4Test(ForkWait):
20    def wait_impl(self, cpid):
21        for i in range(10):
22            # wait4() shouldn't hang, but some of the buildbots seem to hang
23            # in the forking tests.  This is an attempt to fix the problem.
24            spid, status, rusage = os.wait4(cpid, os.WNOHANG)
25            if spid == cpid:
26                break
27            time.sleep(1.0)
28        self.assertEqual(spid, cpid)
29        self.assertEqual(status, 0, "cause = %d, exit = %d" % (status&0xff, status>>8))
30        self.assertTrue(rusage)
31
32def test_main():
33    run_unittest(Wait4Test)
34    reap_children()
35
36if __name__ == "__main__":
37    test_main()