File: test_os_wait.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; awk: 4
file content (43 lines) | stat: -rw-r--r-- 1,279 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Assumes that _resource_cffi is there already
from __future__ import absolute_import
import os
import py
import sys
from pypy.module.test_lib_pypy import test_resource   # side-effect: skip()


from lib_pypy import _pypy_wait

def test_os_wait3():
    wait3 = _pypy_wait.wait3
    exit_status = 0x33
    child = os.fork()
    if child == 0: # in child
        os._exit(exit_status)
    else:
        pid, status, rusage = wait3(0)
        assert child == pid
        assert os.WIFEXITED(status)
        assert os.WEXITSTATUS(status) == exit_status
        assert isinstance(rusage.ru_utime, float)
        assert isinstance(rusage.ru_maxrss, int)

def test_os_wait4():
    wait4 = _pypy_wait.wait4
    exit_status = 0x33
    child = os.fork()
    if child == 0: # in child
        os._exit(exit_status)
    else:
        pid, status, rusage = wait4(child, 0)
        assert child == pid
        assert os.WIFEXITED(status)
        assert os.WEXITSTATUS(status) == exit_status
        assert isinstance(rusage.ru_utime, float)
        assert isinstance(rusage.ru_maxrss, int)

def test_errors():
    # MacOS ignores invalid options
    if sys.platform != 'darwin':
        py.test.raises(OSError, _pypy_wait.wait3, -999)
    py.test.raises(OSError, _pypy_wait.wait4, -999, -999)