Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
This commit is contained in:
Casey Carter 2024-10-24 08:47:41 -07:00 коммит произвёл GitHub
Родитель 7b199b235a
Коммит 27973ad9e6
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 22 добавлений и 0 удалений

Просмотреть файл

@ -36,6 +36,24 @@ class AddRunPLNotags(ConfigAction):
return 'exclude run.pl tags {}'.format(str(self._taglist)) return 'exclude run.pl tags {}'.format(str(self._taglist))
def beNice(prio: str) -> list[ConfigAction]:
"""
Set the process priority to run tests with.
"""
try:
import psutil
priority_map = {
'normal': psutil.NORMAL_PRIORITY_CLASS,
'low': psutil.BELOW_NORMAL_PRIORITY_CLASS,
'idle': psutil.IDLE_PRIORITY_CLASS,
}
psutil.Process().nice(priority_map[prio])
except ImportError:
import sys
print(f'NOTE: Module "psutil" is not installed, so the priority setting "{prio}" has no effect.', file=sys.stderr)
return []
def getDefaultParameters(config, litConfig): def getDefaultParameters(config, litConfig):
DEFAULT_PARAMETERS = [ DEFAULT_PARAMETERS = [
Parameter(name='long_tests', choices=[True, False], type=bool, default=True, Parameter(name='long_tests', choices=[True, False], type=bool, default=True,
@ -47,6 +65,10 @@ def getDefaultParameters(config, litConfig):
Parameter(name="notags", type=list, default=[], Parameter(name="notags", type=list, default=[],
help="Comma-separated list of run.pl tags to exclude tests", help="Comma-separated list of run.pl tags to exclude tests",
actions=lambda tags: [AddRunPLNotags(tags)]), actions=lambda tags: [AddRunPLNotags(tags)]),
Parameter(name="priority", choices=["idle", "low", "normal"], default="idle", type=str,
help='Process priority to run tests with: "idle" (the default), "low", or "normal". ' +
'Module "psutil" must be installed for this to have any effect.',
actions=lambda prio: beNice(prio)),
] ]
return DEFAULT_PARAMETERS return DEFAULT_PARAMETERS