cm maat 工具

cm maat 工具概述

cm maat 工具是用于研发服务器远程创建 case-manager regression task 的命令行工具,该工具使得用户可以在研发服务器 上远程调用 case-manager 的机器资源来执行 regressioncases,从而减少研发服务器的负载并减少了 cases 执行等待时间(理论上 case-manager 服务器性能更加强大,可以更快的执行完所有 cases)。在创建完成后,用户可以选择在 cmd 中阻塞等待 cases 的执行结果,也可以关闭终端,等待 cases 执行,case-manager 执行完 cases 后,将以邮件的形式通知使用者,此时用户可以 登录 case-manager 网站 regression 模块查看本次执行结果。

cm maat 工具基础使用教程

cm maat 工具最简单的使用方式就是进入 regressioncases 目录下并执行 cm maat 触发 regression task 的创建。

# 用户在使用 cm maat 创建 regression task 时,一般位于 thor 子模块中
cd thor_sub_module
# 进入 regressioncases 目录,准备执行 case
cd regressioncases
# 使用 cm maat 创建一个 regression task
cm maat

此时,终端将给出 cm maat 执行状态输出,并阻塞等待结果返回,效果图如下:

../_images/cm_maat_create.png

和 maat 一样,cm maat 也可以指定 case 执行

# 进入 regressioncases 目录中
cd thor_sub_module/regressioncases
# 仅执行 case1,case_set/sub_case2
cm maat case1 case_set/sub_case2

cm maat 进阶使用教程

cm maat 工具的 help 文档如下:

# todo:added cm maat --help output
[root@dev02 Thor]$ tools lec --help
Usage: tools lec [OPTIONS] REVISED GOLDEN

--compare

指定执行 case 时是否输出 error case 的详细信息.

maat --compare

效果如图:

../_images/compare_feature.png

--config

更改 maat 功能模块参数的指令, 其使用较为多变复杂, 并可搭配 配置文件 使用, 进阶使用请参考 --config 配置表.

--config 是一个可重复使用的参数, 用于更改多个配置, 输入格式为.

maat --config [mod.attr=value]

# eg: 打开 lec 检查并指定 lec rpc 调用的端口为 12345
maat --config case.ENABLE_LEC=on --config lec.PORT=12345

--tag

使用 tag 去更改此次 maat 执行的 tcl 脚本.

对于任意 case 来说, maat 执行此 case 时, 会先生成一个 temp_xxxx.tcl 文件, 其是 case 本身的 tcl 文件的一个 副本, 并对这个 tcl 文件做一系列的处理, 包括但不限于处理相对路径 / 更改 cmd 参数 / 增删 cmd 等功能, 其实现就是 依托于 tag 完成, 如:

# 为 synth 命令增加 --timing_level3 参数
maat --tag timing_level3

# 清除所有的 opt 指令(netlist_opt / resynth)
maat --tag non_opt

更加详细的使用请参考 tag 使用详解.

--debug

指定以 debug 模式执行 maat, 一般用于调试.

maat --debug

--repeat

指定 cases 重复执行次数, 以预防 RainaSynth 输出偶现 bug 问题.

# 指定 case 重复执行 5 次
maat --repeat 5

--timeout

指定 cases 执行的超时时间, 指定后, 单个 case 执行超时则直接结束运行并给出报错. 该参数可以指定单位, 目前 支持以下四个单位:

  • 秒(s), 当输入不带单位时, 默认为秒

  • 分(m)

  • 时(h)

  • 天(d)

# 指定超时时间为 1000 秒
maat --timeout 1000
maat --timeout 1000s

# 指定超时时间为 90 分钟
maat --timeout 90m

# 指定超时时间为 2 小时
maat --timeout 2h