https://ejudge.ru/wiki/index.php?title=Special:NewPages&feed=atom&hideredirs=1&limit=50&offset=&namespace=0&username=&tagfilter=&size-mode=max&size=0EjudgeWiki - New pages [en]2024-03-28T23:36:56ZFrom EjudgeWikiMediaWiki 1.31.0https://ejudge.ru/wiki/index.php/API:priv:get-userAPI:priv:get-user2024-02-08T23:48:39Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Использование/API/API:priv:get-user|get-user (привиле..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[API]]/[[API:priv:get-user|get-user (привилегированный)]]</div>Cherhttps://ejudge.ru/wiki/index.php/Serve.cfg:problem:standard_valuerServe.cfg:problem:standard valuer2024-01-27T17:42:06Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/se..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/<code>[[Serve.cfg:problem:standard_valuer|standard_valuer]]</code><br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.13.0Изменения в версии 3.13.02024-01-27T17:38:57Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.13.0]]<br />
<br />
Время выхода: TBA г.<br />
<br />
[[Изменения в версии 3.12.0|Предыдущая версия]]</div>Cherhttps://ejudge.ru/wiki/index.php/Telegram_bot:_%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8FTelegram bot: получение пароля2024-01-02T20:42:49Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Бот для telegram]]/[[Telegram bot: получение пароля|Получение пароля]]<br />
<br />
При массовом централизованном создании аккаунтов, например,<br />
при создании аккаунтов для курса, когда требуется создать<br />
50 - 500 аккаунтов, выдача логинов и паролей участникам,<br />
а также последующее восстановление пароля при его потере,<br />
представляет собой некоторую сложность.<br />
<br />
Одним из каналов выдачи логина и пароля может быть Telegram.<br />
<br />
Получить одноразовый пароль для входа можно с помощью<br />
команды <code>/password</code>. Пользователь должен будет<br />
указать некоторую проверочную информацию, после чего<br />
ему будет отправлен логин и пароль.<br />
Рекомендуется при таком способе выдачи пароля<br />
назначать обязательную смену пароля при первом входе<br />
с помощью атрибута <code>[[contest.xml:force_password_change|force_password_change]]</code> в конфигурационном файле турнира [[contest.xml]].<br />
<br />
TODO: доработать его конфигурируемость и безопасность.<br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/Telegram_bot:_%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D0%BD%D0%B0_%D1%82%D1%83%D1%80%D0%BD%D0%B8%D1%80Telegram bot: регистрация на турнир2024-01-02T20:42:11Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Бот для telegram]]/[[Telegram bot: регистрация на турнир|Регистрация на турнир]]<br />
<br />
Регистрация в ejudge с помощью Telegram-бота позволяет пользователям<br />
создавать аккаунты в ejudge, привязанные к Telegram-аккаунтам пользователя,<br />
и регистрировать эти аккаунты на турниры. Telegram выполняет роль<br />
аккаунта e-mail в традиционной модели создания аккаунтов.<br />
<br />
Регистрацию с помощью Telegram-бота можно использовать, если требуется<br />
разрешить свободную регистрацию пользователей, и при этом не<br />
настраивать<br />
[[Аутентификация с помощью OAUTH2|аутентификацию OAUTH2]]<br />
или исходящий e-mail на сервере.<br />
<br />
Чтобы поддерживалась регистрация с помощью Telegram-бота должны быть<br />
выполнены следующие условия:<br />
<br />
* Должен быть [[Telegram bot: настройка файла ejudge.xml|настроен бот Telegram]].<br />
* В ejudge должна быть глобально разрешена возможность создавать аккаунты с помощью Telegram-бота с помощью атрибута <code>[[ejudge.xml:config:enable_telegram_registration|enable_telegram_registration]]</code> в файле <code>[[ejudge.xml]]</code>.<br />
* В нужных турнирах должна быть разрешена возможность регистрироваться на турнир с помощью Telegram-бота с помощью атрибута <code>[[contest.xml:enable_telegram_registration|enable_telegram_registration]]</code> в конфигурационном файле турнира [[contest.xml]].<br />
* Турнир не должен быть [[contest.xml:closed|закрыт]].<br />
* Не должен закончиться [[contest.xml:registration_deadline|дедлайн регистрации]].<br />
<br />
Чтобы зарегистрироваться в ejudge на турнир пользователь должен открыть<br />
чат с настроенным ботом ejudge и ввести команду <code>/register</code>.<br />
Появится меню выбора турниров для регистрации, после чего<br />
при необходимости будет создан новый аккаунт и в Telegram<br />
пользователю будут отправлены логин и пароль от аккаунта и ссылка<br />
для дальнейшей регистрации на турнир.<br />
<br />
Логины, создаваемые при такой регистрации, имеют вид<br />
<code>u</code><i>ID</i><code>@tl</code>, где <i>ID</i> &mdash;<br />
это идентификатор пользователя (положительное целое число)<br />
в Telegram.<br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8_%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2Программы генерации тестов2024-01-02T18:21:44Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Программы генерации тестов]]<br />
<br />
Программа генерации тестовых данных на лету используется<br />
в [[Динамические задачи|динамических задачах]], то есть в задачах,<br />
условие и тесты для которых генерируются индивидуально<br />
для каждого участника турнира на лету. Программа запускается в начале<br />
тестирования посылки участника и должна сгенерировать все файлы,<br />
необходимые для тестирования, то есть файлы входных данных,<br />
файлы с эталонным ответом, .inf-файлы для всех тестов за один запуск.<br />
<br />
Имя программы задаётся в конфигурационном параметре задачи<br />
<code>[[Serve.cfg:problem:test_generator_cmd|test_generator_cmd]]</code>.<br />
<br />
Программе генерации тестовых данных не передаётся никаких<br />
аргументов командной строки. Она должна сгенерировать все файлы<br />
в текущем каталоге.<br />
<br />
Программе передаются стандартные<br />
[[Переменные окружения для запускаемых программ|переменные окружения]],<br />
а также переменные окружения, заданные в конфигурационном параметре<br />
<code>[[Serve.cfg:problem:test_generator_env|test_generator_env]]</code>.<br />
<br />
Ресурсы для выполнения программы ограничиваются конфигурационными<br />
параметрами<br />
<code>[[serve.cfg:problem:checker_time_limit_ms|checker_time_limit_ms]]</code>,<br />
<code>[[serve.cfg:problem:checker_real_time_limit|checker_real_time_limit]]</code>,<br />
<code>[[serve.cfg:problem:checker_max_vm_size|checker_max_vm_size]]</code>,<br />
<code>[[serve.cfg:problem:checker_max_rss_size|checker_max_rss_size]]</code>,<br />
<code>[[serve.cfg:problem:checker_max_stack_size|checker_max_stack_size]]</code>.<br />
<br />
Программа должна завершиться с кодом 0, в противном случае<br />
тестирование завершается с [[Внутренняя ошибка проверки|ошибкой проверки]].<br />
<br />
Поддерживается с версии [[Изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%B7%D0%B0%D0%B4%D0%B0%D1%87%D0%B8Динамические задачи2024-01-02T09:51:41Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Использование/Динамические задачи Подд..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Динамические задачи]]<br />
<br />
Поддерживается с версии [[Изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BB%D1%8F_%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D0%BC%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BCПеременные окружения для запускаемых программ2024-01-01T23:44:07Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Переменные окружения для запускаемых программ]]<br />
<br />
При запуске [[Программы инициализации|программы инициализации]],<br />
[[Программы-интеракторы|программы-интерактора]],<br />
[[Оценивающие программы|оценивающей программы]],<br />
[[Проверяющие программы|проверяющей программы]],<br />
а также тестируемой программы в режиме<br />
<code>[[Serve.cfg:language:enable_ejudge_env|enable_ejudge_env]]</code><br />
устанавливаются следующие переменные окружения.<br />
<br />
{| class="wikitable" style="margin:auto"<br />
|-<br />
| Имя || Значение || Описание<br />
|-<br />
| <code>EJUDGE</code> || <code>1</code> || устанавливается всегда<br />
|-<br />
| <code>EJUDGE_CHECKER_TOKEN</code> || <code>1</code> || устанавливается в режиме <code>[[serve.cfg:problem:enable_checker_token|enable_checker_token]]</code><br />
|-<br />
| <code>EJUDGE_CONTAINER</code> || <code>1</code> || устанавливается в режиме <code>[[Serve.cfg:problem:enable_container|enable_container]]</code><br />
|-<br />
| <code>EJUDGE_CONTEST_ID</code> || || идентификатор турнира (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_CONTESTS_HOME_DIR</code> || || каталог, в котором размещаются турниры (например, <tt>/home/judges</tt>)<br />
|-<br />
| <code>EJUDGE_INTERACTIVE</code> || <code>1</code> || устанавливается в режиме <code>[[serve.cfg:problem:interactive_valuer|interactive_valuer]]</code><br />
|-<br />
| <code>EJUDGE_LOCAL_DIR</code> || || каталог с рабочими файлами турнира (например, <tt>/var/lib/ejudge</tt>)<br />
|-<br />
| <code>EJUDGE_LOCALE</code> || значение <code>[[serve.cfg:global:checker_locale|checker_locale]]</code> || язык вывода сообщений, например, <code>ru</code><br />
|-<br />
| <code>EJUDGE_MARKED</code> || <code>1</code> || устанавливается в режиме <code>[[Serve.cfg:problem:valuer sets marked|valuer_sets_marked]]</code><br />
|-<br />
| <code>EJUDGE_MAX_SCORE</code> || || максимальный балл за данный тест в режиме <code>[[serve.cfg:problem:scoring_checker|scoring_checker]]</code><br />
|-<br />
| <code>EJUDGE_PREFIX_DIR</code> || || каталог, в который проинсталлирована ejudge (например, <tt>/opt/ejudge</tt>)<br />
|-<br />
| <code>EJUDGE_REJUDGE</code> || <code>1</code> || устанавливается при перетестировании (rejudge) посылки<br />
|-<br />
| <code>EJUDGE_RUN_ID</code> || || идентификатор посылки (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_SCORING_CHECKER</code> || <code>1</code> || устанавливается в режиме <code>[[serve.cfg:problem:scoring_checker|scoring_checker]]</code><br />
|-<br />
| <code>EJUDGE_SERVER_BIN_PATH</code> || || каталог с серверными исполняемыми файлами (например, <tt>/opt/ejudge/libexec/ejudge/bin</tt>)<br />
|-<br />
| <code>EJUDGE_SOURCE_PATH</code> || || путь к файлу с исходным кодом в режиме <code>[[serve.cfg:problem:enable_src_for_testing|enable_src_for_testing]]</code><br />
|-<br />
| <code>EJUDGE_SUID_RUN</code> || <code>1</code> || устанавливается в режиме <code>[[serve.cfg:problem:enable_suid_run|enable_suid_run]]</code> (устаревшее)<br />
|-<br />
| <code>EJUDGE_SUPER_RUN_SERIAL</code> || || устанавливается при параллельном запуске [[ej-super-run]] для 1, 2, 3, ... (считая от 0) инстансов компонента<br />
|-<br />
| <code>EJUDGE_TEST_COUNT</code> || || общее количество тестов в этой задаче (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_TESTLIB_MODE</code> || <code>1</code> || устанавливается в режиме <code>[[serve.cfg:problem:enable_testlib_mode|enable_testlib_mode]]</code><br />
|-<br />
| <code>EJUDGE_TEST_NUM</code> || || номер теста (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_TEST_RANDOM_VALUE</code> || || случайное 64-битное значение в 16-ричной записи. оно сохраняется для всех компонент, отрабатывающих для одной посылки на одном тесте<br />
|-<br />
| <code>EJUDGE_USER_ID</code> || || идентификатор пользователя, который сдал посылку (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_USER_LOGIN</code> || || логин пользователя (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_USER_NAME</code> || || имя пользователя (только в режиме <code>[[serve.cfg:problem:enable_extended_info|enable_extended_info]]</code>)<br />
|-<br />
| <code>EJUDGE_USER_SCORE</code> || <code>1</code> || устанавливается в режиме <code>[[Serve.cfg:global:separate_user_score|separate_user_score]]</code><br />
|}</div>Cherhttps://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.12.1Изменения в версии 3.12.12023-12-29T22:40:54Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Разработка/История версий/Изменения в в..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.12.1]]<br />
<br />
Время выхода: TBA г.<br />
<br />
[[Изменения в версии 3.12.0|Предыдущая версия]]</div>Cherhttps://ejudge.ru/wiki/index.php/Lang:rustLang:rust2023-12-28T23:05:40Z<p>Cher: Created page with "Навигация: Главная страница/Система ejudge/Использование/Поддерживаемые языки прогр..."</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Поддерживаемые языки программирования]]/<code>[[Lang:rust|Rust]]</code></div>Cherhttps://ejudge.ru/wiki/index.php/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B8_3.12.0Изменения в версии 3.12.02023-11-18T12:20:34Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Разработка]]/[[История версий]]/[[Изменения в версии 3.12.0]]<br />
<br />
Время выхода: 29 декабря 2023 г.<br />
<br />
[[Изменения в версии 3.11.0|Предыдущая версия]]<br />
<br />
=== Основные улучшения ===<br />
<br />
* Добавлена поддержка языка [[lang:postgres|PostgresQL]].<br />
* [[serve.cfg:problem:enable_src_for_testing|Реализована возможность]] передать исходный код посылки в проверяющую программу.<br />
* Поддерживаются задачи с [[Динамические задачи|динамической генерацией условий и тестов]].<br />
* Поддерживается эвристическое определение ошибки [[Memory-Limit Exceeded]].<br />
* Поддерживается [[Telegram bot: регистрация на турнир|регистрация на турнир]] и [[Telegram bot: получение пароля|получение пароля для входа]] для уже зарегистрированных пользователей с помощью Telegram-бота.<br />
<br />
Полный список закрытых ошибок и улучшений доступен<br />
[https://github.com/blackav/ejudge/milestone/5?closed=1 здесь].<br />
<br />
=== [[ej-compile]] ===<br />
<br />
Добавлен конфигурационный параметр<br />
<code>[[serve.cfg:language:compiler_container_options|compiler_container_options]]</code>, который позволяет задать настройки контейнеризации<br />
для запуска транслятора данного языка программирования.<br />
Обратите внимание, что параметр<br />
<code>[[serve.cfg:language:container_options|container_options]]</code><br />
применяется для запуска программ, написанных на данном языке<br />
программирования.<br />
<br />
Добавлен конфигурационный параметр языка программирования<br />
<code>[[serve.cfg:language:preserve_line_numbers|preserve_line_numbers]]</code>,<br />
который включает или выключает режим сохранения номеров строк<br />
в программах на скриптовых языках для конкретного языка программирования.<br />
<br />
Добавлена поддержка для языка SQL в реализации [[Lang:postgres|Postgres]]<br />
(см. [https://github.com/blackav/ejudge/issues/222 Issue #222]).<br />
<br />
Для языка [[Lang:rust|Rust]] поддерживается сборка с помощью cargo.<br />
<br />
=== [[ej-contests]] ===<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:plugin_entry_name|plugin_entry_name]]</code>.<br />
Этот параметр позволяет задать имя точки входа в плагин задачи.<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:statement_ignore_ip|statement_ignore_ip]]</code>.<br />
Этот параметр разрешает показ условия задачи без ограничения на<br />
IP-адрес.<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:enable_src_for_testing|enable_src_for_testing]]</code>.<br />
Этот параметр включает передачу исходного кода тестируемой посылки<br />
в программу [[ej-super-run]].<br />
<br />
При просмотре исходного кода посылок, сданных с помощью интеграции<br />
с системами контроля версий, добавлена ссылка на соответствующий<br />
коммит в системе контроля версий<br />
(см. [https://github.com/blackav/ejudge/issues/263 Issue #263]).<br />
<br />
Исправлена ошибка, которая приводила к потере пакетов,<br />
содержащих результаты компиляции или тестирования, если в конфигурационном<br />
файле соответствующего турнира содержалась ошибка,<br />
которая приводила к невозможности загрузки турнира в память<br />
(см. [https://github.com/blackav/ejudge/issues/267 Issue #267]).<br />
<br />
При экспорте архива с посылками добавлено экранирование<br />
"проблемных" символов в названии задачи<br />
(см. [https://github.com/blackav/ejudge/issues/244 Issue #244]).<br />
<br />
Добавлена возможность скачивания "скрытых" посылок<br />
(см. [https://github.com/blackav/ejudge/issues/246 Issue #246]).<br />
<br />
Исправлена ошибка утечки файловых дескрипторов при просмотре<br />
очереди посылок<br />
(см. [https://github.com/blackav/ejudge/issues/266 Issue #266]).<br />
<br />
Исправлена ошибка двойного освобождения памяти<br />
(см. [https://github.com/blackav/ejudge/issues/261 Issue #261]).<br />
<br />
Для посылок в формате Microsoft Office 2007 и выше<br />
правильно определяется mime type<br />
(см. [https://github.com/blackav/ejudge/issues/257 Issue #257]).<br />
<br />
В лог-файл выводится больше информации о действиях<br />
привилегированных пользователей<br />
(см. [https://github.com/blackav/ejudge/issues/255 Issue #255]).<br />
<br />
Исправлена ошибка неправильного значения поля <code>user_score</code><br />
в XML-протоколе тестирования.<br />
(см. [https://github.com/blackav/ejudge/issues/237 Issue #237]).<br />
<br />
Реализована поддержка динамической генерации условия задачи<br />
(см. [https://github.com/blackav/ejudge/issues/231 Issue #231]).<br />
<br />
=== [[ej-jobs]] ===<br />
<br />
Поддерживается регистрация в ejudge и на турнир с помощью Telegram.<br />
Для этого добавлен атрибут<br />
<code>[[ejudge.xml:config:enable_telegram_registration|enable_telegram_registration]]</code> в конфигурационный файл <code>[[ejudge.xml]]</code><br />
и атрибут<br />
<code>[[contest.xml:enable_telegram_registration|enable_telegram_registration]]</code> в конфигурационный файл турнира [[contest.xml]].<br />
<br />
При аутентификации OAUTH или Telegram корректно поддерживаются<br />
свойства <code>user_contest</code><br />
(см. [https://github.com/blackav/ejudge/issues/260 Issue #260]).<br />
<br />
Бот Telegram поддерживает выдачу паролей с помощью команды <code>password</code><br />
(см. [https://github.com/blackav/ejudge/issues/238 Issue #238]).<br />
<br />
=== [[ej-polygon]] ===<br />
<br />
Улучшения импорта из системы polygon<br />
(см. [https://github.com/blackav/ejudge/issues/227 Issue #227]):<br />
<br />
* при импорте создается statement.xml, который включает условие задачи в HTML-формате с помощью iframe<br />
* по умолчанию используется polygon API<br />
* по умолчанию у импортированных задач игнорируется главное решение<br />
* поддерживается импорт задач с правами доступа OWNER<br />
<br />
=== [[ej-suid-container]] ===<br />
<br />
Улучшена поддержка языка java и других jvm-языков. Им для работы<br />
нужно актуальное содержимое каталога <code>/etc/java</code>,<br />
поэтому этот каталог монтируется с хост-системы<br />
(см. [https://github.com/blackav/ejudge/issues/276 Issue #276]).<br />
<br />
Поддерживается эвристическое определение ошибок [[Memory-Limit Exceeded]]<br />
и [[Security Violation]].<br />
<br />
Улучшена изоляция запускаемых решений.<br />
<br />
=== [[ej-super-run]] ===<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:disable_vm_size_limit|disable_vm_size_limit]]</code>.<br />
Этот параметр снимает ограничение на размер виртуального адресного пространства.<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:ignore_term_signal|ignore_term_signal]]</code>.<br />
Этот параметр включает игнорирование аварийного завершения тестируемой<br />
программы по сигналу.<br />
<br />
Добавлен конфигурационный параметр языка программирования<br />
<code>[[serve.cfg:language:enable_ejudge_env|enable_ejudge_env]]</code>.<br />
Этот параметр включает передачу различных параметров тестирования<br />
в тестируемую программу с помощью<br />
[[Переменные окружения для запускаемых программ|переменных окружения]].<br />
<br />
Добавлен конфигурационный параметр языка программирования<br />
<code>[[serve.cfg:language:run_env_file|run_env_file]]</code>.<br />
Этот параметр позволяет задать имя файла с переменными окружения,<br />
которые будут переданы в тестируемую программу.<br />
<br />
Добавлен конфигурационный параметр языка программирования<br />
<code>[[serve.cfg:language:clean_up_cmd|clean_up_cmd]]</code>.<br />
Этот параметр позволяет задать имя программы, которая будет<br />
выполняться после тестирования программы на данном языке,<br />
и задача которой корректно очистить окружение.<br />
<br />
Добавлен конфигурационный параметр языка программирования<br />
<code>[[serve.cfg:language:clean_up_env_file|clean_up_env_file]]</code>.<br />
Этот параметр позволяет задать имя файла с переменными окружения,<br />
которые будут переданы в программу очистки окружения.<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:test_generator_cmd|test_generator_cmd]]</code>.<br />
Он позволяет задать [[Программы генерации тестов|программу для генерации тестовых данных]] "на лету".<br />
<br />
Добавлен конфигурационный параметр задачи<br />
<code>[[serve.cfg:problem:test_generator_env|test_generator_env]]</code>.<br />
Он позволяет задать переменные окружения для<br />
[[Программы генерации тестов|программы генерации тестовых данных]]<br />
"на лету".<br />
<br />
Добавлено эвристическое определение ошибки [[Memory-Limit Exceeded]]<br />
при выполнения программ в контейнере<br />
(см. [https://github.com/blackav/ejudge/issues/221 Issue #221]).<br />
<br />
Исправлена ошибка, заключающаяся в том, что слишком большой<br />
файл стандартного потока вывода или стандартного потока ошибок<br />
не добавлялся в протокол тестирования. Теперь файл обрезается<br />
до максимально допустимого размера<br />
(см. [https://github.com/blackav/ejudge/issues/240 Issue #240]).<br />
<br />
В запускаемые программы передаётся переменная окружения<br />
<code>EJUDGE_SUPER_RUN_SERIAL</code>.<br />
<br />
=== [[ej-super-server]] ===<br />
<br />
При операции "Check contests settings" поддерживается конфигурационный<br />
параметр задачи<br />
<code>[[serve.cfg:problem:problem_dir|problem_dir]]</code>.<br />
Таким образом, эта операция работает, когда задачи не находятся<br />
в каталоге турнира<br />
(см. [https://github.com/blackav/ejudge/issues/265 Issue #265]).<br />
<br />
=== [[.inf-файлы]] ===<br />
<br />
Добавлен параметр <code>ignore_term_signal</code> для игнорирования<br />
аварийного завершения тестируемой программы по сигналу на данном тесте.<br />
<br />
=== [[cmp_binary]] ===<br />
<br />
Новая стандартная проверяющая программа, которая сравнивает<br />
заданный файл в рабочем каталоге тестируемой программы<br />
после её завершения и эталонный файл с ответом.</div>Cherhttps://ejudge.ru/wiki/index.php/Serve.cfg:language:compiler_container_optionsServe.cfg:language:compiler container options2023-11-18T12:18:52Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:language|Конфигурационные параметры языков]]/<code>[[Serve.cfg:language:compiler_container_options|compiler_container_options]]</code><br />
<br />
Эта конфигурационная переменная позволяет задать дополнительные<br />
опции для программы контейнеризации [[ej-suid-container]]<br />
для выполнения компилятора соответствующего языка программирования.<br />
Опция действует только когда<br />
[[Изоляция недоверенных процессов в контейнерах|разрешен запуск компиляторов в контейнере]]. Дополнительные опции дописываются в конец параметра опций<br />
строки запуска контейнера.<br />
<br />
В большинстве случаев для нормальной работы компиляторов<br />
не требуется никаких дополнительных опций для контейнеризации.<br />
<br />
Пример:<br />
<br />
[language]<br />
# ...<br />
compiler_container_options = "mh"<br />
<br />
Обратите внимание, что<br />
<code>[[Serve.cfg:language:container_options|container_options]]</code><br />
действует на программы, скомпилированные данным языком<br />
программирования, а не на компилятор.<br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/Cmp_binaryCmp binary2023-11-18T11:42:21Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Проверяющие программы]]/[[Стандартные проверяющие программы]]/[[cmp_binary]]<br />
<br />
Эта стандартная проверяющая программа предназначена для<br />
проверки результата работы тестируемой программы<br />
в режиме <code>[[serve.cfg:problem:use_info|use_info]]</code><br />
и <code>[[serve.cfg:problem:use_tgz|use_tgz]]</code>.<br />
<br />
Проверяющая программа предназначена для случаев, когда<br />
тестируемой программе передаются аргументы командной строки,<br />
среди которых находится имя файла в рабочем каталоге,<br />
в который тестируемая программа должна записать результат работы.<br />
После завершения работы тестируемой программы данная<br />
проверяющая программа сравнивает файл с результатом работы<br />
тестируемой программы и эталонный файл. Файлы сравниваются побайтово.<br />
<br />
Вывод тестируемой программы на стандартный поток вывода не проверяется.<br />
<br />
Проверяющая программа поддерживает следующие переменные окружения.<br />
Переменные окружения передаются с помощью конфигурационного<br />
параметра задачи<br />
<code>[[serve.cfg:problem:checker_env|checker_env]]</code>.<br />
<br />
* <code>EJ_EXPECT_ARGS</code> &mdash; если эта переменная окружения установлена, в ней передается требуемое количество аргументов командной строки для тестируемой программы.<br />
* <code>EJ_OUTPUT_ARG</code> &mdash; эта переменная должна быть установлена и содержать номер аргумента командной строки (где 1 &mdash; первый аргумент командной строки после имени программы), в котором задаётся имя выходного файла для тестируемой программы.<br />
* <code>EJ_EXPECT_MODE</code> &mdash; если эта переменная установлена, она должна содержать восьмеричное значение с требуемыми правами доступа к выходному файлу.<br />
* <code>EJ_EXPECT_1_BITS</code> &mdash; если эта переменная установлена, она должна содержать восьмеричное значение бит прав доступа, которые должны быть установлены в 1 в правах доступа у выходного файла.<br />
* <code>EJ_EXPECT_0_BITS</code> &mdash; если эта переменная установлена, она должна содержать восьмеричное значение бит прав доступа, которые должны быть сброшены в 0 в правах доступа у выходного файла.<br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.12.0|3.12.0]].</div>Cherhttps://ejudge.ru/wiki/index.php/Serve.cfg:problem:plugin_entry_nameServe.cfg:problem:plugin entry name2023-11-04T13:33:25Z<p>Cher: ...</p>
<hr />
<div>Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Конфигурационные файлы]]/[[serve.cfg]]/[[serve.cfg:problem|Конфигурационные параметры задач]]/<code>[[Serve.cfg:problem:plugin_entry_name|plugin_entry_name]]</code><br />
<br />
С помощью данного конфигурационного параметра можно задать имя<br />
переменной-структуры, являющейся точкой входа в плагин задачи,<br />
который задаётся с помощью<br />
<code>[[serve.cfg:problem:plugin_file|plugin_file]]</code>.<br />
<br />
Например, в случае<br />
[problem]<br />
# ...<br />
plugin_entry_name = "testname"<br />
<br />
Точка входа в плагин задачи должна быть описана в плагине<br />
примерно следующим образом:<br />
<br />
struct problem_plugin_iface plugin_problem_testname =<br />
{<br />
{<br />
sizeof(struct problem_plugin_iface),<br />
EJUDGE_PLUGIN_IFACE_VERSION,<br />
"problem",<br />
"testname",<br />
},<br />
PROBLEM_PLUGIN_IFACE_VERSION,<br />
// ...<br />
<br />
Поддерживается начиная с версии [[изменения в версии 3.12.0|3.12.0]].</div>Cher