summaryrefslogtreecommitdiff
path: root/xserver/test
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2023-01-22 09:21:12 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2023-01-22 09:21:12 +0000
commit5137be12226ec726cde8f1b16f38c9d0f63c8281 (patch)
tree2fa203cf313cd57f13dba789aae25c5cdf0aaf9b /xserver/test
parent2ca49aa841311a3b1769ec80cd148c2b7d1c7501 (diff)
Add back the meson build system to xserver.
Not having those file only create noise when merging upstream releases.
Diffstat (limited to 'xserver/test')
-rw-r--r--xserver/test/bigreq/meson.build10
-rw-r--r--xserver/test/damage/meson.build9
-rw-r--r--xserver/test/meson.build181
-rw-r--r--xserver/test/sync/meson.build9
4 files changed, 209 insertions, 0 deletions
diff --git a/xserver/test/bigreq/meson.build b/xserver/test/bigreq/meson.build
new file mode 100644
index 000000000..c544703e2
--- /dev/null
+++ b/xserver/test/bigreq/meson.build
@@ -0,0 +1,10 @@
+xcb_dep = dependency('xcb', required: false)
+xcb_xinput_dep = dependency('xcb-xinput', required: false)
+
+if get_option('xvfb')
+ if xcb_dep.found() and xcb_xinput_dep.found()
+ requestlength = executable('request-length', 'request-length.c',
+ dependencies: [xcb_dep, xcb_xinput_dep])
+ test('request-length', simple_xinit, args: [requestlength, '--', xvfb_server])
+ endif
+endif
diff --git a/xserver/test/damage/meson.build b/xserver/test/damage/meson.build
new file mode 100644
index 000000000..091caff5f
--- /dev/null
+++ b/xserver/test/damage/meson.build
@@ -0,0 +1,9 @@
+xcb_dep = dependency('xcb', required: false)
+xcb_damage_dep = dependency('xcb-damage', required: false)
+
+if get_option('xvfb')
+ if xcb_dep.found() and xcb_damage_dep.found()
+ damage_primitives = executable('damage-primitives', 'primitives.c', dependencies: [xcb_dep, xcb_damage_dep])
+ test('damage-primitives', simple_xinit, args: [damage_primitives, '--', xvfb_server])
+ endif
+endif
diff --git a/xserver/test/meson.build b/xserver/test/meson.build
new file mode 100644
index 000000000..7cd636939
--- /dev/null
+++ b/xserver/test/meson.build
@@ -0,0 +1,181 @@
+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())
+
+some_ops = ' -o clear,src,dst,over,xor,disjointover'
+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/Some/a8r8g8b8', '-t composite -f a8r8g8b8' + some_ops],
+ ['composite/Some/x8r8g8b8', '-t composite -f a8r8g8b8,x8r8g8b8' + some_ops],
+ ['composite/Some/a2r10g10b10', '-t composite -f a8r8g8b8,a2r10g10b10' + some_ops],
+ ['ca composite/Some/a8r8g8b8', '-t cacomposite -f a8r8g8b8' + some_ops],
+ ['ca composite/Some/a8', '-t cacomposite -f a8r8g8b8,a8' + some_ops],
+ ['ca composite/Some/x8r8g8b8', '-t cacomposite -f a8r8g8b8,x8r8g8b8' + some_ops],
+ ['ca composite/Some/a2r10g10b10', '-t cacomposite -f a8r8g8b8,a2r10g10b10' + some_ops],
+ ['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)
+
+if get_option('xvfb')
+ xvfb_args = [
+ xvfb_server.full_path(),
+ '-screen',
+ 'scrn',
+ '1280x1024x24',
+ ]
+
+ 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',
+ '../mi/miinitext.h',
+ '../mi/micmap.c',
+ '../mi/micmap.h',
+ '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
+
+ unit_c_args = unit_defines
+ if meson.get_compiler('c').has_link_argument('-Wl,-wrap')
+ # LTO breaks with -Wl,-wrap on certain configurations
+ unit_c_args += ['-fno-lto']
+ 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_c_args,
+ dependencies: [pixman_dep, randrproto_dep, inputproto_dep, libxcvt_dep],
+ include_directories: unit_includes,
+ link_args: ldwraps,
+ link_with: xorg_link,
+ )
+
+ test('unit', unit)
+endif
diff --git a/xserver/test/sync/meson.build b/xserver/test/sync/meson.build
new file mode 100644
index 000000000..dfae75b1e
--- /dev/null
+++ b/xserver/test/sync/meson.build
@@ -0,0 +1,9 @@
+xcb_dep = dependency('xcb', required: false)
+xcb_sync_dep = dependency('xcb-sync', required: false)
+
+if get_option('xvfb')
+ if xcb_dep.found() and xcb_sync_dep.found()
+ sync = executable('sync', 'sync.c', dependencies: [xcb_dep, xcb_sync_dep])
+ test('sync', simple_xinit, args: [sync, '--', xvfb_server])
+ endif
+endif