Difference between revisions of "Подготовка задачи tests"

From EjudgeWiki
Line 8: Line 8:
  
 
  [problem]
 
  [problem]
  # ... основные параметры задачи ...
+
  # основные параметры задачи ...
 +
# параметры для задач на разработку тестов
 
  type = "tests"
 
  type = "tests"
 
  binary
 
  binary
Line 16: Line 17:
  
 
Параметр [[Serve.cfg:problem:type|<tt>type</tt>]] задает тип задачи как задачу на разработку тестов. Параметр [[Serve.cfg:problem:binary|<tt>binary</tt>]] разрешает прием двоичных файлов в качестве решений. Параметр [[Serve.cfg:problem:enable_language|<tt>enable_language</tt>]] разрешает прием файлов формата <tt>GZIP</tt> в качестве решений.
 
Параметр [[Serve.cfg:problem:type|<tt>type</tt>]] задает тип задачи как задачу на разработку тестов. Параметр [[Serve.cfg:problem:binary|<tt>binary</tt>]] разрешает прием двоичных файлов в качестве решений. Параметр [[Serve.cfg:problem:enable_language|<tt>enable_language</tt>]] разрешает прием файлов формата <tt>GZIP</tt> в качестве решений.
 +
 +
=== Настройка проверки правильности сдаваемого архива ===
 +
 +
Архив, сдаваемый участником на проверку, должен быть проверен на корректность. Необходимо проверить, что файлы в архиве
 +
по отдельности и все в целом удовлетворяют ограничениям на размер и количество файлов, что имена всех файлов заданы корректно,
 +
что в архиве отсутствуют лишние файлы. Эта проверка должна быть выполнена без разархивирования архива в файловую систему во избежание потенциальных дыр в безопасности. Такая проверка выполняется программой [[style_archive]], поставляемой в составе ejudge.
 +
 +
Чтобы включить проверку сдаваемых архивов необходимо добавить в раздел описания задачи определение конфигурационной переменной [[Serve.cfg:problem:style_checker|<tt>style_checker</tt>]].
 +
 +
style_checker_cmd = "@prefix@/libexec/ejudge/checkers/style_archive"
 +
 +
Здесь <tt>@prefix@</tt> будет автоматически заменен на каталог, в который проинсталлирована система ejudge. Параметры проверки архива на целостность программе [[style_archive]] можно передавать либо с помощью командной строки, либо с помощью переменных окружения. В разделе конфигурации задачи можно воспользоваться механизмом передачи параметров с помощью переменных окружения.
 +
 +
Чтобы установить максимальный размер файла в архиве равным 1 килобайт необходимо задать переменную окружения <tt>EJ_MAX_FILE_SIZE</tt>.
 +
 +
style_checker_env = "EJ_MAX_FILE_SIZE=1K"
 +
 +
Чтобы установить максимальное количество тестов (то есть пар файлов c входными данными и с правильным ответом) равным 10 необходимо задать переменую окружения <tt>EJ_MAX_TEST_COUNT</tt>.
 +
 +
style_checker_env = "EJ_MAX_TEST_COUNT=10"
 +
 +
Параметр <tt>style_checker_env</tt> может повторяться в разделе описания задачи несколько раз. Для полного описания поддерживаемых программой [[style_archive]] переменных окружения смотрите [[style_archive|ее описание]].

Revision as of 10:02, 30 June 2010

Навигация: Главная страница/Система ejudge/Использование/Виды задач/Задача на написание тестов/Подготовка задачи

Задачи этого типа являются самыми сложными для подготовки. При описании подготовки таких задач будет предполагаться, что турнир настраивается в альтернативной раскладке файлов, то есть все файлы, относящиеся к задаче, размещаются в одном каталоге.

Начальная настройка конфигурационных файлов

Для задачи на написание тестов должны быть установлены следующие параметры задачи.

[problem]
# основные параметры задачи ...
# параметры для задач на разработку тестов
type = "tests"
binary
enable_language = "application/x-gzip"

Основные параметры задачи — это идентификатор задачи id, короткое название short_name, полное название long_name и, возможно, внутреннее название задачи internal_name.

Параметр type задает тип задачи как задачу на разработку тестов. Параметр binary разрешает прием двоичных файлов в качестве решений. Параметр enable_language разрешает прием файлов формата GZIP в качестве решений.

Настройка проверки правильности сдаваемого архива

Архив, сдаваемый участником на проверку, должен быть проверен на корректность. Необходимо проверить, что файлы в архиве по отдельности и все в целом удовлетворяют ограничениям на размер и количество файлов, что имена всех файлов заданы корректно, что в архиве отсутствуют лишние файлы. Эта проверка должна быть выполнена без разархивирования архива в файловую систему во избежание потенциальных дыр в безопасности. Такая проверка выполняется программой style_archive, поставляемой в составе ejudge.

Чтобы включить проверку сдаваемых архивов необходимо добавить в раздел описания задачи определение конфигурационной переменной style_checker.

style_checker_cmd = "@prefix@/libexec/ejudge/checkers/style_archive"

Здесь @prefix@ будет автоматически заменен на каталог, в который проинсталлирована система ejudge. Параметры проверки архива на целостность программе style_archive можно передавать либо с помощью командной строки, либо с помощью переменных окружения. В разделе конфигурации задачи можно воспользоваться механизмом передачи параметров с помощью переменных окружения.

Чтобы установить максимальный размер файла в архиве равным 1 килобайт необходимо задать переменную окружения EJ_MAX_FILE_SIZE.

style_checker_env = "EJ_MAX_FILE_SIZE=1K"

Чтобы установить максимальное количество тестов (то есть пар файлов c входными данными и с правильным ответом) равным 10 необходимо задать переменую окружения EJ_MAX_TEST_COUNT.

style_checker_env = "EJ_MAX_TEST_COUNT=10"

Параметр style_checker_env может повторяться в разделе описания задачи несколько раз. Для полного описания поддерживаемых программой style_archive переменных окружения смотрите ее описание.