Skip to content

Latest commit

 

History

History
12 lines (8 loc) · 1.64 KB

File metadata and controls

12 lines (8 loc) · 1.64 KB

此目录为自动评测脚本。

评测系统当读取到输出包含 #### OS COMP TEST GROUP START xxxxx ######## OS COMP TEST GROUP END xxxxx #### 两行文本时,会自动找到judge/judge_xxxxx.py运行,即此目录中脚本的命名应与xxxxx_testcode.sh中输出的内容相对应。

评测机捕获到上述两行文本时,会将此两行中间的所有文本以stdin的方式传输给评测脚本,评测脚本需要分析文本内容,并以json格式给出评分结果。评分结果格式如下例所示:

[{"name": "test_brk", "all": 3, "pass": 3, "score": 3}, {"name": "test_chdir", "all": 3, "pass": 3, "score": 3}]

输出结果为一个列表,列表中每一项为此题目中每一个测试点的得分情况。每一项测试点至少应包含namescore两个值,表示此测试点的名称和得分。对于通过性测试点,还可包含all字段表示本测试点共有多少分,pass表示通过多少个测试点。对于性能性测试点,还可以包含result表示本次提交匹配到的原始值,baseline表示一个参考基线值。除namescore外,allpassresultbaseline均为可选项,评测系统仅将这些信息展示给学生,不参与评分过程。

请注意,学生提交的OS并非每次都能给出完整的题目输出,若输出信息中缺失了某些测试点,那么评测脚本也应该输出这些测试点,但得分为0。极端情况下,学生没有运行此测试题目,那么评测机会启动相应评测脚本,并直接发送EOF,评测脚本也应该输出包含所有测试点的JSON列表,其中所有得分均为0。