gh-109649: Fix test_os.test_process_cpu_count_affinity() (#111689)

When CPUs are isolated on Linux, os.process_cpu_count() is smaller
than os.cpu_count(). Fix the test for this case.

Example with "isolcpus=5,11 rcu_nocbs=5,11" options passed to a Linux
command line to isolated two logical CPUs:

$ ./python -c 'import os; print(os.process_cpu_count(), "/", os.cpu_count())'
10 / 12
This commit is contained in:
Victor Stinner 2023-11-04 00:53:18 +01:00 committed by GitHub
parent f21b23058e
commit 244e37b22a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 4 deletions

View File

@ -4342,8 +4342,8 @@ def test_process_cpu_count(self):
@unittest.skipUnless(hasattr(os, 'sched_setaffinity'),
"don't have sched affinity support")
def test_process_cpu_count_affinity(self):
ncpu = os.cpu_count()
if ncpu is None:
affinity1 = os.process_cpu_count()
if affinity1 is None:
self.skipTest("Could not determine the number of CPUs")
# Disable one CPU
@ -4356,8 +4356,8 @@ def test_process_cpu_count_affinity(self):
os.sched_setaffinity(0, mask)
# test process_cpu_count()
affinity = os.process_cpu_count()
self.assertEqual(affinity, ncpu - 1)
affinity2 = os.process_cpu_count()
self.assertEqual(affinity2, affinity1 - 1)
# FD inheritance check is only useful for systems with process support.