C++,a object-oriented programming language,is widely used in developing programs of various scales and platforms.The correctness of C++compilers is of paramount importance.For the current lack of research about the correctness of C++Standard Library,this paper propose a new test approach against the implementation of standard library in different compilers based on differential testing,and implemented an automated testing tool,who has uncovered bugs in real-world and mainstream implementations of C++Standard Library.The maj or contributions of this paper includes:·C++test case generation based on open-sourced code This paper proposed test case generation approach targeting the C++Standard Library,based on opensourced C++programs and their infrastructure,which generates diverse test cases;·Differential-based test case reduction targeting C++Standard Library This paper proposed a test case reduction method based on the characteristics of failed cases in C++Standard Library testing,based on the principle of differential testing,and can efficiently reduce redundant or repeated test cases.·Report bugs and submit patches based on failure analysis During result ananysis,this paper categorize and summerize inconsistent issues in different standard library implementations,and can help C++users to avoid them.Meanwhile,this paper also submit patches to resolve inconsistent issues in affected open-sourced C++programs,and improve overall quality of those software. |