加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
grade-lab-syscall 1.53 KB
一键复制 编辑 原始数据 按行查看 历史
Eobard 提交于 2021-10-06 10:15 . update benchmark
#!/usr/bin/env python
import re
from gradelib import *
r = Runner(save("xv6.out"))
@test(5, "trace 32 grep")
def test_trace_32_grep():
r.run_qemu(shell_script([
'trace 32 grep hello README'
]))
r.match('^\\d+: sys_read\\(3\\) -> 1023')
r.match('^\\d+: sys_read\\(3\\) -> 966')
r.match('^\\d+: sys_read\\(3\\) -> 0')
@test(5, "trace all grep")
def test_trace_all_grep():
r.run_qemu(shell_script([
'trace 2147483647 grep hello README'
]))
r.match('^\\d+: sys_trace\\(2147483647\\) -> 0')
r.match('^\\d+: sys_exec\\(12240\\) -> 3')
r.match('^\\d+: sys_open\\(12240\\) -> 3')
r.match('^\\d+: sys_read\\(3\\) -> 1023')
r.match('^\\d+: sys_read\\(3\\) -> 966')
r.match('^\\d+: sys_read\\(3\\) -> 0')
r.match('^\\d+: sys_close\\(3\\) -> 0')
@test(5, "trace nothing")
def test_trace_nothing():
r.run_qemu(shell_script([
'grep hello README'
]))
r.match(no=[".* syscall .*"])
@test(5, "trace children")
def test_trace_children():
r.run_qemu(shell_script([
'trace 2 usertests forkforkfork'
]))
r.match('3: sys_fork\\([-\\+]?\\d+\\) -> 4')
r.match('^5: sys_fork\\([-\\+]?\\d+\\) -> \\d+')
r.match('^6: sys_fork\\([-\\+]?\\d+\\) -> \\d+')
r.match('^\\d+: sys_fork\\([-\\+]?\\d+\\) -> -1')
r.match('^ALL TESTS PASSED')
@test(14, "sysinfotest")
def test_sysinfotest():
r.run_qemu(shell_script([
'sysinfotest'
]))
r.match('^sysinfotest: OK', no=[".* FAIL .*"])
@test(1, "time")
def test_time():
check_time()
run_tests()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化