Style archive
Навигация: Главная страница/Система ejudge/Использование/Виды задач/Задача на написание тестов/Программа style_archive
Программа style_archive предназначена для проверки правильности структуры архива с тестами, сдаваемого в случае задач на написание тестов. Программа входит в состав системы ejudge. Параметры проверки архива могут задаваться в командной строке и в переменных окружения. Параметры, заданные в командной строке, переопределяют параметры, заданные в переменных окружения.
Программа в настоящее время поддерживает архивы, основанные на формате TAR с последующим сжатием (.tar.gz, .tar.bz2), а также ZIP-архивы. Для поддержки ZIP-архивов на сервере должна быть установлена программа 7z.
Все диагностические сообщения выводятся на стандартный поток ошибок. В случае, если архив был отвергнут программой, диагностические сообщения могут использоваться для обнаружения и устранения причины ошибки. Если архив оказался корректным, то на стандартный поток вывода выводится содержимое файла 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. |
-r | Позволяет игнорировать отсутствие в архиве файла README. |
-. | Позволяет игнорировать файлы, имена которых начинаются с символа "точка" (скрытые файлы). |
-m | Включить режим проверки архива для сборки. По умолчанию включен режим проверки архива тестов. |
-p | Имя каталога с файлами для сборки, который должен находится в архиве. Значение по умолчанию - solution. |
-s | Название скрипта для сборки, который должен находиться в архиве. Значение по умолчанию - Makefile. |
В параметрах, требующих размер (обозначается 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. |
EJ_NO_README=1 | Позволяет игнорировать отсутствие в архиве файла README. См. параметр командной строки -r. |
EJ_IGNORE_DOT_FILES=1 | Позволяет игнорировать отсутствие в архиве файлы, имена которых начинаются с символа "точка" (скрытые файлы). См. параметр командной строки -.. |
В переменных окружения, требующих размер (обозначается 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 |
zip | Архив zip | zip -r file.zip tests | 7z x file.zip |