Rust-twins: Automatic Rust Compiler Testing through Program Mutation and Dual Macros Generation
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.
Authors
- Yuekang Li (ORCID: https://orcid.org/0000-0003-4382-0757)
- Yinxing Xue (ORCID: https://orcid.org/0000-0002-2979-7151)
- Wenzhang Yang (ORCID: https://orcid.org/0009-0006-7836-1246)
- Cuifeng Gao (ORCID: https://orcid.org/0000-0003-0672-1485)
- X. Liu (ORCID: https://orcid.org/0009-0005-7863-5772)
Institutions
- University of Science and Technology of China (CN)
- UNSW Sydney (AU)
Publication Details
- Published
- 2024-10-18
- DOI
- https://doi.org/10.1145/3691620.3695059
- Citations
- 5
- Primary Topic
- Software Testing and Debugging Techniques
- Type
- article
- Field-Weighted Citation Impact
- 2.43