Solsmith: Solidity Random Program Generator for Compiler Testing
Solsmith: Solidity Random Program Generator for Compiler Testing
Smart contracts are computer programs that run on blockchain platforms, with Solidity being the most widely used language for their development. As blockchain technology advances, smart contracts have become increasingly important across various fields. In order for smart contracts to operate correctly, the correctness of the compiler is particularly crucial. Although some research efforts have been devoted to testing Solidity compilers, they primarily focus on testing methods and do not address the core issue of generating test programs. To fill this gap, this paper designs and implements Solsmith, a test program generator specifically aimed at uncovering defects in Solidity compilers. It tests the compiler correctness by generating valid and diverse Solidity programs. We have designed a series of unique program generation strategies tailored to Solidity, including enabling optimizations more frequently, avoiding undefined behaviour, and mitigating behavioural differences caused by intermediate representations. To validate the effectiveness of Solsmith, we assess the effectiveness of the test programs generated by Solsmith using the approach of differential testing. The preliminary results show that Solsmith can generate the expected test programs and uncover four confirmed defects in Solidity compilers, demonstrating the effectiveness and potential of Solsmith.
Lantian Li、Zhihao Liu、Zhongxing Yu
计算技术、计算机技术
Lantian Li,Zhihao Liu,Zhongxing Yu.Solsmith: Solidity Random Program Generator for Compiler Testing[EB/OL].(2025-06-04)[2025-06-14].https://arxiv.org/abs/2506.03909.点此复制
评论