Serve.cfg:problem:disable stderr

From EjudgeWiki
Revision as of 06:26, 27 December 2011 by Cher (talk | contribs) (Created page with "Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандар...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандартный поток ошибок (stderr, cerr, System.err...).

По умолчанию вывод тестируемой программы на стандартный поток ошибок игнорируется. Он сохраняется в протоколе тестирования, но не влияет на вердикт тестирования. Если конфигурационная переменная disable_stderr установлена в положительное значение, то вывод программы на стандартный поток ошибок учитывается. Если программа вывела что-либо на стандартный поток ошибок на некотором тесте, то тестируемая программа получает вердикт Presentation error. Вывод программы на стандартный поток вывода или в файл (как требуется в условии задачи) не проверяется, тестирующая программа не запускается.

Проверка вывода на стандартный поток ошибок выполняется после:

  • проверки превышения лимита времени выполнения программы (time-limit exceeded);
  • проверки корректности завершения программы (что программа завершилась не из-за сигнала

и с кодом завершения 0) (run-time error);

  • проверки ограничений по памяти (memory limit exceeded);
  • проверки нарушений политики безопасности (security violation).

Конифигурационная переменная disable_stderr может устанавливаться в описании абстрактной задачи, и ее значение будет унаследовано в конкретных задачах. Если конфигурационная переменная установлена в положительное значение в абстрактной задача, но в некоторой конкретной задаче необходимо ее сбросить, то в разделе описания конкретной задачи нужно явно установить ее значение в 0.

[problem]
disable_stderr = 0

Для отдельных тестов режим запрета вывода на стандартный поток ошибок может изменяться с помощью .inf файла теста. Параметр disable_stderr в .inf файле управляет режимом запрета вывода для конкретного теста, а параметр check_stderr - режимом сравнения вывода с эталонным ответом.