{"action":"closed","issue":{"url":"https://api.github.com/repos/cuberite/cuberite/issues/3321","repository_url":"https://api.github.com/repos/cuberite/cuberite","labels_url":"https://api.github.com/repos/cuberite/cuberite/issues/3321/labels{/name}","comments_url":"https://api.github.com/repos/cuberite/cuberite/issues/3321/comments","events_url":"https://api.github.com/repos/cuberite/cuberite/issues/3321/events","html_url":"https://github.com/cuberite/cuberite/issues/3321","id":171082552,"number":3321,"title":"Automatic plugin testing","user":{"login":"madmaxoft","id":4388386,"avatar_url":"https://avatars.githubusercontent.com/u/4388386?v=3","gravatar_id":"","url":"https://api.github.com/users/madmaxoft","html_url":"https://github.com/madmaxoft","followers_url":"https://api.github.com/users/madmaxoft/followers","following_url":"https://api.github.com/users/madmaxoft/following{/other_user}","gists_url":"https://api.github.com/users/madmaxoft/gists{/gist_id}","starred_url":"https://api.github.com/users/madmaxoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madmaxoft/subscriptions","organizations_url":"https://api.github.com/users/madmaxoft/orgs","repos_url":"https://api.github.com/users/madmaxoft/repos","events_url":"https://api.github.com/users/madmaxoft/events{/privacy}","received_events_url":"https://api.github.com/users/madmaxoft/received_events","type":"User","site_admin":false},"labels":[{"id":81486663,"url":"https://api.github.com/repos/cuberite/cuberite/labels/build%20system","name":"build system","color":"FF80FF","default":false},{"id":93447791,"url":"https://api.github.com/repos/cuberite/cuberite/labels/lua%20api","name":"lua api","color":"FF80FF","default":false},{"id":84811172,"url":"https://api.github.com/repos/cuberite/cuberite/labels/proposal","name":"proposal","color":"80FFFF","default":false}],"state":"closed","locked":false,"assignee":{"login":"madmaxoft","id":4388386,"avatar_url":"https://avatars.githubusercontent.com/u/4388386?v=3","gravatar_id":"","url":"https://api.github.com/users/madmaxoft","html_url":"https://github.com/madmaxoft","followers_url":"https://api.github.com/users/madmaxoft/followers","following_url":"https://api.github.com/users/madmaxoft/following{/other_user}","gists_url":"https://api.github.com/users/madmaxoft/gists{/gist_id}","starred_url":"https://api.github.com/users/madmaxoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madmaxoft/subscriptions","organizations_url":"https://api.github.com/users/madmaxoft/orgs","repos_url":"https://api.github.com/users/madmaxoft/repos","events_url":"https://api.github.com/users/madmaxoft/events{/privacy}","received_events_url":"https://api.github.com/users/madmaxoft/received_events","type":"User","site_admin":false},"assignees":[{"login":"madmaxoft","id":4388386,"avatar_url":"https://avatars.githubusercontent.com/u/4388386?v=3","gravatar_id":"","url":"https://api.github.com/users/madmaxoft","html_url":"https://github.com/madmaxoft","followers_url":"https://api.github.com/users/madmaxoft/followers","following_url":"https://api.github.com/users/madmaxoft/following{/other_user}","gists_url":"https://api.github.com/users/madmaxoft/gists{/gist_id}","starred_url":"https://api.github.com/users/madmaxoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/madmaxoft/subscriptions","organizations_url":"https://api.github.com/users/madmaxoft/orgs","repos_url":"https://api.github.com/users/madmaxoft/repos","events_url":"https://api.github.com/users/madmaxoft/events{/privacy}","received_events_url":"https://api.github.com/users/madmaxoft/received_events","type":"User","site_admin":false}],"milestone":null,"comments":20,"created_at":"2016-08-14T22:32:58Z","updated_at":"2016-11-20T19:35:29Z","closed_at":"2016-11-20T19:35:29Z","body":"I was wondering about the possibility of automatically testing plugins in a CI environment, at least in some way.\n\nIt should be possible to add an API dump capability to ToLua++ and / ord APIDump plugin in such a form that the results can be used to reconstruct dummy API functions implemented purely in Lua.\n\nThen the framework could perform some automated tests of the plugin functionality:\n- Load the plugin files (thus checking for syntax errors)\n- Call each command handler declared in Info.lua (where to get params?)\n- Call each hook registered in the `Initialize()` function / in main chunk\n- Call each webadmin page handler registered in the `Initialize()` function / in main chunk\n- possibly others\n\nIt might even be possible to check against storing an object for later use in a callback (typically, a `cPlayer` instance stored from a hook used in a callback later on) - the objects given to hooks can be \"reset\" to report usage as errors before the later callback is called.\n\nThis is most likely best implemented as a project in a separate repo, probably implemented fully in Lua; the API data could be stored online on `apidocs.cuberite.org`.\n"}}
{"actor":{"display_login":"madmaxoft"}}