diff options
author | Brian Schubert <brianm.schubert@gmail.com> | 2024-02-17 16:42:57 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-17 16:42:57 (GMT) |
commit | 90dd653a6122a6c5b4b1fe5abe773c4751e5ca25 (patch) | |
tree | 9550ca6b182cc4b121688ea998bc8d2caf1850c9 | |
parent | 437924465de5cb81988d1e580797b07090c26a28 (diff) | |
download | cpython-90dd653a6122a6c5b4b1fe5abe773c4751e5ca25.zip cpython-90dd653a6122a6c5b4b1fe5abe773c4751e5ca25.tar.gz cpython-90dd653a6122a6c5b4b1fe5abe773c4751e5ca25.tar.bz2 |
gh-115596: Fix ProgramPriorityTests in test_os permanently changing the process priority (GH-115610)
-rw-r--r-- | Lib/test/test_os.py | 31 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Tests/2024-02-17-08-25-01.gh-issue-115596.RGPCrR.rst | 2 |
2 files changed, 17 insertions, 16 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py index ce77849..2372ac4 100644 --- a/Lib/test/test_os.py +++ b/Lib/test/test_os.py @@ -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()") diff --git a/Misc/NEWS.d/next/Tests/2024-02-17-08-25-01.gh-issue-115596.RGPCrR.rst b/Misc/NEWS.d/next/Tests/2024-02-17-08-25-01.gh-issue-115596.RGPCrR.rst new file mode 100644 index 0000000..2bcb8b9 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2024-02-17-08-25-01.gh-issue-115596.RGPCrR.rst @@ -0,0 +1,2 @@ +Fix ``ProgramPriorityTests`` in ``test_os`` permanently changing the process +priority. |