Difference between revisions of "Serve.cfg:global:enable run props"

From EjudgeWiki
(...)
(...)
 
Line 19: Line 19:
 
* <code>start_env</code> &mdash; переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;
 
* <code>start_env</code> &mdash; переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;
 
* <code>is_archive</code> &mdash;
 
* <code>is_archive</code> &mdash;
 +
 +
Если <code>is_archive</code> равен <code>true</code>, должен быть указан <code>start_cmd</code>.
 +
 +
Если <code>is_archive</code> не задан или равен <code>false</code>, последним аргументом командной строки
 +
запуска всегда добавляется имя исполняемой запускаемой программы, имя не нужно явно записывать
 +
в <code>start_args</code>.
 +
 +
Если <code>start_args</code> не задан, он формируется автоматически из <code>start_cmd</code>.
 +
 +
Например, скрипт для "компиляции" питон-программ может генерировать следующий JSON:
 +
 +
{
 +
  "start_cmd": "/bin/python3",
 +
  "start_args": [ "/bin/python3", "-s" ]
 +
}
  
 
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].
 
Поддерживается начиная с версии [[изменения в версии 3.13.0|3.13.0]].

Latest revision as of 07:37, 29 December 2024

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/serve.cfg/Глобальные конфигурационные параметры/enable_run_props

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

При включенном enable_run_props компонент ej-compile передаёт скрипту компиляции не два, а три аргумента командной строки:

  • имя файла с исходным кодом;
  • имя файла, в который должен быть записан результат компиляции;
  • имя выходного файла с дополнительными свойствами скомпилированной программы.

Если скрипт компиляции не создал выходной файл со свойствами, это не рассматривается как ошибка, а в дальнейшем скомпилированная программа передаётся на выполнение по обычной схеме.

Файл со свойствами должен быть корректным JSON-файлом с одним объектом со следующими атрибутами:

  • start_cmd — путь к интерпретатору, который должен использоваться для запуска программы на исполнение;
  • start_args — аргументы командной строки для интерпретатора;
  • start_env — переменные окружения, которые должны быть установлены при запуске тестируемой программы на выполнение;
  • is_archive

Если is_archive равен true, должен быть указан start_cmd.

Если is_archive не задан или равен false, последним аргументом командной строки запуска всегда добавляется имя исполняемой запускаемой программы, имя не нужно явно записывать в start_args.

Если start_args не задан, он формируется автоматически из start_cmd.

Например, скрипт для "компиляции" питон-программ может генерировать следующий JSON:

{
  "start_cmd": "/bin/python3",
  "start_args": [ "/bin/python3", "-s" ]
}

Поддерживается начиная с версии 3.13.0.