Skip to content

CLI Run

lanrongqi edited this page Feb 9, 2021 · 6 revisions

运行评测

NAME:
   Deer Executor - run code judging

USAGE:
   deer-executor run [command options] <config_file/problem_package> code_file

OPTIONS:
   --no-clean                                         Don't delete session directory after judge (default: false)
   --language value, -l value                         Code language name (default: "auto")
   --debug                                            Print debug log (default: false)
   --benchmark value                                  Start benchmark (default: 0)
   --persistence value, -p value                      Persistent judge result to file (support: gzip, none)
   --compress value                                   Persistent compressor type (default: "gzip")
   --sign, -s                                         Enable digital sign (GPG) (default: false)
   --detail                                           Show test-cases details (default: false)
   --gpg-key value, --key value                       GPG private key file
   --passphrase value, --password value, --pwd value  GPG private key passphrase
   --work-dir value, -w value                         Working dir, using to unpack problem package
   --session-id value                                 setup session id
   --session-root value                               setup session root dir
   --library value                                    library root for special judge, contains "testlib.h" and "bits/stdc++.h" etc. (default: "./lib")
   --log-level value                                  set logs level (debug|info|warn|error)
   --log                                              output logs to stdout (default: false)
   --help, -h                                         show help (default: false)

重要更新v2.1.0版本开始run命令将会输出纯JSON格式的文本结果到Stdout中,便于外部程序调度使用。

参数列表

  • <config_file/problem_package> 题目的配置文件或者是题目数据包文件所在路径
  • code_file 被评测代码文件路径

选项参数说明

  • --no-clean 禁用清理功能。判题机会在每次评测结束后清理临时文件夹,如果你不想清理,带上这个参数即可。一般这个是用于调试的,如果用于归档,请使用--persistence参数对结果数据打包
  • --language 指定一个评测语言,如果不指定,判题机会自动根据文件的后缀去判断
  • --debug 调试模式,暂时没用上
  • --benchmark <次数> 基准测试模式,参数为评测重复次数。此模式自动禁用--no-clean--persistence
  • --persistence <目标文件> 持久化结果文件,会自动将评测结果文件打包到一个文件里
  • --compress gzip 压缩评测结果数据,目前只支持gzip模式
  • --sign 对评测结果数据包进行GPG签名,确保文件不被篡改
  • --gpg-key <GPG私钥文件> 设置GPG私钥文件的地址
  • --passphrase 密码 通过参数告知GPG私钥的密码(如果你在命令行里操作,出于安全考虑建议不要使用这个参数)
  • --detail 在控制台显示每个测试数据的评测详情。正常情况下详情会被删去,确保整洁。(持久化的数据里除外,它们是被完整保存的)
  • --session-id <id号> 设置会话ID,非必须,留空默认会用uuid4
  • --session-root <地址> 设置会话根目录,留空默认会用/tmp,对应的地址是 /tmp/<session-id>,设置后的路径也是这样拼接的。
  • --work-dir <地址> 设置评测工作目录,这个目录下存放了
    • 当使用试题包时,可以指定试题包需要被解压到哪个目录。否则,试题包会被解压到 /tmp/<uuid4> 并在评测结束后自动清理。
    • 当使用配置文件时,可以指定题目数据所在位置,之后用到的测试数据、特判源代码文件等都会通过这个地址去访问。如果不设置,默认是以配置文件所在的目录作为工作目录。
      • **注意:**这个功能是为了支持配置文件problem.json和目录在同一路径下的情况,也能够正常的访问题目。这是因WeJudge 3.x版本对题目数据管理的不统一造成的。
      • 对于deer-executor的problem功能来说,我们强烈建议配置文件和题目数据应该处于同一个目录下,故也就不支持这个参数和功能,请理解。
  • --log 输出评测日志到控制台
  • --log-level value 设置评测日志的输出等级。默认我们认为 DEBUG < INFO < WARN < ERROR。如果你设置了info,则会输出INFO、WARN、ERROR等级的日志,其他情况如此类推。
  • --library <地址> 指定特判程序的头文件和编译引用文件、testlib.h文件等所在的目录,默认是 ./lib

Clone this wiki locally