mirror of
https://github.com/python/cpython.git
synced 2024-11-27 03:45:08 +08:00
gh-115596: Fix ProgramPriorityTests in test_os permanently changing the process priority (GH-115610)
This commit is contained in:
parent
437924465d
commit
90dd653a61
@ -3506,23 +3506,22 @@ class ProgramPriorityTests(unittest.TestCase):
|
||||
"""Tests for os.getpriority() and os.setpriority()."""
|
||||
|
||||
def test_set_get_priority(self):
|
||||
|
||||
base = os.getpriority(os.PRIO_PROCESS, os.getpid())
|
||||
os.setpriority(os.PRIO_PROCESS, os.getpid(), base + 1)
|
||||
try:
|
||||
new_prio = os.getpriority(os.PRIO_PROCESS, os.getpid())
|
||||
# nice value cap is 19 for linux and 20 for FreeBSD
|
||||
if base >= 19 and new_prio <= base:
|
||||
raise unittest.SkipTest("unable to reliably test setpriority "
|
||||
"at current nice level of %s" % base)
|
||||
else:
|
||||
self.assertEqual(new_prio, base + 1)
|
||||
finally:
|
||||
try:
|
||||
os.setpriority(os.PRIO_PROCESS, os.getpid(), base)
|
||||
except OSError as err:
|
||||
if err.errno != errno.EACCES:
|
||||
raise
|
||||
code = f"""if 1:
|
||||
import os
|
||||
os.setpriority(os.PRIO_PROCESS, os.getpid(), {base} + 1)
|
||||
print(os.getpriority(os.PRIO_PROCESS, os.getpid()))
|
||||
"""
|
||||
|
||||
# Subprocess inherits the current process' priority.
|
||||
_, out, _ = assert_python_ok("-c", code)
|
||||
new_prio = int(out)
|
||||
# nice value cap is 19 for linux and 20 for FreeBSD
|
||||
if base >= 19 and new_prio <= base:
|
||||
raise unittest.SkipTest("unable to reliably test setpriority "
|
||||
"at current nice level of %s" % base)
|
||||
else:
|
||||
self.assertEqual(new_prio, base + 1)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(os, 'sendfile'), "test needs os.sendfile()")
|
||||
|
@ -0,0 +1,2 @@
|
||||
Fix ``ProgramPriorityTests`` in ``test_os`` permanently changing the process
|
||||
priority.
|
Loading…
Reference in New Issue
Block a user