Документация для проекта taker
This project is maintained by taker-project
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>
--list показывает все опции--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
--add создает генератор с именем файла <filename> и параметрами <parameters...> Параметры указываются по типу <name>:<type>[=<value>] (<type> может быть bool, int, float, char, string, bool[], int[], float[], char[], string[]). Если задано [=<value>], то оно становится значением по умолчанию для этого параметра.--del удаляет генератор.--add-param добавляет к генератору параметры <parameters...>, разделенные пробелом. Параметры также указываются по типу <name>:<type>[=<value>].--del-param удаляет параметры генератора (<parameters...>— список имен удаляемых параметров).--build компилирует генераторы (если <filename...> не задан, компилирует все генераторы).--clean чистит папку с генераторами от лишнего.take checker --new
take checker --default <checker-name>
take checker --test
take checker --build
take checker --clean
--new создает новый чекер.--default создает стандартный чекер (из тех, которые лежат в примерах testlib).--test запускает тесты для чекера.--build собирает чекер.--clean чистит take validator --new
take validator --del
take validator --test
take validator --build
take validator --clean
--new создает новый валидатор.--del убирает валидатор.--test запускает тесты для валидатора.--build собирает валидатор.--clean чистит папку с валидаторами от лишнего.take testsets --add <testset>
take testsets --del <testset>
take testsets --status [<testsets...>]
take testsets --enable [<testsets...>]
take testsets --disable [<testsets...>]
take testsets --list
--add создает новый тестсет.--del удаляет тестсет.--status показывает статус тестсетов (будут ли эти тестсеты использоваться при сборке пакетов). Если тестсетов не указано, показывает статус всех.--enable включает тестсеты для сборки пакетов. Если тестсетов не указано, будут включены все.--disable действует похоже на --enable, но выключает.--list показывает все доступные тестсеты.take tests --gen <tests> [ -j <process-count> ] [-v <level>]
take tests --degen <tests>
take tests --clean
<level> обозначает уровень проверок при генерации тестов (если не задано, то уровень равен 1):
<tests> задаются в виде набора аргументов, разделенных пробелом. Каждый аргумент задается одним из двух способов
testset:testnumstestsettestset обозначает имя тестсета, testnums— номера тестов в формате вроде 1,2,3..15,18,24..26,29. Запись в форме без testnums обозначает генерацию всех тестов. Запись testset: не генерит ничего (надо ли это кому-нибудь?)
--gen генерирует заданные тесты (если тесты не заданы, то генерирует все тесты включенных тестсетов).--degen чистит каталог от заданных тестов (если тесты не заданы, удаляет все тесты включенных тестсетов).--clean выполняет полную очистку каталога с тестами от лишнего.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 (без никаких других тегов), если это авторское решение.
--add добавляет решение с тэгами <tags>. -l позволяет указать язык, иначе он будет выбран автоматически. Возможные языки смотрите в описании make compile.--del удаляет решение.--get-tags получает тэги решения.--set-tags устанавливает тэги для решения.--run запускает решения <filenames...> на тестах <tests>. <tests> задаются так же, как описано выше; ключ -t разделяет решения и тесты. Если ключа -t нет, тестируется на всех тестах включенных тестсетов. Если есть ключ -t, а тестов нет, то тестить ни на каких тестах (надо ли это кому нибудь?)take statement --add <lang>
take statement --del <lang>
take statement --build [<lang>] [ -j <process-count> ]
take statement --clean
--add добавляет условие на языке <lang>.--del удаляет условие на языке <lang>.--build собирает условие на языке <lang> (если не указано, то на всех).--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> настраивают это:
i— не проверять на целостность (по умолчанию)I— проверять на целостностьr— не обновлять файлы после выполнения (по умолчанию)R— обновлять файлы после выполнения<command> может быть пустым, тогда ничего не выполняется, кроме, возможно, проверки целостности и обновления файлов.