Difference between revisions of "Serve.cfg:problem:disable stderr"

From EjudgeWiki
(Created page with "Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандар...")
 
Line 1: Line 1:
 +
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/<tt>[[serve.cfg:problem:disable_stderr|disable_stderr]]</tt>
 +
 
Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандартный
 
Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандартный
 
поток ошибок (stderr, cerr, System.err...).
 
поток ошибок (stderr, cerr, System.err...).
Line 4: Line 6:
 
По умолчанию вывод тестируемой программы на стандартный поток ошибок игнорируется. Он сохраняется
 
По умолчанию вывод тестируемой программы на стандартный поток ошибок игнорируется. Он сохраняется
 
в протоколе тестирования, но не влияет на вердикт тестирования. Если конфигурационная переменная
 
в протоколе тестирования, но не влияет на вердикт тестирования. Если конфигурационная переменная
disable_stderr установлена в положительное значение, то вывод программы на стандартный поток
+
<tt>disable_stderr</tt> установлена в положительное значение, то вывод программы на стандартный поток
 
ошибок учитывается. Если программа вывела что-либо на стандартный поток ошибок на некотором тесте,
 
ошибок учитывается. Если программа вывела что-либо на стандартный поток ошибок на некотором тесте,
 
то тестируемая программа получает вердикт Presentation error. Вывод программы на стандартный
 
то тестируемая программа получает вердикт Presentation error. Вывод программы на стандартный
Line 12: Line 14:
 
Проверка вывода на стандартный поток ошибок выполняется после:
 
Проверка вывода на стандартный поток ошибок выполняется после:
 
* проверки превышения лимита времени выполнения программы (time-limit exceeded);
 
* проверки превышения лимита времени выполнения программы (time-limit exceeded);
* проверки корректности завершения программы (что программа завершилась не из-за сигнала
+
* проверки корректности завершения программы (что программа завершилась не из-за сигнала и с кодом завершения 0) (run-time error);
и с кодом завершения 0) (run-time error);
 
 
* проверки ограничений по памяти (memory limit exceeded);
 
* проверки ограничений по памяти (memory limit exceeded);
 
* проверки нарушений политики безопасности (security violation).
 
* проверки нарушений политики безопасности (security violation).
  
Конифигурационная переменная disable_stderr может устанавливаться в описании абстрактной
+
Конифигурационная переменная <tt>disable_stderr</tt> может устанавливаться в описании абстрактной
 
задачи, и ее значение будет унаследовано в конкретных задачах. Если конфигурационная переменная
 
задачи, и ее значение будет унаследовано в конкретных задачах. Если конфигурационная переменная
 
установлена в положительное значение в абстрактной задача, но в некоторой конкретной задаче
 
установлена в положительное значение в абстрактной задача, но в некоторой конкретной задаче
Line 27: Line 28:
  
 
Для отдельных тестов режим запрета вывода на стандартный поток ошибок может изменяться
 
Для отдельных тестов режим запрета вывода на стандартный поток ошибок может изменяться
с помощью .inf файла теста. Параметр disable_stderr в .inf файле управляет режимом запрета
+
с помощью .inf-файла теста. Параметр <tt>disable_stderr</tt> в .inf-файле управляет режимом запрета
вывода для конкретного теста, а параметр check_stderr - режимом сравнения вывода с
+
вывода для конкретного теста, а параметр <tt>check_stderr</tt> - режимом сравнения вывода с
 
эталонным ответом.
 
эталонным ответом.

Revision as of 08:11, 27 December 2011

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Конфигурационные параметры задач/disable_stderr

Данная конфигурационная переменная позволяет запретить вывод тестируемой программы на стандартный поток ошибок (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 - режимом сравнения вывода с эталонным ответом.