Style archive

From EjudgeWiki
Revision as of 07:51, 1 July 2010 by Cher (talk | contribs) (Переменные окружения)

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

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

Программа в настоящее время поддерживает только архивы, основанные на формате TAR с последующим сжатием.

Все диагностические сообщения выводятся на стандартный поток ошибок. В случае, если архив был отвергнут программой, диагностические сообщения могут использоваться для обнаружения и устранения причины ошибки. Если архив оказался корректным, то на стандартный поток вывода выводится содержимое файла README и тестовых файлов.

В случае успешного завершения программа завершается с кодом 0. В случае ошибки код завершения — 1.

Использование

Программа используется следующим образом.

style_archive [OPTIONS...] ARCHIVE-NAME

Здесь ARCHIVE-NAME — это путь к файлу проверяемого архива. Программа поддерживает следующие опции командной строки.

-z SZ Позволяет задать максимальный суммарный размер файлов после разархивирования. Если суммарный размер файлов в архиве превосходит указанную величину, архив отвергается. См. также переменную окружения EJ_MAX_ARCHIVE_SIZE. Значение по умолчанию — 1 мегабайт.
-f SZ Позволяет задать максимальный размер одного файла после разархивирования. Если размер какого-либо файла в архиве превосходит указанную величину, архив отвергается. См. также переменную окружения EJ_MAX_FILE_SIZE. Значение по умолчанию — 1 мегабайт.
-n NUM Позволяет задать максимальное число файлов в архиве. Если общее число файлов в архиве превосходит указанную величину, архив отвергается. См. также переменную окружения EJ_MAX_FILE_COUNT. Значение по умолчанию — 128.
-t Включает режим проверки архива с тестами. В этом режиме контролируется количество и правильное именование файлов с тестами.
-c NUM Позволяет задать максимальное число тестов в архиве. Если общее число тестов в архиве превосходит указанную величину, архив отвергается. См. также переменную окружения EJ_MAX_TEST_COUNT. Значение по умолчанию — 99.
-i PAT Позволяет задать шаблон для файлов с тестовыми данными. См. также переменную окружения EJ_INPUT_PATTERN. Значение по умолчанию — %03d.dat.
-o PAT Позволяет задать шаблон для файлов с правильными ответами. См. также переменную окружения EJ_OUTPUT_PATTERN. Значение по умолчанию — %03d.ans.

В параметрах, требующих размер (обозначается SZ), допускается использование суффиксов K, M или G, обозначающих масштабные множители для килобайта, мегабайта и гигабайта соответственно.

Переменные окружения

Поддерживаются следующие переменные окружения.

EJ_MAX_ARCHIVE_SIZE=SZ Позволяет задать максимальный суммарный размер файлов после разархивирования. См. параметр командной строки -z.
EJ_MAX_FILE_SIZE=SZ Позволяет задать максимальный размер файла после разархивирования. См. параметр командной строки -f.
EJ_MAX_FILE_COUNT=NUM Позволяет задать максимальное число файлов в архиве. См. параметр командной строки -n.
EJ_TESTS_MODE=1 Включает режим проверки архива с тестами. См. параметр командной строки -t.
EJ_MAX_TEST_COUNT=NUM Позволяет задать максимальное число тестов в архиве. См. параметр командной строки -c.
EJ_INPUT_PATTERN=PAT Позволяет задать шаблон для файлов с тестовыми данными. См. параметр командной строки -i.
EJ_OUTPUT_PATTERN=PAT Позволяет задать шаблон для файлов с ответами к тестовым данным. См. параметр командной строки -o.

В переменных окружения, требующих размер (обозначается SZ), допускается использование суффиксов K, M или G, обозначающих масштабные множители для килобайта, мегабайта и гигабайта соответственно.

Поддерживаемые форматы архивов

Формат Описание Команда создания Команда разархивирования
tar Несжатый архив tar cf file.tar tests tar xf file.tar
tgz Архив tar, сжатый программой gzip tar cfz file.tgz tests tar xf file.tgz
tbz Архив tar, сжатый программой bzip2 tar cfj file.tgz tests tar xf file.tgz