Revert "Merge pull request #560 from utapyngo/logical-cpu-count"

This reverts commit 0094b29a14, reversing
changes made to c6255faad4.
This commit is contained in:
Bruno Oliveira
2020-08-24 14:50:36 -03:00
parent 1d08799c82
commit e469fc7b80
3 changed files with 34 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
from setuptools import setup, find_packages
install_requires = ["execnet>=1.1", "psutil>=3.0.0", "pytest>=6.0.0", "pytest-forked"]
install_requires = ["execnet>=1.1", "pytest>=6.0.0", "pytest-forked"]
with open("README.rst") as f:

View File

@@ -1,12 +1,31 @@
import os
import uuid
import psutil
import py
import pytest
def auto_detect_cpus():
return psutil.cpu_count(logical=False) or psutil.cpu_count() or 1
try:
from os import sched_getaffinity
except ImportError:
if os.environ.get("TRAVIS") == "true":
# workaround https://bitbucket.org/pypy/pypy/issues/2375
return 2
try:
from os import cpu_count
except ImportError:
from multiprocessing import cpu_count
else:
def cpu_count():
return len(sched_getaffinity(0))
try:
n = cpu_count()
except NotImplementedError:
return 1
return n if n else 1
class AutoInt(int):

View File

@@ -35,10 +35,17 @@ def test_dist_options(testdir):
def test_auto_detect_cpus(testdir, monkeypatch):
import psutil
import os
from xdist.plugin import pytest_cmdline_main as check_options
monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: 99)
if hasattr(os, "sched_getaffinity"):
monkeypatch.setattr(os, "sched_getaffinity", lambda _pid: set(range(99)))
elif hasattr(os, "cpu_count"):
monkeypatch.setattr(os, "cpu_count", lambda: 99)
else:
import multiprocessing
monkeypatch.setattr(multiprocessing, "cpu_count", lambda: 99)
config = testdir.parseconfigure("-n2")
assert config.getoption("numprocesses") == 2
@@ -52,9 +59,10 @@ def test_auto_detect_cpus(testdir, monkeypatch):
assert config.getoption("numprocesses") == 0
assert config.getoption("dist") == "no"
monkeypatch.setattr(psutil, "cpu_count", lambda logical=True: None)
monkeypatch.delattr(os, "sched_getaffinity", raising=False)
monkeypatch.setenv("TRAVIS", "true")
config = testdir.parseconfigure("-nauto")
assert config.getoption("numprocesses") == 1
assert config.getoption("numprocesses") == 2
def test_boxed_with_collect_only(testdir):