DocumentCode
3723010
Title
Fuzzing the Rust Typechecker Using CLP (T)
Author
Kyle Dewey;Jared Roesch;Ben Hardekopf
Author_Institution
Univ. of California, Santa Barbara, Santa Barbara, CA, USA
fYear
2015
Firstpage
482
Lastpage
493
Abstract
Language fuzzing is a bug-finding technique for testing compilers and interpreters, its effectiveness depends upon the ability to automatically generate valid programs in the language under test. Despite the proven success of language fuzzing, there is a severe lack of tool support for fuzzing statically-typed languages with advanced type systems because existing fuzzing techniques cannot effectively and automatically generate well-typed programs that use sophisticated types. In this work we describe how to automatically generate well-typed programs that use sophisticated type systems by phrasing the problem of well-typed program generation in terms of Constraint Logic Programming (CLP). In addition, we describe how to specifically target the typechecker implementation for testing, unlike all existing work which ignores the typechecker. We focus on typechecker precision bugs, soundness bugs, and consistency bugs. We apply our techniques to Rust, a complex, industrial-strength language with a sophisticated type system.
Keywords
"Testing","Computer bugs","Grammar","Java","Engines","Logic programming","Syntactics"
Publisher
ieee
Conference_Titel
Automated Software Engineering (ASE), 2015 30th IEEE/ACM International Conference on
Type
conf
DOI
10.1109/ASE.2015.65
Filename
7372036
Link To Document