11b5d61b8Smrgsimple_xinit = executable( 21b5d61b8Smrg 'simple-xinit', 31b5d61b8Smrg 'simple-xinit.c', 41b5d61b8Smrg include_directories: inc, 51b5d61b8Smrg) 61b5d61b8Smrg 71b5d61b8Smrgpiglit_env = environment() 81b5d61b8Smrgpiglit_env.set('XSERVER_DIR', meson.source_root()) 91b5d61b8Smrgpiglit_env.set('XSERVER_BUILDDIR', meson.build_root()) 101b5d61b8Smrg 11ed6184dfSmrgsome_ops = ' -o clear,src,dst,over,xor,disjointover' 12ed6184dfSmrgrendercheck_tests = [ 13ed6184dfSmrg ['blend/All/a8r8g8b8', '-t blend -f a8r8g8b8'], 14ed6184dfSmrg ['blend/All/x8r8g8b8', '-t blend -f a8r8g8b8,x8r8g8b8'], 15ed6184dfSmrg ['blend/All/a2r10g10b10', '-t blend -f a8r8g8b8,a2r10g10b10'], 16ed6184dfSmrg ['blend/Clear', '-t blend -o clear'], 17ed6184dfSmrg ['blend/Src', '-t blend -o src'], 18ed6184dfSmrg ['blend/Over', '-t blend -o over'], 19ed6184dfSmrg ['composite/Some/a8r8g8b8', '-t composite -f a8r8g8b8' + some_ops], 20ed6184dfSmrg ['composite/Some/x8r8g8b8', '-t composite -f a8r8g8b8,x8r8g8b8' + some_ops], 21ed6184dfSmrg ['composite/Some/a2r10g10b10', '-t composite -f a8r8g8b8,a2r10g10b10' + some_ops], 22ed6184dfSmrg ['ca composite/Some/a8r8g8b8', '-t cacomposite -f a8r8g8b8' + some_ops], 23ed6184dfSmrg ['ca composite/Some/a8', '-t cacomposite -f a8r8g8b8,a8' + some_ops], 24ed6184dfSmrg ['ca composite/Some/x8r8g8b8', '-t cacomposite -f a8r8g8b8,x8r8g8b8' + some_ops], 25ed6184dfSmrg ['ca composite/Some/a2r10g10b10', '-t cacomposite -f a8r8g8b8,a2r10g10b10' + some_ops], 26ed6184dfSmrg ['fill', '-t fill'], 27ed6184dfSmrg ['bug7366', '-t bug7366'], 28ed6184dfSmrg ['destination coordinates', '-t dcoords'], 29ed6184dfSmrg ['source coordinates', '-t scoords'], 30ed6184dfSmrg ['mask coordinates', '-t mcoords'], 31ed6184dfSmrg ['translated source coordinates', '-t tscoords'], 32ed6184dfSmrg ['translated mask coordinates', '-t tmcoords'], 33ed6184dfSmrg ['triangles', '-t triangles'], 34ed6184dfSmrg ['LibreOffice xRGB', '-t libreoffice_xrgb'], 35ed6184dfSmrg ['GTK ARGB vs xBGR', '-t gtk_argb_xbgr'], 36ed6184dfSmrg] 37ed6184dfSmrg 38ed6184dfSmrgrendercheck = find_program('rendercheck', required:false) 39ed6184dfSmrg 401b5d61b8Smrgif get_option('xvfb') 41ed6184dfSmrg xvfb_args = [ 42ed6184dfSmrg xvfb_server.full_path(), 43ed6184dfSmrg '-screen', 44ed6184dfSmrg 'scrn', 45ed6184dfSmrg '1280x1024x24', 46ed6184dfSmrg ] 47ed6184dfSmrg 48ed6184dfSmrg test('XTS', 49ed6184dfSmrg find_program('scripts/xvfb-piglit.sh'), 501b5d61b8Smrg env: piglit_env, 511b5d61b8Smrg timeout: 1200, 52ed6184dfSmrg suite: 'xvfb' 531b5d61b8Smrg ) 541b5d61b8Smrg 55ed6184dfSmrg if rendercheck.found() 56ed6184dfSmrg foreach rctest: rendercheck_tests 57ed6184dfSmrg test(rctest[0], 58ed6184dfSmrg simple_xinit, 59ed6184dfSmrg # Use full_path so people can copy and paste the 60ed6184dfSmrg # command line from testlog.txt easily. 61ed6184dfSmrg args: [ 62ed6184dfSmrg rendercheck.path(), 63ed6184dfSmrg rctest[1].split(' '), 64ed6184dfSmrg '--', 65ed6184dfSmrg xvfb_args, 66ed6184dfSmrg ], 67ed6184dfSmrg suite: 'xvfb' 68ed6184dfSmrg ) 69ed6184dfSmrg endforeach 70ed6184dfSmrg endif 71ed6184dfSmrg 721b5d61b8Smrg if get_option('xephyr') and build_glamor 73ed6184dfSmrg test('XTS', 741b5d61b8Smrg find_program('scripts/xephyr-glamor-piglit.sh'), 751b5d61b8Smrg env: piglit_env, 761b5d61b8Smrg timeout: 1200, 77ed6184dfSmrg suite: 'xephr-glamor', 781b5d61b8Smrg ) 79ed6184dfSmrg 80ed6184dfSmrg if rendercheck.found() 81ed6184dfSmrg foreach rctest: rendercheck_tests 82ed6184dfSmrg test(rctest[0], 83ed6184dfSmrg simple_xinit, 84ed6184dfSmrg args: [simple_xinit.full_path(), 85ed6184dfSmrg rendercheck.path(), 86ed6184dfSmrg rctest[1].split(' '), 87ed6184dfSmrg '----', 88ed6184dfSmrg xephyr_server.full_path(), 89ed6184dfSmrg '-glamor', 90ed6184dfSmrg '-glamor-skip-present', 91ed6184dfSmrg '-schedMax', '2000', 92ed6184dfSmrg '--', 93ed6184dfSmrg xvfb_args, 94ed6184dfSmrg ], 95ed6184dfSmrg suite: 'xephr-glamor', 96ed6184dfSmrg timeout: 300, 97ed6184dfSmrg ) 98ed6184dfSmrg endforeach 99ed6184dfSmrg endif 1001b5d61b8Smrg endif 1011b5d61b8Smrgendif 1021b5d61b8Smrg 1031b5d61b8Smrgsubdir('bigreq') 104ed6184dfSmrgsubdir('damage') 1051b5d61b8Smrgsubdir('sync') 106ed6184dfSmrg 107ed6184dfSmrgif build_xorg 108ed6184dfSmrg# Tests that require at least some DDX functions in order to fully link 109ed6184dfSmrg# For now, requires xf86 ddx, could be adjusted to use another 110ed6184dfSmrg unit_sources = [ 111ed6184dfSmrg '../mi/miinitext.c', 112ed6184dfSmrg '../mi/miinitext.h', 113dc61d50dSmrg '../mi/micmap.c', 114dc61d50dSmrg '../mi/micmap.h', 115ed6184dfSmrg 'fixes.c', 116ed6184dfSmrg 'input.c', 117ed6184dfSmrg 'list.c', 118ed6184dfSmrg 'misc.c', 119ed6184dfSmrg 'signal-logging.c', 120ed6184dfSmrg 'string.c', 121ed6184dfSmrg 'test_xkb.c', 122ed6184dfSmrg 'tests-common.c', 123ed6184dfSmrg 'tests.c', 124ed6184dfSmrg 'touch.c', 125ed6184dfSmrg 'xfree86.c', 126ed6184dfSmrg 'xtest.c', 127ed6184dfSmrg ] 128ed6184dfSmrg unit_defines = ['-DXORG_TESTS'] 129ed6184dfSmrg unit_includes = [inc, xorg_inc] 130ed6184dfSmrg 131ed6184dfSmrg if build_res 132ed6184dfSmrg unit_sources += ['hashtabletest.c'] 133ed6184dfSmrg unit_defines += ['-DRES_TESTS'] 134ed6184dfSmrg endif 135ed6184dfSmrg 136ed6184dfSmrg unit_c_args = unit_defines 137ed6184dfSmrg if meson.get_compiler('c').has_link_argument('-Wl,-wrap') 138ed6184dfSmrg # LTO breaks with -Wl,-wrap on certain configurations 139ed6184dfSmrg unit_c_args += ['-fno-lto'] 140ed6184dfSmrg unit_sources += [ 141ed6184dfSmrg 'xi1/protocol-xchangedevicecontrol.c', 142ed6184dfSmrg 'xi2/protocol-common.c', 143ed6184dfSmrg 'xi2/protocol-xiqueryversion.c', 144ed6184dfSmrg 'xi2/protocol-xiquerydevice.c', 145ed6184dfSmrg 'xi2/protocol-xiselectevents.c', 146ed6184dfSmrg 'xi2/protocol-xigetselectedevents.c', 147ed6184dfSmrg 'xi2/protocol-xisetclientpointer.c', 148ed6184dfSmrg 'xi2/protocol-xigetclientpointer.c', 149ed6184dfSmrg 'xi2/protocol-xiquerypointer.c', 150ed6184dfSmrg 'xi2/protocol-xipassivegrabdevice.c', 151ed6184dfSmrg 'xi2/protocol-xiwarppointer.c', 152ed6184dfSmrg 'xi2/protocol-eventconvert.c', 153ed6184dfSmrg 'xi2/xi2.c', 154ed6184dfSmrg ] 155ed6184dfSmrg unit_defines += ['-DLDWRAP_TESTS'] 156ed6184dfSmrg unit_includes += [include_directories('xi1', 'xi2')] 157ed6184dfSmrg ldwraps = [ 158ed6184dfSmrg '-Wl,-wrap,dixLookupWindow', 159ed6184dfSmrg '-Wl,-wrap,dixLookupClient', 160ed6184dfSmrg '-Wl,-wrap,WriteToClient', 161ed6184dfSmrg '-Wl,-wrap,dixLookupWindow', 162ed6184dfSmrg '-Wl,-wrap,XISetEventMask', 163ed6184dfSmrg '-Wl,-wrap,AddResource', 164ed6184dfSmrg '-Wl,-wrap,GrabButton', 165ed6184dfSmrg ] 166ed6184dfSmrg else 167ed6184dfSmrg ldwraps = [] 168ed6184dfSmrg message('ld -wrap required for xi1 & xi2 unit tests, skipping') 169ed6184dfSmrg endif 170ed6184dfSmrg 171ed6184dfSmrg unit = executable('tests', 172ed6184dfSmrg unit_sources, 173ed6184dfSmrg c_args: unit_c_args, 174ed6184dfSmrg dependencies: [pixman_dep, randrproto_dep, inputproto_dep, libxcvt_dep], 175ed6184dfSmrg include_directories: unit_includes, 176ed6184dfSmrg link_args: ldwraps, 177ed6184dfSmrg link_with: xorg_link, 178ed6184dfSmrg ) 179ed6184dfSmrg 180ed6184dfSmrg test('unit', unit) 181ed6184dfSmrgendif 182