taker-specs

Документация для проекта taker

This project is maintained by taker-project

Параметры командной строки утилиты take

take run [ -t <time-limit> ] [ -m <memory-limit> ] [ -i <input-file> ] [ -o <output-file> ] <file> <parameters...>

Запуск <file> с параметрами <parameters...>. <time-limit> указывается в миллисекундах, <memory-limit>— в килобайтах. Умеет запускать исполняемые файлы, class-файлы java, py-файлы python и так далее.

take compile <file> [ -t <time-limit> ] [ -m <memory-limit> ] [ -I <include-paths> ] [ -l <language> ]

Компиляция <file>. <time-limit> указывается в миллисекундах, <memory-limit>— в килобайтах. <include-paths>— пути до подключаемых файлов, разделяются символом ;. <language>— язык, если не указан, выбирается автоматически.

Возможные языки: pas.fpc, pas.objfpc, pas.dpr, c.gcc, c.gcc11, cpp.g++, cpp.g++11, cpp.g++14, cpp.g++17, java.8, py.2, py.3.

take create <dir-name> [ -i ]

Создает новую задачу в папке <dir-name>. Ключ -i предполагает создание не минимальной задачи, а с интерактивной настройкой некоторых параметров.

take option --list
take option --set <name> <value>

Поддерживаемые опции смотреть в main-config.md.

take const --list
take const --set <name>:<type>=<value>
take const --unset <name>

Работает аналогично take option, но служит для установки ограничений/прочих универсальных констант. <type> может быть bool, int, float, char, string, bool[], int[], float[], char[], string[]. Как задавать значения, смотрите configs.md.
Ключ --unset удаляет константу.

take gen --add <filename> <parameters...>
take gen --del <filename>
take gen --add-param <filename> <parameters...>
take gen --del-param <filename> <parameters...>
take gen --build [<filenames...>] [ -j <process-count> ]
take gen --clean

take checker --new
take checker --default <checker-name>
take checker --test
take checker --build
take checker --clean

take validator --new
take validator --del
take validator --test
take validator --build
take validator --clean

take testsets --add <testset>
take testsets --del <testset>
take testsets --status [<testsets...>]
take testsets --enable [<testsets...>]
take testsets --disable [<testsets...>]
take testsets --list

take tests --gen <tests> [ -j <process-count> ] [-v <level>]
take tests --degen <tests>
take tests --clean

<level> обозначает уровень проверок при генерации тестов (если не задано, то уровень равен 1):

<tests> задаются в виде набора аргументов, разделенных пробелом. Каждый аргумент задается одним из двух способов

testset обозначает имя тестсета, testnums— номера тестов в формате вроде 1,2,3..15,18,24..26,29. Запись в форме без testnums обозначает генерацию всех тестов. Запись testset: не генерит ничего (надо ли это кому-нибудь?)

take solution --add <filename> <tags> [ -l <language> ]
take solution --del <filename>
take solution --get-tags <filename>
take solution --set-tags <filename> <tags>
take solution --run <filenames...> [ -t <tests> ]

<tags>— какие вердикты должно получать решение (через запятую). Например, WA,RE,AC (поддерживаются AC, WA, PE, TL, ML, RE). Либо MAIN (без никаких других тегов), если это авторское решение.

take statement --add <lang>
take statement --del <lang>
take statement --build [<lang>] [ -j <process-count> ]
take statement --clean

<lang>— (пока что) один из en, ru

take stress <filename> [ -j <process-count> ]

Запускает стресс-тест с названием файла конфигурации <filename>.

take refresh

Обновляет makefil‘ы и прочее из конфигов.

take verify [ -j <process-count> ]

Верификация задачи (прогон всех решений на соответствие тегам, валидаторов, чекеров по авторским тестам). По сути, аналогично take build [ -j <process-count> ] -v.

take build [ -j <process-count> ] [ -v ]

Сборка задачи полностью. Ключ -v запускает дополнительно верификацию.

take export [ --tester | --polygon ]

Экспорт пакета с задачей. --tester— для Тестера, --polygon— в пакет, похожий на пакет Polygon.

take clean

Очистка каталога задачи от лишнего.

take !internal <command>

Внутренние команды, предназначенные для вызова внутри makefile‘ов. Возможно, стоит защититься от непосредственного запуска этих команд (например, требовать установку какой-либо переменной среды, которую мы будем ставить при запуске make). Поддерживаемые команды:

make-constraints— генерирует файл constraints.hpp.

run-script <testset>— запускает script.py для заданного тестсета.

do-test <testset> <test> [ -v <level> ]— запускает генерацию теста <test> из тестсета <testset>. Про <level> смотрите выше.

exec -<flags> <command>— выполнить любую другую команду taker, возможно, без проверки на целостность и обновления makefil‘ов. <flags> настраивают это:

<command> может быть пустым, тогда ничего не выполняется, кроме, возможно, проверки целостности и обновления файлов.