APIFuzzing - a lua plugin for fuzzing and checking the API
#21
Sounds like a pretty serious problem.
Reply
Thanks given by:
#22
@NiLSPACE It's the far land problem. Using /tp to get to a position that is very wide away can cause problems. The ram will run full and the server will crash, it can also freze the PC. I replaced the large numbers with small numbers to avoid that problem.
Reply
Thanks given by:
#23
But the fact that a plugin can corrupt a world sounds like something that should be fixed.
Reply
Thanks given by:
#24
Then it would be necessary to add borders in the server, like the world border in vanilla minecraft. Also all function that accept coords would need to be checked.
Reply
Thanks given by:
#25
@xoft
Some things still needs manual adjusting like a new class, that has to be added to a table. Will look if I can fix a few problems. Maybe the test could be make optional, it doesn't have to be green for the pull request to pass.

The forge pull request worked fine, because it only used the primitive types: table, strings in the param. Also the fuzzing is very slow, because the a callback is not aborted if a error in the lua code occurs. On my windows system a run takes 20 minutes.
Reply
Thanks given by:
#26
Did many changes for the CheckAPI part:
- Added search for enum type values in APIDesc
- Added player test code
- Added check if class has constructor, can be instantiated
- Added test code for many functions that have a callback function and a check if the callback has been called
- Got rid of a few tables

There are two problems, that blocks it from using in CI: The deadlock and a failed Verify.
The deadlock problem could be ignored, requires a connected client (pycraft) for the test

Edit: Added function cEntity:Destroy to the ignore table, this avoids the crash
Reply
Thanks given by:
#27
I think this should be done as a additional build. If it fails it shouldn't block the pull request from merging.
Reply
Thanks given by:




Users browsing this thread: 4 Guest(s)