Jacks:Java的兼容性测试 开放源码之路 - 编程入门网
Jacks:Java的兼容性测试 开放源码之路时间:2011-02-23什么是 Jacks? Jacks 测试套件检查 Java 编译器是否符合 JLS(Java 语言规范)。它由大量小测试案例组成,每个测试都侧重于 JLS 中特定的部分。Eric Blake 为 Jacks 项目作出了很大贡献,他从面向细节领域描述了这种类型测试的好处。“通过生成带有指定编译行为的小测试案例,然后将每个案例的执行自动化,编译器作者或调试者可以快速找出 Java 源码到字节码转换中存在的问题。” 开发 Jacks 背后的概念是要简化对多编译器或多编译器配置所运行的测试(例如,对上两个发行版的 Jikes 和 Javac 的 JDK 1.3 发行版所进行的一组测试)。如果手工进行,您必须重复地设置环境变量,然后根据所期望的结果来检查测试结果。而通过使用 Jacks,只需要更改到存放测试的目录, 调用 Jacks 框架,然后表明应该使用哪个编译器配置。 Sun 没有履行对 Java 开发者所做的承诺激发了 Jikes 小组对 Jacks 项目的设置和运行。Sun 再三声明它会把 Java、JCK(Java Compatibility Kit)和相关 Java 技术交到一个标准主体的手中。但因为这还没有实现,从事 Java 项目的开发者就不能使用 JCK 来对日常的开发进行回归测试。当面对由于不合理的许可证限制而导致的代码人为不足时,他们倾向于用新的更完善的系统来替换旧系统。这就是发生在 Jacks 上的故事。(尽管 Jacks 由 developerWorks 主持,它受 GPL 而非 IBM Public License 约束。) 使用 Jacks Jacks 是以 Tcl 编写的,因此需要确保拥有 Tcl 8.3。(需要版本 8.3 来确保具有 tcltest 扩展和 Unicode 支持,这两者都是 Jacks 所必需的)。可以下载用于 Windows 的安装程序和用于 Red Hat x86 的 RPM,也可以更方便地从源代码中构建。如果您不知道到什么地方下载,请参阅本文稍后的 参考资料 部分;如果使用的是 Red Hat 7,很可能已安装了 Tcl 8.3。 安装了 Tcl 后,需要从 CVS 取出 Jacks。然后通过将编译器路径名包括在要测试的编译器的 Jacks _setup 配置文件中来配置 Jacks。对于每个希望支持的配置都需要一个 _setup 文件。例如,Jacks 带有 javac_setup 文件。需要编辑该文件来为 javac 设置路径。Eric Blake 说,“最困难的部分是断定如何测试 Jikes,因为我在环境中已设置了 JIKESPATH。但我想出了要在 jikes_setup 配置文件中更改什么内容,一切都很顺利。” 从 CVS 模块中取出 Jacks 源代码 setenv CVSROOT :pserver:anoncvs@oss.software.ibm.com:/usr/cvs/jikes cvs login paswsd anoncvs cvs checkout jacks 可以对数量不限的编译器或编译器配置使用 Jacks。要除去某一编译器的配置,只需要删除其 _setup 文件。 从 CVS 中取出源代码后,就需要在路径中包括顶层 Jacks 目录,这样才能运行 Jacks shell 脚本。为谨慎起见,最初运行 shell 脚本时应该不带任何自变量,以确保每项都经过正确配置。 % jacks 如果一切正常,将看到 Jacks 脚本所接受的命令行选项的清单。如果收到错误,请检查在路径中是否能找到可执行文件 tclsh8.3。Windows 用户需要直接运行 tclsh83,并将 jacks.tcl 自变量在一般标志之前传递给它。还应该考虑安装 Cygwin UNIX 兼容性层,这样,象 Unix 用户一样,您就可以使用提供的 shell 脚本来运行 Jacks 了。下面的指令假设您使用的是 shell 脚本。 对于测试示例,需要使用 Jikes 编译器来运行给定子目录中的所有测试,命令如下: % cd tests/jls/packages/package-declarations/unnamed-packages % jacks jikes Jacks:Java的兼容性测试 开放源码之路(2)时间:2011-02-23开发新的回归测试 开发新的 Jacks 测试案例非常简便。照 Eric Blakes 的话说, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |