I have applied the suggestions that Dylan Baker suggested to the following patches.
* framework/summary.py: add crashed page. * cmake: use PythonInterp package and update version. I will be submitting the updated patch set in a few days after I get more feedback on the other patches. On Thu, Oct 31, 2013 at 9:47 AM, Kenney Phillis <[email protected]>wrote: > I know this is a long patch and contains some features that have already > been discussed earlier this year. However each feature serves an important > task. > > > > Feature 1: Signal Handler > Signal handlers may not seem like a lot, but on some platforms they are > a critical task to ensure piglit will function even remotely correctly. > A primary example of this is the signal handler used for Windows. Without > this running any remotely long series of tests would require interaction. > This completely defeats the purpose of having automated testing since it > would mean that all of the tests will not be ran automatically but instead > the testing will grind to an halt. > > When an appropriate signal is detected, the Signal handler will on it's > own will attempt to create a backtrace. This is useful since the output > can easily be used by addr2line to find out where the crash happened in > the source tree. > > Feature 2: Windows Signal Handler > This is a signal handlered aimed for windows developers only. This feature > will work on any system running Windows XP or up because of the fact that > this also implements support for Vectored Exception Handling [1]. This > signal handler will also generate backtraces on it's own using built > in functionality that is included with windows. The features with this > can safely be updated to a minimum of Windows Vista without any major > changes. > > > Feature 3: New framework - GLFW > The GLFW[2] framework I implemented exposes OpenGL 3.x support on platforms > where there is a lack of a c99 compliant compiler ( for example MSVC ) > and should work the same as any other framework. The only limitation > I can find with this is that the library only supports creating > double buffered windows. I do not know if this is going to be a problem > with tests that do not specify this flag. > > Note 1: This framework supports OpenGL ES, but I have not enabled nor > verified that this works. > > Note 2: This framework supports internal GLFW builds by simply > uncompressing > the source file into the root piglit directory and renaming the folder > glfw. > This method should work automatically if the file glfw/CMakeLists.txt is > found during the configuration phase. > > Feature 4: Use PythonInterp to detect python. > This is an important change for some platforms ( like windows ) because > many users may not have python added to the path variable > NOTE: This feature required increasing the minimum cmake version to 2.8.6 > because older versions did not properly honor the minimum version > argument of find_package. This should make things easier overall because > it is easy to change the python search to 3.x when the change is needed. > > Feature 5: Add a crash listing page to the html summary. > I know this is not a large feature, but it should still be in place, since > sometimes as a developer it's important to quickly determine what tests > have crashed. > > TODO List: > * Add OSX Signal handler - There is some serious overhead with using a > posix compliant signal handler on OSX and it can lead to problems. > This means that a mach compatible execution handler is a must. > > * Further test the Windows execution handler. I do not know if this > automatic debug handler will suite windows developers well, but at > least it is easily possible to identify exactly which line in the > particular test is the source of the crash and to take this output > and use it to possibly pinpoint where in the driver the actual crash > happened. > > * Verify that the piglit run framework handles the new result output > properly. I added a new report string ( crashed ) to assist with the > signal handlers. > > [1] MSDN Magazine ( Sept 2001): > Under the Hood: New Vectored Exception Handling in Windows XP > http://msdn.microsoft.com/en-us/magazine/cc301714.aspx > > [2] GLFW - An OpenGL Library > http://www.glfw.org/ > > > Kenney Phillis (13): > util: add PIGLIT_CRASH to the list of valid results. > cmake: link OpenGL and OpenGL ES utility libs to piglitutil. > util: Implement signal handler support. > piglit-framework-gl: Add piglit signal handler. > util: Implement signal handler on windows. > cmake: make sure the hiz tests link against piglitutil. > piglit-framework: Implement glfw support. > piglit-framework: Add support for static glfw usage. > tests/glx: Enable signal handler support. > tests/egl: add support for signal handler. > framework/summary.py: add crashed page. > cmake: Relax waffle requirement. > cmake: use PythonInterp package and update version. > > .gitignore | 3 + > CMakeLists.txt | 127 ++++-- > framework/summary.py | 9 +- > tests/egl/egl-create-surface.c | 2 + > tests/egl/egl-nok-swap-region.c | 2 + > tests/egl/egl-nok-texture-from-pixmap.c | 2 + > tests/egl/egl-query-surface.c | 2 + > tests/fbo/CMakeLists.gl.txt | 4 +- > tests/general/CMakeLists.gl.txt | 4 +- > tests/glx/glx-close-display.c | 3 + > tests/glx/glx-copy-sub-buffer.c | 2 + > tests/glx/glx-destroycontext-1.c | 4 +- > tests/glx/glx-destroycontext-2.c | 2 + > tests/glx/glx-dont-care-mask.c | 2 + > tests/glx/glx-fbconfig-compliance.c | 2 + > tests/glx/glx-fbconfig-sanity.c | 2 + > tests/glx/glx-fbo-binding.c | 2 + > tests/glx/glx-make-current-bad-context.c | 2 + > tests/glx/glx-make-current.c | 2 + > tests/glx/glx-make-glxdrawable-current.c | 2 + > tests/glx/glx-multi-context-ib-1.c | 2 + > tests/glx/glx-multithread-makecurrent-1.c | 2 + > tests/glx/glx-multithread-makecurrent-2.c | 2 + > tests/glx/glx-multithread-makecurrent-3.c | 2 + > tests/glx/glx-multithread-makecurrent-4.c | 2 + > tests/glx/glx-multithread-shader-compile.c | 2 + > tests/glx/glx-multithread-texture.c | 2 + > tests/glx/glx-multithread.c | 2 + > tests/glx/glx-pixmap-crosscheck.c | 2 + > tests/glx/glx-pixmap-life.c | 2 + > tests/glx/glx-pixmap-multi.c | 2 + > tests/glx/glx-pixmap13-life.c | 2 + > tests/glx/glx-query-drawable.c | 2 + > tests/glx/glx-shader-sharing.c | 2 + > tests/glx/glx-string-sanity.c | 2 + > tests/glx/glx-swap-event.c | 4 +- > tests/glx/glx-swap-exchange.c | 2 + > tests/glx/glx-swap-pixmap-bad.c | 2 + > tests/glx/glx-swap-pixmap.c | 2 + > tests/glx/glx-swap-singlebuffer.c | 2 + > tests/glx/glx-tfp.c | 2 + > tests/glx/glx-visuals-depth.c | 2 + > tests/glx/glx-visuals-stencil.c | 2 + > tests/glx/glx-window-life.c | 2 + > tests/hiz/CMakeLists.gl.txt | 1 + > tests/util/CMakeLists.gl.txt | 6 + > tests/util/CMakeLists.gles1.txt | 1 + > tests/util/CMakeLists.gles2.txt | 1 + > tests/util/CMakeLists.gles3.txt | 1 + > tests/util/CMakeLists.no_api.txt | 4 + > tests/util/CMakeLists.txt | 21 + > tests/util/config.h.in | 5 + > tests/util/piglit-framework-gl.h | 10 + > .../util/piglit-framework-gl/piglit_gl_framework.c | 5 + > .../piglit-framework-gl/piglit_glfw_framework.c | 407 > ++++++++++++++++++++ > .../piglit-framework-gl/piglit_glfw_framework.h | 29 ++ > .../piglit-sighandler/piglit-sighandler-none.c | 37 ++ > .../piglit-sighandler/piglit-sighandler-posix.c | 209 ++++++++++ > .../piglit-sighandler/piglit-sighandler-win32.cpp | 339 ++++++++++++++++ > tests/util/piglit-util.c | 5 + > tests/util/piglit-util.h | 15 +- > 61 files changed, 1282 insertions(+), 44 deletions(-) > create mode 100644 tests/util/piglit-framework-gl/piglit_glfw_framework.c > create mode 100644 tests/util/piglit-framework-gl/piglit_glfw_framework.h > create mode 100644 tests/util/piglit-sighandler/piglit-sighandler-none.c > create mode 100644 tests/util/piglit-sighandler/piglit-sighandler-posix.c > create mode 100644 > tests/util/piglit-sighandler/piglit-sighandler-win32.cpp > > -- > 1.7.9.5 > >
_______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
