Software-artifact Infrastructure Repository 学习笔记 1 :C Object Directory Specification
来源:互联网 发布:女装淘宝销量排行榜 编辑:程序博客网 时间:2024/06/01 19:26
有两种目录模式,一种是早先的 siemens 程序和 space,有一个单一的基准版本 v0,其他不同的版本都是从 v0 派生出的;另一种的新的组织方式,vK+1是由vK派生出的。
一般的,任一目录或子目录如果它的功能不是很显而易见,或者不合命名约定,会包含一个 CONTENTS 文件来描述。
一个 object 一般会包含如下子目录:
1. source
空目录,在实验过程中,我们把使用的版本放这里,结束后删掉。
2. versions.alt
包含不同版本变体的源码,当我们必须要修改源码来容纳一些工具时,我们就需要变体。
基本的变体在 versions.orig 子目录下,里面包含 v0, v1, ... , vK 子目录。v0 是最早的版本,其他 vJ 包含按顺序排列的下个版本。
每个 vK 包含 .c 文件和头文件,附加的 Makefile,还有一些非系统库的子目录。(历史上非库代码都会被合并到一个 .c 文件中,用于促进特殊的程序分析工具集,但是这在将来的 object 可能不会再出现了)
Makefile包含3个目标:
build:生成 <program>.exe 可执行文件
build-st:生成 <program>.st.int.exe 是一个 statement 插桩的可执行文件
build-bt:生成 <program>.bt.int.exe 是一个 branch 插桩的可执行文件
并且,编译一个文件的命令必须包含 $(COMPILE_PARAMETERS) flag, 例如: gcc -c $(COMPILE_PARAMETERS) grep.c 或
gcc -o grep.exe $(COMPILE_PARAMETERS) grep.c
可能存在的第二个子目录是 versions.seeded ,它包含 v1, ..., vK, 可能存在 v0。versions.seeded 目录除了源码和头文件,也会有一些其他用于植入错误的文件。这可能会被环境脚本使用来制作这次编译。例如,它被一些脚本使用来实例程序错误版本(参见 C object handbook 的 Section 8)
如果我们把所有的错误关掉,.orgi 和 .seeded 效果应该是一样的。
3. versions
空目录,在实验中用到,可能会保持一个或多个版本。
4. testplans.alt
Object 的测试信息。
它也包含子目录 v0, ... , vK, 包含对应版本的测试信息。testplans.alt 可能包含一个 testscript 子目录。
为了避免对同一个文件的多份拷贝,我们把子目录 vJ 组织成两种类型的文件:
General Files:.tsl, .frame 和 .universe 文件
Link Files: 这是一些 link 到之前版本的 general file 的文件。这些允许从前一版本继承相似的测试数据,从而避免多次拷贝。
5. testplans
空目录,实验中保存测试集
6. traces
空目录,实验中保存test trace
7. traces.alt
子目录 v0,...,vK,保存各版本的 test trace 信息。
8. inputs
测试中使用的输入文件或者子目录
9. outputs
空目录,实验中保存测试输出
10. outputs.alt
永久的存放测试输出。在回归测试中能用来与之前的测试结果对比。
11. docs
object 的文档。
12. originals
13. scripts
14. info
程序的其他信息,特别是分析工具收集的信息以及实验需要保存的信息。
在版本区分出的目录中,最重要的信息是 fault matrix 数据。
- Software-artifact Infrastructure Repository 学习笔记 1 :C Object Directory Specification
- Software-artifact Infrastructure Repository 学习笔记 2:C Object Handbooky
- 【C#】Directory学习笔记
- object c学习笔记(1)
- object-c学习笔记-1
- Object-c学习笔记(1)
- object-c学习笔记 1
- 主题:Maven学习笔记2——向repository上传artifact
- Object-C学习笔记
- object-c学习笔记
- Object-C学习笔记
- Object-c学习笔记
- Object-C学习笔记
- object-c学习笔记
- Object-c学习笔记
- QTP学习笔记之2.1 --Object Repository
- Object C初学学习笔记(1)
- object-c学习笔记-2
- 对Java Serializable(序列化)的理解和总结
- linux 版本分类
- html5新功能4—JavaScript里获取电池状态的方法
- c++读写流及读写文件
- jersey的基本使用方法
- Software-artifact Infrastructure Repository 学习笔记 1 :C Object Directory Specification
- PHP源码阅读<1>
- memcached清除缓存
- NAN,IND,INF,DEN的概念
- leetcode || 64、Minimum Path Sum
- 【j2ee spring】16、Spring事务的传播行为
- Apache Spark MLlib学习笔记(一)MLlib数据存储Vector/Matrix/LablePoint
- 【在线研讨会 4月23日】2D到3D的跨越
- CXF 快速实现基于JWS的WebService项目(转)