Files
xserver/test/meson.build
Eric Anholt 58c168ad93 test: Execute rendercheck tests without using piglit.
This gets us parallelism between rendercheck tests at the cost of
spinning up more Xvfbs, and nicer logging of the tests that are run.

Signed-off-by: Eric Anholt <eric@anholt.net>
2019-03-28 13:55:19 -07:00

174 lines
5.2 KiB
Meson

simple_xinit = executable(
'simple-xinit',
'simple-xinit.c',
include_directories: inc,
)
piglit_env = environment()
piglit_env.set('XSERVER_DIR', meson.source_root())
piglit_env.set('XSERVER_BUILDDIR', meson.build_root())
rendercheck_tests = [
['blend/All/a8r8g8b8', '-t blend -f a8r8g8b8'],
['blend/All/x8r8g8b8', '-t blend -f a8r8g8b8,x8r8g8b8'],
['blend/All/a2r10g10b10', '-t blend -f a8r8g8b8,a2r10g10b10'],
['blend/Clear', '-t blend -o clear'],
['blend/Src', '-t blend -o src'],
['blend/Over', '-t blend -o over'],
['composite/All/a8r8g8b8', '-t composite -f a8r8g8b8'],
['composite/All/x8r8g8b8', '-t composite -f a8r8g8b8,x8r8g8b8'],
['composite/All/a2r10g10b10', '-t composite -f a8r8g8b8,a2r10g10b10'],
['ca composite/All/a8r8g8b8', '-t cacomposite -f a8r8g8b8'],
['ca composite/All/a8', '-t cacomposite -f a8r8g8b8,a8'],
['ca composite/All/x8r8g8b8', '-t cacomposite -f a8r8g8b8,x8r8g8b8'],
['ca composite/All/a2r10g10b10', '-t cacomposite -f a8r8g8b8,a2r10g10b10'],
['fill', '-t fill'],
['bug7366', '-t bug7366'],
['destination coordinates', '-t dcoords'],
['source coordinates', '-t scoords'],
['mask coordinates', '-t mcoords'],
['translated source coordinates', '-t tscoords'],
['translated mask coordinates', '-t tmcoords'],
['triangles', '-t triangles'],
['LibreOffice xRGB', '-t libreoffice_xrgb'],
['GTK ARGB vs xBGR', '-t gtk_argb_xbgr'],
]
rendercheck = find_program('rendercheck', required:false)
xvfb_args = [
xvfb_server.full_path(),
'-screen',
'scrn',
'1280x1024x24',
]
if get_option('xvfb')
test('XTS',
find_program('scripts/xvfb-piglit.sh'),
env: piglit_env,
timeout: 1200,
suite: 'xvfb'
)
if rendercheck.found()
foreach rctest: rendercheck_tests
test(rctest[0],
simple_xinit,
# Use full_path so people can copy and paste the
# command line from testlog.txt easily.
args: [
rendercheck.path(),
rctest[1].split(' '),
'--',
xvfb_args,
],
suite: 'xvfb'
)
endforeach
endif
if get_option('xephyr') and build_glamor
test('XTS',
find_program('scripts/xephyr-glamor-piglit.sh'),
env: piglit_env,
timeout: 1200,
suite: 'xephr-glamor',
)
if rendercheck.found()
foreach rctest: rendercheck_tests
test(rctest[0],
simple_xinit,
args: [simple_xinit.full_path(),
rendercheck.path(),
rctest[1].split(' '),
'----',
xephyr_server.full_path(),
'-glamor',
'-glamor-skip-present',
'-schedMax', '2000',
'--',
xvfb_args,
],
suite: 'xephr-glamor',
timeout: 300,
)
endforeach
endif
endif
endif
subdir('bigreq')
subdir('damage')
subdir('sync')
if build_xorg
# Tests that require at least some DDX functions in order to fully link
# For now, requires xf86 ddx, could be adjusted to use another
unit_sources = [
'../mi/miinitext.c',
'fixes.c',
'input.c',
'list.c',
'misc.c',
'signal-logging.c',
'string.c',
'test_xkb.c',
'tests-common.c',
'tests.c',
'touch.c',
'xfree86.c',
'xtest.c',
]
unit_defines = ['-DXORG_TESTS']
unit_includes = [inc, xorg_inc]
if build_res
unit_sources += ['hashtabletest.c']
unit_defines += ['-DRES_TESTS']
endif
if meson.get_compiler('c').has_link_argument('-Wl,-wrap')
unit_sources += [
'xi1/protocol-xchangedevicecontrol.c',
'xi2/protocol-common.c',
'xi2/protocol-xiqueryversion.c',
'xi2/protocol-xiquerydevice.c',
'xi2/protocol-xiselectevents.c',
'xi2/protocol-xigetselectedevents.c',
'xi2/protocol-xisetclientpointer.c',
'xi2/protocol-xigetclientpointer.c',
'xi2/protocol-xiquerypointer.c',
'xi2/protocol-xipassivegrabdevice.c',
'xi2/protocol-xiwarppointer.c',
'xi2/protocol-eventconvert.c',
'xi2/xi2.c',
]
unit_defines += ['-DLDWRAP_TESTS']
unit_includes += [include_directories('xi1', 'xi2')]
ldwraps = [
'-Wl,-wrap,dixLookupWindow',
'-Wl,-wrap,dixLookupClient',
'-Wl,-wrap,WriteToClient',
'-Wl,-wrap,dixLookupWindow',
'-Wl,-wrap,XISetEventMask',
'-Wl,-wrap,AddResource',
'-Wl,-wrap,GrabButton',
]
else
ldwraps = []
message('ld -wrap required for xi1 & xi2 unit tests, skipping')
endif
unit = executable('tests',
unit_sources,
c_args: unit_defines,
dependencies: pixman_dep,
include_directories: unit_includes,
link_args: ldwraps,
link_with: xorg_link,
)
test('unit', unit)
endif