快速业务通道

Jacks:Java的兼容性测试 开放源码之路 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号