From: José Fonseca Date: Thu, 9 Jun 2011 19:46:48 +0000 (+0100) Subject: Generalize the tests for other example suites. X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=commitdiff_plain;h=7b0a1bd467eb618bd18c163eed6b5272b5284f6e Generalize the tests for other example suites. --- diff --git a/mesa-demos.spec b/mesa-demos.spec new file mode 100644 index 0000000..7e1b245 --- /dev/null +++ b/mesa-demos.spec @@ -0,0 +1,540 @@ +trivial-clear-color src/trivial clear-color +trivial-clear-fbo src/trivial clear-fbo +trivial-clear-fbo-scissor src/trivial clear-fbo-scissor +trivial-clear-fbo-tex src/trivial clear-fbo-tex +trivial-clear-random src/trivial clear-random +trivial-clear-repeat src/trivial clear-repeat +trivial-clear-scissor src/trivial clear-scissor +trivial-clear-undefined src/trivial clear-undefined +trivial-createwin src/trivial createwin +trivial-dlist-begin-call-end src/trivial dlist-begin-call-end +trivial-dlist-dangling src/trivial dlist-dangling +trivial-dlist-degenerate src/trivial dlist-degenerate +trivial-dlist-edgeflag src/trivial dlist-edgeflag +trivial-dlist-edgeflag-dangling src/trivial dlist-edgeflag-dangling +trivial-dlist-flat-tri src/trivial dlist-flat-tri +trivial-dlist-mat-tri src/trivial dlist-mat-tri +trivial-dlist-recursive-call src/trivial dlist-recursive-call +trivial-dlist-tri-flat-tri src/trivial dlist-tri-flat-tri +trivial-dlist-tri-mat-tri src/trivial dlist-tri-mat-tri +trivial-draw2arrays src/trivial draw2arrays +trivial-drawarrays src/trivial drawarrays +trivial-drawelements src/trivial drawelements +trivial-drawelements-large src/trivial drawelements-large +trivial-drawrange src/trivial drawrange +trivial-flat-clip src/trivial flat-clip +trivial-fs-tri src/trivial fs-tri +trivial-line src/trivial line +trivial-line-clip src/trivial line-clip +trivial-line-cull src/trivial line-cull +trivial-line-flat src/trivial line-flat +trivial-line-smooth src/trivial line-smooth +trivial-line-stipple-wide src/trivial line-stipple-wide +trivial-line-userclip src/trivial line-userclip +trivial-line-userclip-clip src/trivial line-userclip-clip +trivial-line-userclip-nop src/trivial line-userclip-nop +trivial-line-userclip-nop-clip src/trivial line-userclip-nop-clip +trivial-line-wide src/trivial line-wide +trivial-line-xor src/trivial line-xor +trivial-lineloop src/trivial lineloop +trivial-lineloop-clip src/trivial lineloop-clip +trivial-lineloop-elts src/trivial lineloop-elts +trivial-linestrip src/trivial linestrip +trivial-linestrip-clip src/trivial linestrip-clip +trivial-linestrip-flat-stipple src/trivial linestrip-flat-stipple +trivial-linestrip-stipple src/trivial linestrip-stipple +trivial-linestrip-stipple-wide src/trivial linestrip-stipple-wide +trivial-long-fixed-func src/trivial long-fixed-func +trivial-pgon-mode src/trivial pgon-mode +trivial-point src/trivial point +trivial-point-clip src/trivial point-clip +trivial-point-param src/trivial point-param +trivial-point-sprite src/trivial point-sprite +trivial-point-wide src/trivial point-wide +trivial-point-wide-smooth src/trivial point-wide-smooth +trivial-poly src/trivial poly +trivial-poly-flat src/trivial poly-flat +trivial-poly-flat-clip src/trivial poly-flat-clip +trivial-poly-flat-unfilled-clip src/trivial poly-flat-unfilled-clip +trivial-poly-unfilled src/trivial poly-unfilled +trivial-quad src/trivial quad +trivial-quad-clip src/trivial quad-clip +trivial-quad-clip-all-vertices src/trivial quad-clip-all-vertices +trivial-quad-clip-nearplane src/trivial quad-clip-nearplane +trivial-quad-degenerate src/trivial quad-degenerate +trivial-quad-flat src/trivial quad-flat +trivial-quad-offset-factor src/trivial quad-offset-factor +trivial-quad-offset-unfilled src/trivial quad-offset-unfilled +trivial-quad-offset-units src/trivial quad-offset-units +trivial-quad-tex-2d src/trivial quad-tex-2d +trivial-quad-tex-3d src/trivial quad-tex-3d +trivial-quad-tex-alpha src/trivial quad-tex-alpha +trivial-quad-tex-pbo src/trivial quad-tex-pbo +trivial-quad-tex-sub src/trivial quad-tex-sub +trivial-quad-unfilled src/trivial quad-unfilled +trivial-quad-unfilled-clip src/trivial quad-unfilled-clip +trivial-quad-unfilled-stipple src/trivial quad-unfilled-stipple +trivial-quads src/trivial quads +trivial-quadstrip src/trivial quadstrip +trivial-quadstrip-clip src/trivial quadstrip-clip +trivial-quadstrip-cont src/trivial quadstrip-cont +trivial-quadstrip-flat src/trivial quadstrip-flat +trivial-readpixels src/trivial readpixels +trivial-sub-tex src/trivial sub-tex +trivial-tex-quads src/trivial tex-quads +trivial-tri src/trivial tri +trivial-tri-alpha src/trivial tri-alpha +trivial-tri-alpha-tex src/trivial tri-alpha-tex +trivial-tri-array-interleaved src/trivial tri-array-interleaved +trivial-tri-blend src/trivial tri-blend +trivial-tri-blend-color src/trivial tri-blend-color +trivial-tri-blend-max src/trivial tri-blend-max +trivial-tri-blend-min src/trivial tri-blend-min +trivial-tri-blend-revsub src/trivial tri-blend-revsub +trivial-tri-blend-sub src/trivial tri-blend-sub +trivial-tri-clear src/trivial tri-clear +trivial-tri-clip src/trivial tri-clip +trivial-tri-cull src/trivial tri-cull +trivial-tri-cull-both src/trivial tri-cull-both +trivial-tri-dlist src/trivial tri-dlist +trivial-tri-edgeflag src/trivial tri-edgeflag +trivial-tri-edgeflag-array src/trivial tri-edgeflag-array +trivial-tri-fbo src/trivial tri-fbo +trivial-tri-fbo-tex src/trivial tri-fbo-tex +trivial-tri-fbo-tex-mip src/trivial tri-fbo-tex-mip +trivial-tri-flat src/trivial tri-flat +trivial-tri-flat-clip src/trivial tri-flat-clip +trivial-tri-fog src/trivial tri-fog +trivial-tri-fp src/trivial tri-fp +trivial-tri-fp-const-imm src/trivial tri-fp-const-imm +trivial-tri-lit src/trivial tri-lit +trivial-tri-lit-material src/trivial tri-lit-material +trivial-tri-logicop-none src/trivial tri-logicop-none +trivial-tri-logicop-xor src/trivial tri-logicop-xor +trivial-tri-mask-tri src/trivial tri-mask-tri +trivial-tri-multitex-vbo src/trivial tri-multitex-vbo +trivial-tri-orig src/trivial tri-orig +trivial-tri-point-line-clipped src/trivial tri-point-line-clipped +trivial-tri-query src/trivial tri-query +trivial-tri-repeat src/trivial tri-repeat +trivial-tri-scissor-tri src/trivial tri-scissor-tri +trivial-tri-square src/trivial tri-square +trivial-tri-stencil src/trivial tri-stencil +trivial-tri-stipple src/trivial tri-stipple +trivial-tri-tex src/trivial tri-tex +trivial-tri-tex-1d src/trivial tri-tex-1d +trivial-tri-tex-3d src/trivial tri-tex-3d +trivial-tri-tri src/trivial tri-tri +trivial-tri-unfilled src/trivial tri-unfilled +trivial-tri-unfilled-clip src/trivial tri-unfilled-clip +trivial-tri-unfilled-edgeflag src/trivial tri-unfilled-edgeflag +trivial-tri-unfilled-fog src/trivial tri-unfilled-fog +trivial-tri-unfilled-point src/trivial tri-unfilled-point +trivial-tri-unfilled-smooth src/trivial tri-unfilled-smooth +trivial-tri-unfilled-tri src/trivial tri-unfilled-tri +trivial-tri-unfilled-tri-lit src/trivial tri-unfilled-tri-lit +trivial-tri-unfilled-userclip src/trivial tri-unfilled-userclip +trivial-tri-unfilled-userclip-stip src/trivial tri-unfilled-userclip-stip +trivial-tri-userclip src/trivial tri-userclip +trivial-tri-viewport src/trivial tri-viewport +trivial-tri-z src/trivial tri-z +trivial-tri-z-9 src/trivial tri-z-9 +trivial-tri-z-eq src/trivial tri-z-eq +trivial-trifan src/trivial trifan +trivial-trifan-flat src/trivial trifan-flat +trivial-trifan-flat-clip src/trivial trifan-flat-clip +trivial-trifan-flat-unfilled-clip src/trivial trifan-flat-unfilled-clip +trivial-trifan-unfilled src/trivial trifan-unfilled +trivial-tristrip src/trivial tristrip +trivial-tristrip-clip src/trivial tristrip-clip +trivial-tristrip-flat src/trivial tristrip-flat +trivial-vbo-drawarrays src/trivial vbo-drawarrays +trivial-vbo-drawelements src/trivial vbo-drawelements +trivial-vbo-drawrange src/trivial vbo-drawrange +trivial-vbo-noninterleaved src/trivial vbo-noninterleaved +trivial-vbo-tri src/trivial vbo-tri +trivial-vp-array src/trivial vp-array +trivial-vp-array-hf src/trivial vp-array-hf +trivial-vp-array-int src/trivial vp-array-int +trivial-vp-clip src/trivial vp-clip +trivial-vp-line-clip src/trivial vp-line-clip +trivial-vp-tri src/trivial vp-tri +trivial-vp-tri-cb src/trivial vp-tri-cb +trivial-vp-tri-cb-pos src/trivial vp-tri-cb-pos +trivial-vp-tri-cb-tex src/trivial vp-tri-cb-tex +trivial-vp-tri-imm src/trivial vp-tri-imm +trivial-vp-tri-invariant src/trivial vp-tri-invariant +trivial-vp-tri-swap src/trivial vp-tri-swap +trivial-vp-tri-tex src/trivial vp-tri-tex +trivial-vp-unfilled src/trivial vp-unfilled + +demos_arbfplight src/demos arbfplight +demos_arbfslight src/demos arbfslight +demos_arbocclude src/demos arbocclude +demos_arbocclude2 src/demos arbocclude2 +demos_bounce src/demos bounce +demos_clearspd src/demos clearspd +demos_copypix src/demos copypix +demos_cubemap src/demos cubemap +demos_cuberender src/demos cuberender +demos_dinoshade src/demos dinoshade +demos_dissolve src/demos dissolve +demos_drawpix src/demos drawpix +demos_engine src/demos engine +demos_fbo_firecube src/demos fbo_firecube +demos_fbotexture src/demos fbotexture +demos_fire src/demos fire +demos_fogcoord src/demos fogcoord +demos_fplight src/demos fplight +demos_fslight src/demos fslight +demos_gamma src/demos gamma +demos_gearbox src/demos gearbox +demos_gears src/demos gears +demos_geartrain src/demos geartrain +demos_glinfo src/demos glinfo +demos_gloss src/demos gloss +demos_gltestperf src/demos gltestperf +demos_ipers src/demos ipers +demos_isosurf src/demos isosurf +demos_lodbias src/demos lodbias +demos_morph3d src/demos morph3d +demos_multiarb src/demos multiarb +demos_paltex src/demos paltex +demos_pointblast src/demos pointblast +demos_projtex src/demos projtex +demos_rain src/demos rain +demos_ray src/demos ray +demos_readpix src/demos readpix +demos_reflect src/demos reflect +demos_renormal src/demos renormal +demos_shadowtex src/demos shadowtex +demos_singlebuffer src/demos singlebuffer +demos_spectex src/demos spectex +demos_spriteblast src/demos spriteblast +demos_stex3d src/demos stex3d +demos_teapot src/demos teapot +demos_terrain src/demos terrain +demos_tessdemo src/demos tessdemo +demos_texcyl src/demos texcyl +demos_texenv src/demos texenv +demos_textures src/demos textures +demos_trispd src/demos trispd +demos_tunnel src/demos tunnel +demos_tunnel2 src/demos tunnel2 +demos_vao_demo src/demos vao_demo +demos_winpos src/demos winpos + +#fp-fp src/fp fp-tri # XXX: parameterized +fp-point-position src/fp point-position +fp-tri-depth src/fp tri-depth +fp-tri-depth2 src/fp tri-depth2 +fp-tri-depthwrite src/fp tri-depthwrite +fp-tri-depthwrite2 src/fp tri-depthwrite2 +fp-tri-param src/fp tri-param +fp-tri-tex src/fp tri-tex + +#fpglsl-fp-tri src/fpglsl fp-tri + +glsl-array src/glsl array +glsl-bezier src/glsl bezier +glsl-bitmap src/glsl bitmap +glsl-brick src/glsl brick +glsl-bump src/glsl bump +glsl-convolutions src/glsl convolutions +glsl-deriv src/glsl deriv +glsl-fragcoord src/glsl fragcoord +glsl-fsraytrace src/glsl fsraytrace +glsl-geom-sprites src/glsl geom-sprites +glsl-geom-stipple-lines src/glsl geom-stipple-lines +glsl-geom-wide-lines src/glsl geom-wide-lines +glsl-identity src/glsl identity +glsl-linktest src/glsl linktest +glsl-mandelbrot src/glsl mandelbrot +glsl-multinoise src/glsl multinoise +glsl-multitex src/glsl multitex +glsl-noise src/glsl noise +glsl-noise2 src/glsl noise2 +glsl-pointcoord src/glsl pointcoord +glsl-points src/glsl points +glsl-samplers src/glsl samplers +glsl-shadow_sampler src/glsl shadow_sampler +glsl-shtest src/glsl shtest +glsl-skinning src/glsl skinning +glsl-texaaline src/glsl texaaline +glsl-texdemo1 src/glsl texdemo1 +glsl-toyball src/glsl toyball +glsl-trirast src/glsl trirast +glsl-twoside src/glsl twoside +glsl-vert-or-frag-only src/glsl vert-or-frag-only +glsl-vert-tex src/glsl vert-tex +glsl-vsraytrace src/glsl vsraytrace + +#gs_gs-tri src/gs gs-tri + +#perf-copytex src/perf copytex +#perf-drawoverhead src/perf drawoverhead +#perf-fbobind src/perf fbobind +#perf-fill src/perf fill +#perf-genmipmap src/perf genmipmap +#perf-readpixels src/perf readpixels +#perf-swapbuffers src/perf swapbuffers +#perf-teximage src/perf teximage +#perf-vbo src/perf vbo +#perf-vertexrate src/perf vertexrate + +redbook-aaindex src/redbook aaindex +redbook-aapoly src/redbook aapoly +redbook-aargb src/redbook aargb +redbook-accanti src/redbook accanti +redbook-accpersp src/redbook accpersp +redbook-alpha src/redbook alpha +redbook-alpha3D src/redbook alpha3D +redbook-anti src/redbook anti +redbook-bezcurve src/redbook bezcurve +redbook-bezmesh src/redbook bezmesh +redbook-checker src/redbook checker +redbook-clip src/redbook clip +redbook-colormat src/redbook colormat +redbook-combiner src/redbook combiner +redbook-convolution src/redbook convolution +redbook-cube src/redbook cube +redbook-cubemap src/redbook cubemap +redbook-depthcue src/redbook depthcue +redbook-dof src/redbook dof +redbook-double src/redbook double +redbook-drawf src/redbook drawf +redbook-feedback src/redbook feedback +redbook-fog src/redbook fog +redbook-fogcoord src/redbook fogcoord +redbook-fogindex src/redbook fogindex +redbook-font src/redbook font +redbook-hello src/redbook hello +redbook-histogram src/redbook histogram +redbook-image src/redbook image +redbook-light src/redbook light +redbook-lines src/redbook lines +redbook-list src/redbook list +redbook-material src/redbook material +redbook-minmax src/redbook minmax +redbook-mipmap src/redbook mipmap +redbook-model src/redbook model +redbook-movelight src/redbook movelight +redbook-multisamp src/redbook multisamp +redbook-multitex src/redbook multitex +redbook-mvarray src/redbook mvarray +redbook-nurbs src/redbook nurbs +redbook-pickdepth src/redbook pickdepth +redbook-picksquare src/redbook picksquare +redbook-plane src/redbook plane +redbook-planet src/redbook planet +redbook-pointp src/redbook pointp +redbook-polyoff src/redbook polyoff +redbook-polys src/redbook polys +redbook-quadric src/redbook quadric +redbook-robot src/redbook robot +redbook-sccolorlight src/redbook sccolorlight +redbook-scene src/redbook scene +redbook-scenebamb src/redbook scenebamb +redbook-sceneflat src/redbook sceneflat +redbook-select src/redbook select +redbook-shadowmap src/redbook shadowmap +redbook-smooth src/redbook smooth +redbook-stencil src/redbook stencil +redbook-stroke src/redbook stroke +redbook-surface src/redbook surface +redbook-surfpoints src/redbook surfpoints +redbook-teaambient src/redbook teaambient +redbook-teapots src/redbook teapots +redbook-tess src/redbook tess +redbook-tesswind src/redbook tesswind +redbook-texbind src/redbook texbind +redbook-texgen src/redbook texgen +redbook-texprox src/redbook texprox +redbook-texsub src/redbook texsub +redbook-texture3d src/redbook texture3d +redbook-texturesurf src/redbook texturesurf +redbook-torus src/redbook torus +redbook-trim src/redbook trim +redbook-unproject src/redbook unproject +redbook-varray src/redbook varray +redbook-wrap src/redbook wrap + +samples-accum src/samples accum +samples-bitmap1 src/samples bitmap1 +samples-bitmap2 src/samples bitmap2 +samples-blendeq src/samples blendeq +samples-blendxor src/samples blendxor +samples-copy src/samples copy +samples-cursor src/samples cursor +samples-depth src/samples depth +samples-eval src/samples eval +samples-fog src/samples fog +samples-font src/samples font +samples-line src/samples line +samples-logo src/samples logo +samples-nurb src/samples nurb +samples-oglinfo src/samples oglinfo +samples-olympic src/samples olympic +samples-overlay src/samples overlay +samples-point src/samples point +samples-prim src/samples prim +samples-quad src/samples quad +samples-select src/samples select +samples-shape src/samples shape +samples-sphere src/samples sphere +samples-star src/samples star +samples-stencil src/samples stencil +samples-stretch src/samples stretch +samples-texture src/samples texture +samples-tri src/samples tri +samples-wave src/samples wave + +#slang-cltest src/slang cltest +#slang-sotest src/slang sotest +#slang-vstest src/slang vstest + +tests_afsmultiarb src/tests afsmultiarb +tests_antialias src/tests antialias +tests_arbfpspec src/tests arbfpspec +tests_arbfptest1 src/tests arbfptest1 +tests_arbfptexture src/tests arbfptexture +tests_arbfptrig src/tests arbfptrig +tests_arbgpuprog src/tests arbgpuprog +tests_arbnpot src/tests arbnpot +tests_arbnpot-mipmap src/tests arbnpot-mipmap +tests_arbvptest1 src/tests arbvptest1 +tests_arbvptest3 src/tests arbvptest3 +tests_arbvptorus src/tests arbvptorus +tests_arbvpwarpmesh src/tests arbvpwarpmesh +tests_arraytexture src/tests arraytexture +tests_auxbuffer src/tests auxbuffer +tests_blendxor src/tests blendxor +tests_blitfb src/tests blitfb +tests_bufferobj src/tests bufferobj +tests_bug_3050 src/tests bug_3050 +tests_bug_3101 src/tests bug_3101 +tests_bug_3195 src/tests bug_3195 +tests_bug_texstore_i8 src/tests bug_texstore_i8 +tests_bumpmap src/tests bumpmap +tests_calibrate_rast src/tests calibrate_rast +tests_condrender src/tests condrender +#tests_copypixrate src/tests copypixrate # XXX: benchmark +tests_cva src/tests cva +tests_cva_huge src/tests cva_huge +tests_cylwrap src/tests cylwrap +tests_drawbuffers src/tests drawbuffers +tests_drawbuffers2 src/tests drawbuffers2 +tests_drawstencil src/tests drawstencil +tests_exactrast src/tests exactrast +tests_ext422square src/tests ext422square +tests_fbotest1 src/tests fbotest1 +tests_fbotest2 src/tests fbotest2 +tests_fbotest3 src/tests fbotest3 +#tests_fillrate src/tests fillrate # XXX: benchmark +tests_floattex src/tests floattex +tests_fogcoord src/tests fogcoord +tests_fptest1 src/tests fptest1 +tests_fptexture src/tests fptexture +tests_getteximage src/tests getteximage +tests_glutfx src/tests glutfx +tests_interleave src/tests interleave +tests_invert src/tests invert +tests_jkrahntest src/tests jkrahntest +tests_lineclip src/tests lineclip +tests_manytex src/tests manytex +tests_mapbufrange src/tests mapbufrange +tests_minmag src/tests minmag +tests_mipgen src/tests mipgen +tests_mipmap_comp src/tests mipmap_comp +tests_mipmap_comp_tests src/tests mipmap_comp_tests +tests_mipmap_limits src/tests mipmap_limits +tests_mipmap_tunnel src/tests mipmap_tunnel +tests_mipmap_view src/tests mipmap_view +tests_multipal src/tests multipal +tests_multitexarray src/tests multitexarray +tests_multiwindow src/tests multiwindow +tests_no_s3tc src/tests no_s3tc +tests_occlude src/tests occlude +tests_packedpixels src/tests packedpixels +tests_pbo src/tests pbo +tests_persp_hint src/tests persp_hint +tests_prim src/tests prim +tests_prog_parameter src/tests prog_parameter +tests_quads src/tests quads +tests_random src/tests random +#tests_readrate src/tests readrate # XXX: benchmark +tests_rubberband src/tests rubberband +tests_scissor src/tests scissor +tests_scissor-viewport src/tests scissor-viewport +tests_seccolor src/tests seccolor +tests_shader-interp src/tests shader-interp +tests_shader_api src/tests shader_api +tests_shadow-sample src/tests shadow-sample +tests_sharedtex src/tests sharedtex +tests_stencilreaddraw src/tests stencilreaddraw +tests_stencilwrap src/tests stencilwrap +tests_step src/tests step +tests_streaming_rect src/tests streaming_rect +tests_subtex src/tests subtex +#tests_subtexrate src/tests subtexrate # XXX: benchmark +tests_tex1d src/tests tex1d +tests_texcmp src/tests texcmp +tests_texcompress2 src/tests texcompress2 +tests_texcompsub src/tests texcompsub +tests_texdown src/tests texdown +tests_texfilt src/tests texfilt +tests_texgenmix src/tests texgenmix +tests_texleak src/tests texleak +tests_texline src/tests texline +tests_texobj src/tests texobj +tests_texobjshare src/tests texobjshare +tests_texrect src/tests texrect +tests_unfilledclip src/tests unfilledclip +tests_vparray src/tests vparray +tests_vpeval src/tests vpeval +tests_vptest1 src/tests vptest1 +tests_vptest2 src/tests vptest2 +tests_vptest3 src/tests vptest3 +tests_vptorus src/tests vptorus +tests_vpwarpmesh src/tests vpwarpmesh +tests_yuvrect src/tests yuvrect +tests_yuvsquare src/tests yuvsquare +tests_zbitmap src/tests zbitmap +tests_zcomp src/tests zcomp +tests_zdrawpix src/tests zdrawpix +tests_zreaddraw src/tests zreaddraw + +#vp_vp-tris src/vp vp-tris +#vpglsl_vp-tris src/vpglsl vp-tris + +xdemos_corender src/xdemos corender +xdemos_glsync src/xdemos glsync +#xdemos_glthreads src/xdemos glthreads # XXX: multithreaded +xdemos_glxcontexts src/xdemos glxcontexts +xdemos_glxdemo src/xdemos glxdemo +xdemos_glxgears src/xdemos glxgears +xdemos_glxgears_fbconfig src/xdemos glxgears_fbconfig +xdemos_glxgears_pixmap src/xdemos glxgears_pixmap +xdemos_glxheads src/xdemos glxheads +xdemos_glxinfo src/xdemos glxinfo +xdemos_glxpbdemo src/xdemos glxpbdemo +xdemos_glxpixmap src/xdemos glxpixmap +xdemos_glxsnoop src/xdemos glxsnoop +xdemos_glxswapcontrol src/xdemos glxswapcontrol +xdemos_manywin src/xdemos manywin +xdemos_msctest src/xdemos msctest +xdemos_multictx src/xdemos multictx +xdemos_offset src/xdemos offset +xdemos_omlsync src/xdemos omlsync +xdemos_opencloseopen src/xdemos opencloseopen +xdemos_overlay src/xdemos overlay +xdemos_pbdemo src/xdemos pbdemo +xdemos_pbinfo src/xdemos pbinfo +xdemos_shape src/xdemos shape +xdemos_sharedtex src/xdemos sharedtex +#xdemos_sharedtex_mt src/xdemos sharedtex_mt # XXX: multithreaded +xdemos_texture_from_pixmap src/xdemos texture_from_pixmap +xdemos_wincopy src/xdemos wincopy +xdemos_xfont src/xdemos xfont +xdemos_xrotfontdemo src/xdemos xrotfontdemo +xdemos_yuvrect_client src/xdemos yuvrect_client diff --git a/mesademos.py b/mesademos.py deleted file mode 100755 index 21b0af4..0000000 --- a/mesademos.py +++ /dev/null @@ -1,650 +0,0 @@ -#!/usr/bin/env python -########################################################################## -# -# Copyright 2011 Jose Fonseca -# All Rights Reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -##########################################################################/ - - -'''Apitrace test suite based on Mesa demos.''' - - - -import os.path -import optparse -import sys - -from test import Report, TestCase - - -def runtest(report, demo): - app = os.path.join(options.mesa_demos, 'src', demo) - dirname, basename = os.path.split(app) - name = demo.replace('/', '-') - args = [os.path.join('.', basename)] - - test = TestCase( - name = name, - args = args, - cwd = dirname, - build = options.build, - results = options.results, - ) - test.run(report) - - - -tests = [ - 'trivial/clear-color', - 'trivial/clear-fbo', - 'trivial/clear-fbo-scissor', - 'trivial/clear-fbo-tex', - 'trivial/clear-random', - 'trivial/clear-repeat', - 'trivial/clear-scissor', - 'trivial/clear-undefined', - 'trivial/createwin', - 'trivial/dlist-begin-call-end', - 'trivial/dlist-dangling', - 'trivial/dlist-degenerate', - 'trivial/dlist-edgeflag', - 'trivial/dlist-edgeflag-dangling', - 'trivial/dlist-flat-tri', - 'trivial/dlist-mat-tri', - 'trivial/dlist-recursive-call', - 'trivial/dlist-tri-flat-tri', - 'trivial/dlist-tri-mat-tri', - 'trivial/draw2arrays', - 'trivial/drawarrays', - 'trivial/drawelements', - 'trivial/drawelements-large', - 'trivial/drawrange', - 'trivial/flat-clip', - 'trivial/fs-tri', - 'trivial/line', - 'trivial/line-clip', - 'trivial/line-cull', - 'trivial/line-flat', - 'trivial/line-smooth', - 'trivial/line-stipple-wide', - 'trivial/line-userclip', - 'trivial/line-userclip-clip', - 'trivial/line-userclip-nop', - 'trivial/line-userclip-nop-clip', - 'trivial/line-wide', - 'trivial/line-xor', - 'trivial/lineloop', - 'trivial/lineloop-clip', - 'trivial/lineloop-elts', - 'trivial/linestrip', - 'trivial/linestrip-clip', - 'trivial/linestrip-flat-stipple', - 'trivial/linestrip-stipple', - 'trivial/linestrip-stipple-wide', - 'trivial/long-fixed-func', - 'trivial/pgon-mode', - 'trivial/point', - 'trivial/point-clip', - 'trivial/point-param', - 'trivial/point-sprite', - 'trivial/point-wide', - 'trivial/point-wide-smooth', - 'trivial/poly', - 'trivial/poly-flat', - 'trivial/poly-flat-clip', - 'trivial/poly-flat-unfilled-clip', - 'trivial/poly-unfilled', - 'trivial/quad', - 'trivial/quad-clip', - 'trivial/quad-clip-all-vertices', - 'trivial/quad-clip-nearplane', - 'trivial/quad-degenerate', - 'trivial/quad-flat', - 'trivial/quad-offset-factor', - 'trivial/quad-offset-unfilled', - 'trivial/quad-offset-units', - 'trivial/quad-tex-2d', - 'trivial/quad-tex-3d', - 'trivial/quad-tex-alpha', - 'trivial/quad-tex-pbo', - 'trivial/quad-tex-sub', - 'trivial/quad-unfilled', - 'trivial/quad-unfilled-clip', - 'trivial/quad-unfilled-stipple', - 'trivial/quads', - 'trivial/quadstrip', - 'trivial/quadstrip-clip', - 'trivial/quadstrip-cont', - 'trivial/quadstrip-flat', - 'trivial/readpixels', - 'trivial/sub-tex', - 'trivial/tex-quads', - 'trivial/tri', - 'trivial/tri-alpha', - 'trivial/tri-alpha-tex', - 'trivial/tri-array-interleaved', - 'trivial/tri-blend', - 'trivial/tri-blend-color', - 'trivial/tri-blend-max', - 'trivial/tri-blend-min', - 'trivial/tri-blend-revsub', - 'trivial/tri-blend-sub', - 'trivial/tri-clear', - 'trivial/tri-clip', - 'trivial/tri-cull', - 'trivial/tri-cull-both', - 'trivial/tri-dlist', - 'trivial/tri-edgeflag', - 'trivial/tri-edgeflag-array', - 'trivial/tri-fbo', - 'trivial/tri-fbo-tex', - 'trivial/tri-fbo-tex-mip', - 'trivial/tri-flat', - 'trivial/tri-flat-clip', - 'trivial/tri-fog', - 'trivial/tri-fp', - 'trivial/tri-fp-const-imm', - 'trivial/tri-lit', - 'trivial/tri-lit-material', - 'trivial/tri-logicop-none', - 'trivial/tri-logicop-xor', - 'trivial/tri-mask-tri', - 'trivial/tri-multitex-vbo', - 'trivial/tri-orig', - 'trivial/tri-point-line-clipped', - 'trivial/tri-query', - 'trivial/tri-repeat', - 'trivial/tri-scissor-tri', - 'trivial/tri-square', - 'trivial/tri-stencil', - 'trivial/tri-stipple', - 'trivial/tri-tex', - 'trivial/tri-tex-1d', - 'trivial/tri-tex-3d', - 'trivial/tri-tri', - 'trivial/tri-unfilled', - 'trivial/tri-unfilled-clip', - 'trivial/tri-unfilled-edgeflag', - 'trivial/tri-unfilled-fog', - 'trivial/tri-unfilled-point', - 'trivial/tri-unfilled-smooth', - 'trivial/tri-unfilled-tri', - 'trivial/tri-unfilled-tri-lit', - 'trivial/tri-unfilled-userclip', - 'trivial/tri-unfilled-userclip-stip', - 'trivial/tri-userclip', - 'trivial/tri-viewport', - 'trivial/tri-z', - 'trivial/tri-z-9', - 'trivial/tri-z-eq', - 'trivial/trifan', - 'trivial/trifan-flat', - 'trivial/trifan-flat-clip', - 'trivial/trifan-flat-unfilled-clip', - 'trivial/trifan-unfilled', - 'trivial/tristrip', - 'trivial/tristrip-clip', - 'trivial/tristrip-flat', - 'trivial/vbo-drawarrays', - 'trivial/vbo-drawelements', - 'trivial/vbo-drawrange', - 'trivial/vbo-noninterleaved', - 'trivial/vbo-tri', - 'trivial/vp-array', - 'trivial/vp-array-hf', - 'trivial/vp-array-int', - 'trivial/vp-clip', - 'trivial/vp-line-clip', - 'trivial/vp-tri', - 'trivial/vp-tri-cb', - 'trivial/vp-tri-cb-pos', - 'trivial/vp-tri-cb-tex', - 'trivial/vp-tri-imm', - 'trivial/vp-tri-invariant', - 'trivial/vp-tri-swap', - 'trivial/vp-tri-tex', - 'trivial/vp-unfilled', - - 'demos/arbfplight', - 'demos/arbfslight', - 'demos/arbocclude', - 'demos/arbocclude2', - 'demos/bounce', - 'demos/clearspd', - 'demos/copypix', - 'demos/cubemap', - 'demos/cuberender', - 'demos/dinoshade', - 'demos/dissolve', - 'demos/drawpix', - 'demos/engine', - 'demos/fbo_firecube', - 'demos/fbotexture', - 'demos/fire', - 'demos/fogcoord', - 'demos/fplight', - 'demos/fslight', - 'demos/gamma', - 'demos/gearbox', - 'demos/gears', - 'demos/geartrain', - 'demos/glinfo', - 'demos/gloss', - 'demos/gltestperf', - 'demos/ipers', - 'demos/isosurf', - 'demos/lodbias', - 'demos/morph3d', - 'demos/multiarb', - 'demos/paltex', - 'demos/pointblast', - 'demos/projtex', - 'demos/rain', - 'demos/ray', - 'demos/readpix', - 'demos/reflect', - 'demos/renormal', - 'demos/shadowtex', - 'demos/singlebuffer', - 'demos/spectex', - 'demos/spriteblast', - 'demos/stex3d', - 'demos/teapot', - 'demos/terrain', - 'demos/tessdemo', - 'demos/texcyl', - 'demos/texenv', - 'demos/textures', - 'demos/trispd', - 'demos/tunnel', - 'demos/tunnel2', - 'demos/vao_demo', - 'demos/winpos', - - #'fp/fp-tri', # XXX: parameterized - 'fp/point-position', - 'fp/tri-depth', - 'fp/tri-depth2', - 'fp/tri-depthwrite', - 'fp/tri-depthwrite2', - 'fp/tri-param', - 'fp/tri-tex', - - #'fpglsl/fp-tri', - - 'glsl/array', - 'glsl/bezier', - 'glsl/bitmap', - 'glsl/brick', - 'glsl/bump', - 'glsl/convolutions', - 'glsl/deriv', - 'glsl/fragcoord', - 'glsl/fsraytrace', - 'glsl/geom-sprites', - 'glsl/geom-stipple-lines', - 'glsl/geom-wide-lines', - 'glsl/identity', - 'glsl/linktest', - 'glsl/mandelbrot', - 'glsl/multinoise', - 'glsl/multitex', - 'glsl/noise', - 'glsl/noise2', - 'glsl/pointcoord', - 'glsl/points', - 'glsl/samplers', - 'glsl/shadow_sampler', - 'glsl/shtest', - 'glsl/skinning', - 'glsl/texaaline', - 'glsl/texdemo1', - 'glsl/toyball', - 'glsl/trirast', - 'glsl/twoside', - 'glsl/vert-or-frag-only', - 'glsl/vert-tex', - 'glsl/vsraytrace', - - #'gs/gs-tri', - - #'perf/copytex', - #'perf/drawoverhead', - #'perf/fbobind', - #'perf/fill', - #'perf/genmipmap', - #'perf/readpixels', - #'perf/swapbuffers', - #'perf/teximage', - #'perf/vbo', - #'perf/vertexrate', - - 'redbook/aaindex', - 'redbook/aapoly', - 'redbook/aargb', - 'redbook/accanti', - 'redbook/accpersp', - 'redbook/alpha', - 'redbook/alpha3D', - 'redbook/anti', - 'redbook/bezcurve', - 'redbook/bezmesh', - 'redbook/checker', - 'redbook/clip', - 'redbook/colormat', - 'redbook/combiner', - 'redbook/convolution', - 'redbook/cube', - 'redbook/cubemap', - 'redbook/depthcue', - 'redbook/dof', - 'redbook/double', - 'redbook/drawf', - 'redbook/feedback', - 'redbook/fog', - 'redbook/fogcoord', - 'redbook/fogindex', - 'redbook/font', - 'redbook/hello', - 'redbook/histogram', - 'redbook/image', - 'redbook/light', - 'redbook/lines', - 'redbook/list', - 'redbook/material', - 'redbook/minmax', - 'redbook/mipmap', - 'redbook/model', - 'redbook/movelight', - 'redbook/multisamp', - 'redbook/multitex', - 'redbook/mvarray', - 'redbook/nurbs', - 'redbook/pickdepth', - 'redbook/picksquare', - 'redbook/plane', - 'redbook/planet', - 'redbook/pointp', - 'redbook/polyoff', - 'redbook/polys', - 'redbook/quadric', - 'redbook/robot', - 'redbook/sccolorlight', - 'redbook/scene', - 'redbook/scenebamb', - 'redbook/sceneflat', - 'redbook/select', - 'redbook/shadowmap', - 'redbook/smooth', - 'redbook/stencil', - 'redbook/stroke', - 'redbook/surface', - 'redbook/surfpoints', - 'redbook/teaambient', - 'redbook/teapots', - 'redbook/tess', - 'redbook/tesswind', - 'redbook/texbind', - 'redbook/texgen', - 'redbook/texprox', - 'redbook/texsub', - 'redbook/texture3d', - 'redbook/texturesurf', - 'redbook/torus', - 'redbook/trim', - 'redbook/unproject', - 'redbook/varray', - 'redbook/wrap', - - 'samples/accum', - 'samples/bitmap1', - 'samples/bitmap2', - 'samples/blendeq', - 'samples/blendxor', - 'samples/copy', - 'samples/cursor', - 'samples/depth', - 'samples/eval', - 'samples/fog', - 'samples/font', - 'samples/line', - 'samples/logo', - 'samples/nurb', - 'samples/oglinfo', - 'samples/olympic', - 'samples/overlay', - 'samples/point', - 'samples/prim', - 'samples/quad', - 'samples/rgbtoppm', - 'samples/select', - 'samples/shape', - 'samples/sphere', - 'samples/star', - 'samples/stencil', - 'samples/stretch', - 'samples/texture', - 'samples/tri', - 'samples/wave', - - #'slang/cltest', - #'slang/sotest', - #'slang/vstest', - - 'tests/afsmultiarb', - 'tests/antialias', - 'tests/arbfpspec', - 'tests/arbfptest1', - 'tests/arbfptexture', - 'tests/arbfptrig', - 'tests/arbgpuprog', - 'tests/arbnpot', - 'tests/arbnpot-mipmap', - 'tests/arbvptest1', - 'tests/arbvptest3', - 'tests/arbvptorus', - 'tests/arbvpwarpmesh', - 'tests/arraytexture', - 'tests/auxbuffer', - 'tests/blendxor', - 'tests/blitfb', - 'tests/bufferobj', - 'tests/bug_3050', - 'tests/bug_3101', - 'tests/bug_3195', - 'tests/bug_texstore_i8', - 'tests/bumpmap', - 'tests/calibrate_rast', - 'tests/condrender', - #'tests/copypixrate', # XXX: benchmark - 'tests/cva', - 'tests/cva_huge', - 'tests/cylwrap', - 'tests/drawbuffers', - 'tests/drawbuffers2', - 'tests/drawstencil', - 'tests/exactrast', - 'tests/ext422square', - 'tests/fbotest1', - 'tests/fbotest2', - 'tests/fbotest3', - #'tests/fillrate', # XXX: benchmark - 'tests/floattex', - 'tests/fogcoord', - 'tests/fptest1', - 'tests/fptexture', - 'tests/getteximage', - 'tests/glutfx', - 'tests/interleave', - 'tests/invert', - 'tests/jkrahntest', - 'tests/lineclip', - 'tests/manytex', - 'tests/mapbufrange', - 'tests/minmag', - 'tests/mipgen', - 'tests/mipmap_comp', - 'tests/mipmap_comp_tests', - 'tests/mipmap_limits', - 'tests/mipmap_tunnel', - 'tests/mipmap_view', - 'tests/multipal', - 'tests/multitexarray', - 'tests/multiwindow', - 'tests/no_s3tc', - 'tests/occlude', - 'tests/packedpixels', - 'tests/pbo', - 'tests/persp_hint', - 'tests/prim', - 'tests/prog_parameter', - 'tests/quads', - 'tests/random', - #'tests/readrate', # XXX: benchmark - 'tests/rubberband', - 'tests/scissor', - 'tests/scissor-viewport', - 'tests/seccolor', - 'tests/shader-interp', - 'tests/shader_api', - 'tests/shadow-sample', - 'tests/sharedtex', - 'tests/stencilreaddraw', - 'tests/stencilwrap', - 'tests/step', - 'tests/streaming_rect', - 'tests/subtex', - #'tests/subtexrate', # XXX: benchmark - 'tests/tex1d', - 'tests/texcmp', - 'tests/texcompress2', - 'tests/texcompsub', - 'tests/texdown', - 'tests/texfilt', - 'tests/texgenmix', - 'tests/texleak', - 'tests/texline', - 'tests/texobj', - 'tests/texobjshare', - 'tests/texrect', - 'tests/unfilledclip', - 'tests/vparray', - 'tests/vpeval', - 'tests/vptest1', - 'tests/vptest2', - 'tests/vptest3', - 'tests/vptorus', - 'tests/vpwarpmesh', - 'tests/yuvrect', - 'tests/yuvsquare', - 'tests/zbitmap', - 'tests/zcomp', - 'tests/zdrawpix', - 'tests/zreaddraw', - - #'vp/vp-tris', - #'vpglsl/vp-tris', - - 'xdemos/corender', - 'xdemos/glsync', - #'xdemos/glthreads', # XXX: multithreaded - 'xdemos/glxcontexts', - 'xdemos/glxdemo', - 'xdemos/glxgears', - 'xdemos/glxgears_fbconfig', - 'xdemos/glxgears_pixmap', - 'xdemos/glxheads', - 'xdemos/glxinfo', - 'xdemos/glxpbdemo', - 'xdemos/glxpixmap', - 'xdemos/glxsnoop', - 'xdemos/glxswapcontrol', - 'xdemos/manywin', - 'xdemos/msctest', - 'xdemos/multictx', - 'xdemos/offset', - 'xdemos/omlsync', - 'xdemos/opencloseopen', - 'xdemos/overlay', - 'xdemos/pbdemo', - 'xdemos/pbinfo', - 'xdemos/shape', - 'xdemos/sharedtex', - #'xdemos/sharedtex_mt', # XXX: multithreaded - 'xdemos/texture_from_pixmap', - 'xdemos/wincopy', - 'xdemos/xfont', - 'xdemos/xrotfontdemo', - 'xdemos/yuvrect_client', -] - - -_tests = [ - 'trivial/tri', - 'trivial/tri-tex', -] - - -def main(): - global options - - # Parse command line options - optparser = optparse.OptionParser( - usage='\n\t%prog [options] [demo] ...', - version='%%prog') - optparser.add_option( - '--build', metavar='PATH', - type='string', dest='build', default='.', - help='path to apitrace build [default=%default]') - optparser.add_option( - '--results', metavar='PATH', - type='string', dest='results', default='results', - help='results directory [default=%default]') - optparser.add_option( - '--mesa-demos', metavar='PATH', - type='string', dest='mesa_demos', default=os.environ.get('MESA_DEMOS'), - help='path to Mesa demos [default=%default]') - - (options, args) = optparser.parse_args(sys.argv[1:]) - - if not options.mesa_demos: - optparser.error('path to Mesa demos not specified') - - if args: - testlist = [] - for arg in args: - if arg.endswith('/'): - for test in tests: - if test.startswith(arg): - testlist.append(test) - else: - testlist.append(arg) - else: - testlist = tests - - report = Report(options.results) - for test in testlist: - runtest(report, test) - - -if __name__ == '__main__': - main() diff --git a/ogl-samples.spec b/ogl-samples.spec new file mode 100644 index 0000000..8b0522e --- /dev/null +++ b/ogl-samples.spec @@ -0,0 +1,104 @@ +# ogl-samples +# http://www.opengl.org/sdk/docs/tutorials/OGLSamples/ +# +# name cwd command args ... +ogl-210-buffer-type build release/ogl-210-buffer-type +ogl-210-buffer-update build release/ogl-210-buffer-update +ogl-210-draw-elements build release/ogl-210-draw-elements +ogl-210-draw-range build release/ogl-210-draw-range +ogl-210-query-occlusion build release/ogl-210-query-occlusion +ogl-210-rasterizer-viewport build release/ogl-210-rasterizer-viewport +ogl-210-sampler-anisotropy-ext build release/ogl-210-sampler-anisotropy-ext +ogl-210-sampler-filter build release/ogl-210-sampler-filter +ogl-210-sampler-wrap build release/ogl-210-sampler-wrap +ogl-210-test-scissor build release/ogl-210-test-scissor +ogl-210-texture-2d build release/ogl-210-texture-2d +ogl-210-texture-compressed-ext build release/ogl-210-texture-compressed-ext +ogl-300-fbo-multisample build release/ogl-300-fbo-multisample +ogl-300-test-alpha build release/ogl-300-test-alpha +ogl-330-blend-index build release/ogl-330-blend-index +ogl-330-blend-rtt build release/ogl-330-blend-rtt +ogl-330-buffer-type build release/ogl-330-buffer-type +ogl-330-buffer-uniform build release/ogl-330-buffer-uniform +ogl-330-buffer-uniform-shared build release/ogl-330-buffer-uniform-shared +ogl-330-buffer-update build release/ogl-330-buffer-update +ogl-330-draw-instanced build release/ogl-330-draw-instanced +ogl-330-draw-instanced-array build release/ogl-330-draw-instanced-array +ogl-330-draw-instanced-array-dsa-gtc build release/ogl-330-draw-instanced-array-dsa-gtc +ogl-330-draw-multiple build release/ogl-330-draw-multiple +ogl-330-error-sampler-gather build release/ogl-330-error-sampler-gather +ogl-330-error-sampler-offset build release/ogl-330-error-sampler-offset +ogl-330-error-vao build release/ogl-330-error-vao +ogl-330-fbo-blit build release/ogl-330-fbo-blit +ogl-330-fbo-layered build release/ogl-330-fbo-layered +ogl-330-fbo-mipmaps build release/ogl-330-fbo-mipmaps +ogl-330-fbo-multisample build release/ogl-330-fbo-multisample +ogl-330-fbo-multisample-custom-resolve build release/ogl-330-fbo-multisample-custom-resolve +ogl-330-fbo-rtt build release/ogl-330-fbo-rtt +ogl-330-fbo-rtt-texture-array build release/ogl-330-fbo-rtt-texture-array +ogl-330-fbo-srgb build release/ogl-330-fbo-srgb +ogl-330-glsl-discard build release/ogl-330-glsl-discard +ogl-330-primitive-flat-shading build release/ogl-330-primitive-flat-shading +ogl-330-primitive-smooth-shading build release/ogl-330-primitive-smooth-shading +ogl-330-query-conditional build release/ogl-330-query-conditional +ogl-330-query-occlusion build release/ogl-330-query-occlusion +ogl-330-query-timer build release/ogl-330-query-timer +ogl-330-rasterizer-viewport build release/ogl-330-rasterizer-viewport +ogl-330-sampler-anisotropy-ext build release/ogl-330-sampler-anisotropy-ext +ogl-330-sampler-fetch build release/ogl-330-sampler-fetch +ogl-330-sampler-filter build release/ogl-330-sampler-filter +ogl-330-sampler-object build release/ogl-330-sampler-object +ogl-330-sampler-offset build release/ogl-330-sampler-offset +ogl-330-sampler-wrap build release/ogl-330-sampler-wrap +ogl-330-sync build release/ogl-330-sync +ogl-330-test-scissor build release/ogl-330-test-scissor +ogl-330-texture-2d build release/ogl-330-texture-2d +ogl-330-texture-array build release/ogl-330-texture-array +ogl-330-texture-buffer build release/ogl-330-texture-buffer +ogl-330-texture-compressed-ext build release/ogl-330-texture-compressed-ext +ogl-330-texture-cube build release/ogl-330-texture-cube +ogl-330-texture-rect build release/ogl-330-texture-rect +ogl-330-texture-streaming build release/ogl-330-texture-streaming +ogl-330-texture-swizzle build release/ogl-330-texture-swizzle +ogl-330-transform-feedback build release/ogl-330-transform-feedback +ogl-400-blend-rtt build release/ogl-400-blend-rtt +ogl-400-buffer-uniform build release/ogl-400-buffer-uniform +ogl-400-buffer-uniform-shared-gtc build release/ogl-400-buffer-uniform-shared-gtc +ogl-400-draw-indirect build release/ogl-400-draw-indirect +ogl-400-error-sampler-fetch build release/ogl-400-error-sampler-fetch +ogl-400-fbo-layered build release/ogl-400-fbo-layered +ogl-400-fbo-multisample build release/ogl-400-fbo-multisample +ogl-400-fbo-rtt build release/ogl-400-fbo-rtt +ogl-400-fbo-rtt-texture-array build release/ogl-400-fbo-rtt-texture-array +ogl-400-primitive-instanced build release/ogl-400-primitive-instanced +ogl-400-primitive-smooth-shading build release/ogl-400-primitive-smooth-shading +ogl-400-primitive-tessellation build release/ogl-400-primitive-tessellation +ogl-400-program-64 build release/ogl-400-program-64 +ogl-400-program-subroutine build release/ogl-400-program-subroutine +ogl-400-program-varying-blocks build release/ogl-400-program-varying-blocks +ogl-400-program-varying-structs build release/ogl-400-program-varying-structs +ogl-400-sampler-array build release/ogl-400-sampler-array +ogl-400-sampler-array-gtc build release/ogl-400-sampler-array-gtc +ogl-400-sampler-fetch build release/ogl-400-sampler-fetch +ogl-400-sampler-gather build release/ogl-400-sampler-gather +ogl-400-texture-buffer-rgb build release/ogl-400-texture-buffer-rgb +ogl-400-texture-compressed-arb build release/ogl-400-texture-compressed-arb +ogl-400-transform-feedback-object build release/ogl-400-transform-feedback-object +ogl-410-debug-output-arb build release/ogl-410-debug-output-arb +ogl-410-fbo-layered build release/ogl-410-fbo-layered +ogl-410-fbo-multisample-dsa-ext build release/ogl-410-fbo-multisample-dsa-ext +ogl-410-fbo-multisample-dsa-gtc build release/ogl-410-fbo-multisample-dsa-gtc +ogl-410-fbo-multisample-position-amd build release/ogl-410-fbo-multisample-position-amd +ogl-410-fbo-rtt-dsa-ext build release/ogl-410-fbo-rtt-dsa-ext +ogl-410-primitive-bindless-nv build release/ogl-410-primitive-bindless-nv +ogl-410-primitive-instanced build release/ogl-410-primitive-instanced +ogl-410-primitive-tessellation-2 build release/ogl-410-primitive-tessellation-2 +ogl-410-primitive-tessellation-5 build release/ogl-410-primitive-tessellation-5 +ogl-410-program-64 build release/ogl-410-program-64 +ogl-410-program-binary build release/ogl-410-program-binary +ogl-410-program-separate-dsa-gtc build release/ogl-410-program-separate-dsa-gtc +ogl-410-program-varying-gtc build release/ogl-410-program-varying-gtc +ogl-410-sampler-fetch-dsa-ext build release/ogl-410-sampler-fetch-dsa-ext +ogl-410-texture-barrier-nv build release/ogl-410-texture-barrier-nv +ogl-410-texture-copy-nv build release/ogl-410-texture-copy-nv +ogl-410-texture-image-ext build release/ogl-410-texture-image-ext diff --git a/test.py b/test.py index 3c96c12..ec25fab 100755 --- a/test.py +++ b/test.py @@ -111,7 +111,7 @@ class Report: class TestCase: - def __init__(self, name, args, cwd=None, build = '.', results = '.'): + def __init__(self, name, args, cwd=None, build=None, results = '.'): self.name = name self.args = args self.cwd = cwd @@ -121,14 +121,20 @@ class TestCase: if not os.path.exists(results): os.makedirs(results) + + def _get_build_path(self, path): + if self.build is not None: + path = os.path.abspath(os.path.join(self.build, path)) + if not os.path.exists(path): + sys.stderr.write('error: %s does not exist\n' % path) + sys.exit(1) + return path + def run(self, report): trace = os.path.abspath(os.path.join(self.results, self.name + '.trace')) - ld_preload = os.path.abspath(os.path.join(self.build, 'glxtrace.so')) - if not os.path.exists(ld_preload): - sys.stderr.write('error: could not find %s\n' % ld_preload) - sys.exit(1) + ld_preload = self._get_build_path('glxtrace.so') env = os.environ.copy() env['LD_PRELOAD'] = ld_preload @@ -166,11 +172,10 @@ class TestCase: p.terminate() p.wait() elif p.returncode: - print p.returncode sys.stdout.write('FAIL (trace)\n') return - p = popen([os.path.join(self.build, 'tracedump'), trace], stdout=subprocess.PIPE) + p = popen([self._get_build_path('tracedump'), trace], stdout=subprocess.PIPE) call_re = re.compile('^([0-9]+) (\w+)\(') swapbuffers = 0 flushes = 0 @@ -187,13 +192,12 @@ class TestCase: swapbuffers += 1 if function_name in ('glFlush', 'glFinish'): flushes += 1 - #print orig_line p.wait() if p.returncode != 0: sys.stdout.write('FAIL (tracedump)\n') return - args = [os.path.join(self.build, 'glretrace')] + args = [self._get_build_path('glretrace')] if swapbuffers: args += ['-db'] frames = swapbuffers @@ -250,15 +254,15 @@ def main(): usage='\n\t%prog [options] -- program [args] ...', version='%%prog') optparser.add_option( - '--build', metavar='PATH', - type='string', dest='build', default='.', - help='path to apitrace build [default=%default]') + '-B', '--build', metavar='PATH', + type='string', dest='build', default=None, + help='path to apitrace build') optparser.add_option( - '--cwd', metavar='PATH', - type='string', dest='cwd', default='.', - help='change directory [default=%default]') + '-C', '--directory', metavar='PATH', + type='string', dest='cwd', default=None, + help='change to directory') optparser.add_option( - '--results', metavar='PATH', + '-R', '--results', metavar='PATH', type='string', dest='results', default='results', help='results directory [default=%default]') diff --git a/testsuite.py b/testsuite.py new file mode 100755 index 0000000..c3ad2b1 --- /dev/null +++ b/testsuite.py @@ -0,0 +1,125 @@ +#!/usr/bin/env python +########################################################################## +# +# Copyright 2011 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +import fnmatch +import optparse +import os.path +import sys + +from test import Report, TestCase + + +def runtest(report, demo): + app = os.path.join(options.mesa_demos, 'src', demo) + dirname, basename = os.path.split(app) + name = demo.replace('/', '-') + args = [os.path.join('.', basename)] + + test = TestCase( + name = name, + args = args, + cwd = dirname, + build = options.build, + results = options.results, + ) + test.run(report) + + +def parse_spec(filename): + testlist = [] + for line in open(filename, 'rt'): + if line.lstrip().startswith('#') or not line.strip(): + # comment / empty + continue + fields = line.split() + + name = fields.pop(0) + cwd = fields.pop(0) + args = fields + + if cwd: + if options.cwd is not None: + cwd = os.path.join(options.cwd, cwd) + if not os.path.dirname(args[0]): + args[0] = os.path.join('.', args[0]) + else: + cwd = None + + test = TestCase( + name = name, + args = args, + cwd = cwd, + build = options.build, + results = options.results, + ) + + testlist.append(test) + return testlist + + +def main(): + global options + + # Parse command line options + optparser = optparse.OptionParser( + usage='\n\t%prog [options] testspec [glob] ...', + version='%%prog') + optparser.add_option( + '-B', '--build', metavar='PATH', + type='string', dest='build', default=None, + help='path to apitrace build') + optparser.add_option( + '-C', '--directory', metavar='PATH', + type='string', dest='cwd', default=None, + help='change to directory') + optparser.add_option( + '-R', '--results', metavar='PATH', + type='string', dest='results', default='results', + help='results directory [default=%default]') + + (options, args) = optparser.parse_args(sys.argv[1:]) + if not args: + optparser.error('a test spec must be specified') + + spec = args.pop(0) + testlist = parse_spec(spec) + + if args: + new_testlist = [] + for test in testlist: + for pattern in args: + if fnmatch.fnmatchcase(test.name, pattern): + new_testlist.append(test) + testlist = new_testlist + + report = Report(options.results) + for test in testlist: + test.run(report) + + +if __name__ == '__main__': + main()