215 views
首页 > 工作 > MIC2测试总结

MIC2测试总结

做MIC2的测试也已经也有好几个月了,把这一段工作做个总结吧。

mic2是MeeGo image command-line tool,用python写的,主要有三个功能,mic-chroot,mic-image-convertor,mic-image-creator,同时有对应的UI工具,但是平时测试只测command-line tool。
Chroot功能主要用于chroot into a live image to do some changes,也就是说生成image之后,可以用这个命令把image解包,然后chroot进去这个文件系统,做些修改。同时chroot还有convert image format的功能,具体的选项可以man一下,这里要说明的是,使用package management工具安装包的时候,名字是mic2,但是man的时候是mic,运行的时候也是mic-xxxx,这点是没对应好的。
Convert功能主要是把一种格式的镜像转变成livecd或是liveusb的格式,具体选项也可以man一下。
这两个功能做的改动比较少,平时就不用测,改动比较大的是mic-image-creator这个功能,有一次两周内出了七八个release…这个功能的option也比较多,主要的测试就在这一块。
MIC2的安装过程大家可以看官方wiki,http://wiki.meego.com/Image_Creationhttp://wiki.meego.com/ARM/Creating_ARM_image_using_MeeGo_Image_Creator;但是官方wiki有些过时,大家可能在安装的过程中会遇到一些问题,可以搜索解决方案,也可以参考我总结的这篇http://left-uestc.appspot.com/2011/01/30/how-to-create-meego-image.html。建议大家还是用包管理工具(apt,yum,zypper)来安装,这样在安装的时候可以解决依赖关系,如果想用最新的版本,可以从gti tree上down下来最新的code自己编译,但是依赖关系要自己去解决,官方wiki上列出来的依赖关系有些是过时的,另外要注意的是git上有两条source tree,一是development tree,一是stable source tree,development tree是他们release team要用MIC2来create image,所以经常会发现一些bug,提出一些新的功能,MIC2的developer会在这里做好改动,确认没什么问题了,再把patch打到stable source tree里面,所以相比较stable版本可能问题少一些,development版本可能存在一些bug,当然最好的还是从repo.meego.com那找已经release的版本。
Create image的命令还是比较简单啦,mic-image-creator 后面加上选项就行了。Create image的时候需要用kickstart文件进行配置,可以指定从哪个repo download packages,download哪些package什么的,最好用最新的kickstart文件,可以从git://gitorious.org/meego-os-base/image-configurations.git得到,当然可以对里面进行修改。Create image的时候,有一些选项可能会有冲突,比如说在mic2的配置文件/etc/mic/mic.conf里可以指定image的format,在kickstart文件里也可以指定,在mic-image-creator后加选项也可以指定,优先级是命令行选项>kickstart 文件>配置文件。因为create image大概要download六七百MB的package,所以在create的时候最好加上–cache=/yourdir 来存放package,这样在下次create的时候已经有的package就可以不用再下载了,会省去很多时间。我们平时的测试,也就是写几个脚本,指定kickstart文件,cache目录,镜像格式等等,然后执行脚本就行了,每次测试都要create十几种不同的image,公司用代理上网,download package大概只有几十KB每秒,要花掉很长时间,而且有时候因为有些bug,被block住,最少要花一天半到两天一轮测试才能做完,像上次两周出七八个release,做测试做的吐血,虽然是自动化的,但是bug太多了,经常被block住,所以还是比较花费人的精力的,后来我就建了个本地的mirror repo,从本地download package就快了,现在测试大概只需要半天左右,也算是我对这个测试的贡献吧,大大减少了工作时间,提高了效率…
Chroot的测试主要有3个,一个是只测试convert的功能,并不实际对文件系统进行修改,另一个是chroot进去,进行一些修改,但是不改变image的格式,最后一种是把image解包,chroot进去,进行修改,之后再将image format改成另一种形式。Chroot进去做些修改的时候,用了一个叫expect的工具,根据输出,输入一些修改命令(大部分就是装个包什么的),这样完成自动化的测试。
Convertor的测试,就是单纯的测试一下image format的转换。
其他的还有一些mic2相关的tool,都在/usr/bin/下面,大部分都是辅助性的工具了,比如mic-create-bootstrap 就是用来创建bootstrap环境的命令,其实就是创建一个文件系统,在create image的时候chroot进去,这样使用包管理工具可能受到distribution的影响就比较小,mic-image-writer就是烧写image的,跟dd一个功能,偏要自己写一个,反正平时他们往U盘里烧镜像都是用的dd,没人用过image-writer…

anyShare分享到:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.