Различия между версиями 4 и 5
Версия 4 от 2022-08-01 14:44:16
Размер: 2215
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2022-08-01 15:59:31
Размер: 2216
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 13: Строка 13:
В этом случае [[../Test]] всегда пользуется данным модулем для запуска (как минимум в режиме 0) В этом случае [[../Check]] всегда пользуется данным модулем для запуска (как минимум в режиме 0)

PyJudge.Run

Система изоляции запуска. В идеале — кроссплатформенная на питоне (исследовать принципиальную возможность такого подхода). Должна ограничивать:

  • объём потребляемой памяти
  • количество запускаемых процессов
  • время работы
  • запись в файловую систему

Вариант реализации:

  1. Вырожденный запуск, при котором ограничение не проверяются, если оно не выставлено в 0, а если выставлено — считается автоматически нарушенным
  2. Кроссплатформенный запуск, при котором не работают некоторые виды ограничений
  3. Штатный запуск со всеми ограничениями в расчёте на Linux в качестве платформы

В этом случае ../Check всегда пользуется данным модулем для запуска (как минимум в режиме 0)

На входе

Здесь возможно несколько вариантов, зависит от исследования -- FrBrGeorge 2022-08-01 14:42:37

Вариант:

  • Параметры ограничений (объём памяти, количество процессов и т. п.)
  • Запускаемая программа (или каталог, в котором лежит тестируемый модуль)
  • Файл, который необходимо перенаправить этой программе на stdin

На выходе

  • stdout запуска программы (поток или файл, возможны варианты)

  • stderr (поток или файл) и exit status запуска программы

  • (возможно) классификация ошибки (какого ресурса не хватило / само упало)

FrBrGeorge/ActualEducationalTasks/PyJudge/Run (последним исправлял пользователь FrBrGeorge 2022-08-01 15:59:31)