论文标题

使用输出比较对C99编译器的实际测试

Practical Testing of a C99 Compiler Using Output Comparison

论文作者

Sheridan, Flash

论文摘要

通过将其输出与预先存在工具的输出进行比较,提出了一种用于测试C99编译器的简单技术。这种方法的优点是,可以从现有来源大量添加新的测试用例,从而减少对正确性问题的深入研究,并手工创建新的测试代码。该技术用于测试Palmsource Palm OS Cobalt ARM C/C ++跨补偿器的个人数字助手,主要用于标准符合标准和正确执行生成的代码。这里描述的技术发现了数百个错误,主要是在我们的内部代码中,但也通过Edison Design Group和Apogee软件的长期高质量前端和后端代码。它还在GNU C编译器中发现了18个错误,以及针对Apple版本的GCC的错误,特定于GCC的SUSE版本的错误,以及用于ARM处理器的GCC版本中的十二个错误,其中一些非常关键。

A simple technique is presented for testing a C99 compiler, by comparison of its output with output from preexisting tools. The advantage to this approach is that new test cases can be added in bulk from existing sources, reducing the need for in-depth investigation of correctness issues, and for creating new test code by hand. This technique was used in testing the PalmSource Palm OS Cobalt ARM C/C++ cross-compiler for Palm-Powered personal digital assistants, primarily for standards-compliance and correct execution of generated code. The technique described here found several hundred bugs, mostly in our in-house code, but also in longstanding high-quality front- and back-end code from Edison Design Group and Apogee Software. It also found eighteen bugs in the GNU C compiler, as well as a bug specific to the Apple version of GCC, a bug specific to the Suse version of GCC, and a dozen bugs in versions of GCC for the ARM processor, several of them critical.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源