• 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