kirancodes.me
To Proof Maintenance & Beyond!

Rust-twins: Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation

Wenzhang Yang, Cuifeng Gao, Xiaoyuan Liu, Yuekang Li, Yinxing Xue

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},
}

Related papers