DaniilStepanov / bbfgradle

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Kotlin compiler fuzzer and reduktor

Requirements:

  • NodeJS
    • npm install kotlin
    • npm install kotlin-test

Usage:

  • Compile
    • ./compile.sh
  • Start
    • gradlew runBBF - to start fuzzing

All options (backends, dir for results, etc.) specifies in bbf.conf file

Instrumentation notes

  • The class com.stepanov.bbf.coverage.CompilerInstrumentation is duplicated in both the Java agent module and in the main project. Their contents should be kept identical.
  • -javaagent:<path-to-instrumenter-jar> VM option should be present in order for the compiler to be instrumented.
  • A new instrumenter jar can be assembled with the kotlinc-instrumenter/jar Gradle task. The new jar's default new position is the main project's src/main/resources.

Performance mode

//-javaagent:/home/zver/IdeaProjects/bbfgradle/src/main/resources/kotlinc-instrumenter.jar

About

License:Apache License 2.0


Languages

Language:Kotlin 80.7%Language:JavaScript 19.0%Language:ANTLR 0.2%Language:Java 0.1%