Auto Judger for BUAA-SE-OOP Course (2021 Spring)
见 GitHub 中的 Releases,下载对应版本即可。目前提供 Windows, Linux, MacOS(Intel 架构)的可执行文件。如有 ARM 架构版本的需要或程序无法正常运行,请联系我解决。
统一使用 UTF-8 编码。
评测机使用的编译命令与执行命令如下,请确认你的程序能通过如下命令成功编译。
javac -encoding UTF-8 -cp folderName/src -d folderName/out folderName/src/*.java # 编译
java -classpath folderName/out Test # 执行
请严格按照如下的目录层级与命名准备好待测文件:
patpat.exe
(Mac 与 Linux 用户的程序无后缀)test
judge.yaml
(用于告知评测机需要测哪些测试用例,编写方法见下)testcase1.yaml
testcase2.yaml
- ...
1
(第几次作业)-18373722
(学号)-朱英豪
(姓名)src
Test.java
(程序运行的主入口)- 其余
*.java
- (有无
*.class
没有关系,评测机会重新编译)
运行方式: 在 terminal(如 PowerShell)中运行如下命令:
注:对于 Mac 与 Linux 用户,需要首先chmod +x patpat
,使评测机程序具有可执行权限。
./patpat stu -judge 1-18373722-朱英豪 # 请修改为自己的相关信息
./patpat ta -judge 1-18373722-朱英豪 -pwd your_pwd -tag 随意打一些文字,可以用来标注第几次尝试 # 无限重测命令
评测结果: 见生成的$testcase$_result.md
。(其与该patpat
程序在同级目录)
离线模式: 仅在 stu 模式下有效,添加参数 -online=0
- 首先需要注册账号 (sid 为您的学号)
./patpat reg -sid your_sid -pwd your_password
# 如./patpat reg -sid 18373722 -pwd buaa-se-oop
注:账号创建后,密码不支持修改。如需修改,请联系我。
- 查询命令:
./patpat query -sid your_sid -pwd your_password
学号及对应的密码正确后即可显示截至到目前的所有评测结果。
tests: [testcase1.yaml, testcase2.yaml] # 可有更多,这是个列表
# 请将本judge.yaml置于test目录下
注:在自测时testcase
的名称,需要与test
目录下的testcase
文件名相一致。
1
(第几次作业)-18373722
(学号)-朱英豪
(姓名)- src
Test.java
(程序运行的主入口)- 其余
*.java
- src
将上述文件夹压缩为zip
格式后,上传至云平台。
注:请务必反复确认文件的命名,如有误将无法评测。
数据库的配置在mysql.yaml
中,参考如下:
host: xx.xx.xx.xx
port: xxx
username: xxx
password: xxx
database: xxx
交叉编译:
见Makefile
。一键交叉编译可使用make
。
样例:
name: testcase
data:
- # 单行输入,无输出
- SUDO
- # 单行输入,单行输出
- nc hh12345678 oop6324 [10086,10001] 1 [1-16]2,3
- Course add illegal.
- # 单行输入,多行输出
- myc 1 1000
- |
Page:1
1.CID:bh00000002,Name:oop6326,Teachers:[A,B,10086],Capacity:1/100,Time:[1-10]1,5
2.CID:bh00000004,Name:oop6328,Teachers:[A,B],Capacity:1/100,Time:[11-18]1,5
3.CID:bh00000005,Name:oop6329,Teachers:[A,B],Capacity:1/100,Time:[1-18]1,6
n-next page, l-last page, q-quit
- # 多行输入,无输出
- |
quit
quit again
quit quit
- # 多行输入,一行输出
- |
quit
quit again
QUIT
- ----- Good Bye! -----
# 多行输入,多行输出,类比以上写法,不建议使用。
# 这里 data 部分的数据类型为 [n][2]string。
# 第一级的 - 相当于一条小测试点
# 第二级的 - 第一条对应输入,可能有的第二条对应输出。
# (即第二级的输入是必须的,可以无输出。至少为 1 个二级 - 至多为 2 个二级 - 。)