APIFuzzing - a lua plugin for fuzzing and checking the API
#1
APIFuzzing - a lua plugin for fuzzing and checking the API

Github
https://github.com/cuberite/APIFuzzing

Commands
fuzzing
checkapi

Fuzzing
The runme file has to be copied to the root folder of Cuberite.

Running
Under windows run the file runme.bat and it will startup Cuberite.
Under linux run the file runme.sh and it will startup Cuberite.

The server will be started and runs the console command fuzzing. If an crash occurs:

If an crash occurs:
  • Under linux the script will automatically restart cuberite and run the command again
  • Under windows, you need to close the debugger message box that will appear, then cuberite will start and run the command again
The message Fuzzing completed! will be printed in the console, if the plugin is finished. If an crash has occurred, in the home directory of the plugin will be a file named crashed_table.txt. It contains the class name, function name and the function call of all crashes.


CheckAPI

Start the server and run the console command checkapi. The plugin will be finished if the message CheckAPI completed! appears. The results, if any, are in the console output and in cuberite log files.

Features
It can catch:
  • Syntax errors, indicates a problem in code generation of plugin
  • Runtime errors, function doesn't exists, is not exported or flag IsStatic is missing in APIDoc
It checks the return types of the function call with the APIDoc


TODOs
  • The function CreateSharedIgnoreTable in file tables.lua contains a list of classes and functions that are currently ignored
  • Find a way to run the command fuzzing on startup again, for travis use Works now, but currently not much use as there are open issues for crashes already
  • The table g_FalsePositives contains functions that are false positives, the generated code needs to be improved for them
Reply
Thanks given by:


Messages In This Thread
APIFuzzing - a lua plugin for fuzzing and checking the API - by Seadragon91 - 04-07-2017, 02:00 AM



Users browsing this thread: 1 Guest(s)