Rust-twins: Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation
Abstract
Rust is a relatively new programming language known for its memory safety and numerous advanced features. It has been widely used in system software in recent years. Thus, ensuring the reliability and robustness of the only implementation of the Rust compiler, rustc, is critical. However, compiler testing, as one of the most effective techniques to detect bugs, faces difficulties in generating valid Rust programs with sufficient diversity due to its stringent memory safety mechanisms. Furthermore, existing research primarily focuses on testing rustc to trigger crash errors, neglecting incorrect compilation results - miscompilation. Detecting miscompilation remains a challenge in the absence of multiple implementations of the Rust compiler to serve as a test oracle.
BibTeX
@inproceedings{Yang-al:ASE24,
author = {Wenzhang Yang and
Cuifeng Gao and
Xiaoyuan Liu and
Yuekang Li and
Yinxing Xue},
title = {Rust-twins: Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation},
booktitle = {ASE},
pages = {631--642},
publisher = {{ACM}},
year = {2024},
}