vmanager在启动一个session之后,在生成很多文件,下面对这些文件,简要进行说明。
下图是vmanager文件层次结构:
- 顶层TOP-dir:是在vsif中,指定的session的顶层目录
- chain_N:此次session,生成文件指定的位置,默认是chain_0,可以在启动vsif文件时,指定已存在的session,那么新的session产生的文件,就会生成在chain_N+1 目录下。这就是绑定作用(chain)。
- group_N: 每个group的目录
- run_N: 每个test的目录
如以下vsif文件:
session vm_test_session { top_dir : ~/vmanger/sessions/vm_test; output_mode : log_only; } |
通过top_dir属性,指定了session的顶层目录。因此将来通过该visf文件运行的session,生成的文件,就会放到该目录下。
在该目录下,会有子文件夹,每个文件夹以session的名字进行命令,session的命令,也是有规则的,规则如以下:
vsif文件中session的名字_启动的用户_启动的时间(精确到秒)_4位伪随机码。
通过session的名字,就可以知道是谁在什么时候启动这个session,这个session的名字是什么,最后4位的伪随机码,是为了区分,同一时刻启动的多个session。因为是4位,那么最多同一时刻能启动10000个sesssion。
进入到session目录。会有如下的一些目录:
- chain_0:存放此次session生成文件
- model_dir: 存放coverage model
- merged_ucds:存放merge各个test的coverage
- sync:一般是空的,目前不知道有什么用
此处,我们关心的chain_0,如果有另外一个session B,绑定(chain)到了这个session上,那么就会有chain_1目录,保存session B生成的文件。
在这个目录,文件就比较多了。但是很多,我们都不关心,我们关心的是,各个run_x目录。
run_x目录,就是各个test运行时,生成文件保存的目录,这些run_x目录,都是些符号链接,链接到vm_test下的run_x。这里的vm_test,就是vsif中的group。
chain_0目录下,很多文件,其实没有什么用的,其中占用空间最大的是jobs.db文件夹,可以将其删除掉,节省磁盘空间。
在vm_test目录下,有run_x目录,这些目录里面,保存的是test run生成的文件。
在run_x目录下,有如下的一些文件。
其中local_log.log,是test执行时,打印的信息。
cov_work,是生成的coverage数据。注意,该coverage数据,必须要使用vmanager的runner去运行生成,不能直接自己拷贝一个coverage数据过来,这样,vmanager工具是识别不了的。
如果为了节省磁盘空间,但是又想保留sesssion的所有coverage信息,在chain_0目录,可以将vm_test,run_x之外的文件都删除掉。在run_x目录下,除了cov_work,其他都可以删除掉。