Skip to content

Commit

Permalink
pythongh-115596: Fix ProgramPriorityTests in test_os permanently chan…
Browse files Browse the repository at this point in the history
…ging the process priority (pythonGH-115610)
  • Loading branch information
brianschubert authored and diegorusso committed Apr 17, 2024
1 parent b81dcaf commit 2504b68
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 16 deletions.
31 changes: 15 additions & 16 deletions Lib/test/test_os.py
Expand Up @@ -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()")
Expand Down
@@ -0,0 +1,2 @@
Fix ``ProgramPriorityTests`` in ``test_os`` permanently changing the process
priority.

0 comments on commit 2504b68

Please sign in to comment.