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

Как установить систему, смотрите в руководстве по установке системы.

Выберите корневой каталог для всех файлов одного турнира. Если планируется проводить несколько турниров, каждый из них должен иметь свой корневой каталог. Корневой каталог задаётся в параметре root_dir конфигурационных файлов (master.cfg, judge.cfg, team.cfg, конфигурационные файлы утилит serve, compile, run).

Данный документ ещё не дописан. Вы можете прочитать требования к тестам и проверящим программам, а конфигурацию системы можете построить, исходя из приведённых примеров.

Тесты к задачам

Каталог, в котором находятся тесты для всех задач, задаётся глобальным параметром test_dir. По умолчанию, тесты для конкретной задачи находятся в подкаталоге short_name каталога test_dir, где short_name - это значение соответствующего параметра секции определения задачи.

Тесты для каждой задачи размещаются в отдельном каталоге. Каждый тест хранится в отдельном файле с именем numsuffix, где num - это номер теста, считая от 1, причём номер состоит из трёх цифр, и при необходимости добавляются незначащие нули. suffix - это суффикс файлов с тестами, который можно определить глобальным параметром test_sfx (по умолчанию суффикс отсутствует). Например, если суффикс тестовых файлов .dat, и к задаче даётся 4 теста, имена соответствующих файлов должны быть 001.dat, 002.dat, 003.dat, 004.dat.

Содержимое файлов с тестами произвольное. Они будут подаваться на вход тестируемой программе без изменений. Следует обратить внимание на то, как в тестовых файлах кодируются концы строк: одним символом'\n' (как в Unix), или двумя символами '\r', '\n' (как в DOS и Windows). Borland Pascal не умеет нормально работать с файлами в формате Unix, поэтому, если Borland Pascal является одним из допустимых языков программирования, все файлы тестов должны быть записаны в формате DOS. Если ещё в набор допустимых языков программирования входят и языки для Linux, участники должны быть предупреждены о формате тестовых файлов.

Замечание: в настоящее время в конфигурационных файлах можно задавать параметр is_dos, который определяет, что проверяемая программа должна получать на вход файлы в формате DOS и выдаёт файлы в формате DOS, однако он как следует не тестировался и наверняка не работает.

Проверяющие программы

Каталог, в котором находятся проверяющие программы, задаётся в конфигурационном файле системы глобальным параметром checker_dir (смотрите примеры конфигурационных файлов).

Проверяющая программа для задачи может получать либо два, либо три аргумента в командной строке, в зависимости от параметра use_corr для данной задачи. Если этот параметр не задан или равен 0, проверяющей программе передаётся два аргумента: (1) имя файла, в который проверяемая программа записала результат своей работы, и (2) имя файла, в котором находятся тестовые данные. Если параметр use_corr задан, проверяющей программе передаётся ещё третий параметр - имя файла, в котором находится дополнительная информация для проверяющей программы по данному тесту. Например, этот файл может содержать правильный ответ.

Проверяющая программа может выводить произвольную информацию на стандартный поток вывода или стандартный поток ошибок (весь вывод проверяющей программы будет отражён в протоколе). Результат проверки передаётся специальными кодами завершения программы. Код завершения 0 означает, что тест пройден успешно. Код завершения 4 означает, что проверяющая программа не смогла распознать формат ответа (Presentation error), а код завершения 5 означает, что проверяемая программа выдала неправильный ответ (Wrong answer).

Замечание: проверяющая программа запускается под Linux без участия какого-либо эмулятора. Поэтому она должна быть написана и скомпилирована на языке, который поддерживается Linux. Это значит, что проверяющие программы не могут быть написаны под систему Borland Pascal (по крайней мере до тех пор, пока не появятся компиляторы языка Паскаль, совместимые в должной мере с этим диалектом).


Alexander Chernov