Difference between revisions of "Подготовка задачи tests"
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 переменных окружения смотрите ее описание.