user interface - Automated testing for OpenGL application -
I have a Java application that uses JOGL to provide a large part of the GUI.
Use JOGL if any device you know, or has used, that can automate the test of OpenGL applications (or more specifically, using those people)
Just to update: The tool can run on either Linux or Windows.
I have written unit-test for C ++ (Qt on Linux) & amp; Before OpenGL, I have no reason to know that it should not work for Java also.
Things to do for me are:
-
Abstract Your OpenGL Provider Provider Your Remaining Code Is Free In My case, the main app uses QT's QGL Widget , But unittests has used a pbuffer-based one that I can create with no Windows installation (except for a specified X11 DISPLAY). Later I have added an "offscreen messa" (pure software OpenGL implementation) so that they can work on the headless build machine without any GPU.
-
Keep your OpenGL code free In my case of OpenGL "rendering engine" in your case, I did not know anything about QT class (such as mouse events). Define your own testable API which is not associated with any specific GUI concepts, and writes a test for it.
-
In unittests, read the content back using framesbuffers using glReadPixels or hit them with some claims, which should be pixel specific value, or regression testing Go down the route and compare framebuffer capture with a stored image that you know (either by manual verification it is generated from any other reference model).
-
Allow a little smoke in any image regression test; The implementation of most open GLs produce a slightly different output.
-
(I did not do this, but ...) ideally you want to be able to test the GUI layer by ensuring that your rendering engine in response to the GUI activity Creates the expected sequence of calls if this happens, and due to the above tests you have full faith in your render layer ... OK, there really is no need to render. To use for GUI testing, create a proper duplicate object of your rendering layer (I imagine a test like "Drag the mouse from here, one specifically calls the rendering layer to set the matrix". Stuff like.)
Comments
Post a Comment