xref: /aosp_15_r20/external/crosvm/third_party/virglrenderer/tests/meson.build (revision bbecb9d118dfdb95f99bd754f8fa9be01f189df3)
1*bbecb9d1SAndroid Build Coastguard Worker#############################################################################
2*bbecb9d1SAndroid Build Coastguard Worker#
3*bbecb9d1SAndroid Build Coastguard Worker# Copyright (C) 2019 Collabora Ltd
4*bbecb9d1SAndroid Build Coastguard Worker#
5*bbecb9d1SAndroid Build Coastguard Worker# Permission is hereby granted, free of charge, to any person obtaining a
6*bbecb9d1SAndroid Build Coastguard Worker# copy of this software and associated documentation files (the "Software"),
7*bbecb9d1SAndroid Build Coastguard Worker# to deal in the Software without restriction, including without limitation
8*bbecb9d1SAndroid Build Coastguard Worker# the rights to use, copy, modify, merge, publish, distribute, sublicense,
9*bbecb9d1SAndroid Build Coastguard Worker# and/or sell copies of the Software, and to permit persons to whom the
10*bbecb9d1SAndroid Build Coastguard Worker# Software is furnished to do so, subject to the following conditions:
11*bbecb9d1SAndroid Build Coastguard Worker#
12*bbecb9d1SAndroid Build Coastguard Worker# The above copyright notice and this permission notice shall be included
13*bbecb9d1SAndroid Build Coastguard Worker# in all copies or substantial portions of the Software.
14*bbecb9d1SAndroid Build Coastguard Worker#
15*bbecb9d1SAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16*bbecb9d1SAndroid Build Coastguard Worker# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*bbecb9d1SAndroid Build Coastguard Worker# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18*bbecb9d1SAndroid Build Coastguard Worker# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
19*bbecb9d1SAndroid Build Coastguard Worker# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20*bbecb9d1SAndroid Build Coastguard Worker# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21*bbecb9d1SAndroid Build Coastguard Worker# OTHER DEALINGS IN THE SOFTWARE.
22*bbecb9d1SAndroid Build Coastguard Worker#
23*bbecb9d1SAndroid Build Coastguard Worker
24*bbecb9d1SAndroid Build Coastguard Workercheck_dep = dependency('check')
25*bbecb9d1SAndroid Build Coastguard Worker
26*bbecb9d1SAndroid Build Coastguard Workerlibvrtest_sources = [
27*bbecb9d1SAndroid Build Coastguard Worker   'testvirgl.c',
28*bbecb9d1SAndroid Build Coastguard Worker   'testvirgl.h',
29*bbecb9d1SAndroid Build Coastguard Worker   'testvirgl_encode.c',
30*bbecb9d1SAndroid Build Coastguard Worker   'testvirgl_encode.h',
31*bbecb9d1SAndroid Build Coastguard Worker]
32*bbecb9d1SAndroid Build Coastguard Worker
33*bbecb9d1SAndroid Build Coastguard Workerlibvrtest_depends = [
34*bbecb9d1SAndroid Build Coastguard Worker   libvirgl_dep,
35*bbecb9d1SAndroid Build Coastguard Worker   gallium_dep,
36*bbecb9d1SAndroid Build Coastguard Worker   check_dep,
37*bbecb9d1SAndroid Build Coastguard Worker]
38*bbecb9d1SAndroid Build Coastguard Worker
39*bbecb9d1SAndroid Build Coastguard Workerif with_tracing == 'percetto'
40*bbecb9d1SAndroid Build Coastguard Worker   libvrtest_depends += [percetto_dep]
41*bbecb9d1SAndroid Build Coastguard Workerendif
42*bbecb9d1SAndroid Build Coastguard Worker
43*bbecb9d1SAndroid Build Coastguard Workerlibvrtest = static_library(
44*bbecb9d1SAndroid Build Coastguard Worker   'vrtest',
45*bbecb9d1SAndroid Build Coastguard Worker   libvrtest_sources,
46*bbecb9d1SAndroid Build Coastguard Worker   dependencies : libvrtest_depends
47*bbecb9d1SAndroid Build Coastguard Worker)
48*bbecb9d1SAndroid Build Coastguard Worker
49*bbecb9d1SAndroid Build Coastguard Workertests = [
50*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_init', 'test_virgl_init.c'],
51*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_fence', 'test_virgl_fence.c'],
52*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_resource', 'test_virgl_resource.c'],
53*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_transfer', 'test_virgl_transfer.c'],
54*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_cmd', 'test_virgl_cmd.c'],
55*bbecb9d1SAndroid Build Coastguard Worker   ['test_virgl_strbuf', 'test_virgl_strbuf.c']
56*bbecb9d1SAndroid Build Coastguard Worker]
57*bbecb9d1SAndroid Build Coastguard Worker
58*bbecb9d1SAndroid Build Coastguard Workerfuzzy_tests = [
59*bbecb9d1SAndroid Build Coastguard Worker   ['test_fuzzer_formats', 'test_fuzzer_formats.c'],
60*bbecb9d1SAndroid Build Coastguard Worker]
61*bbecb9d1SAndroid Build Coastguard Worker
62*bbecb9d1SAndroid Build Coastguard Workertest_depends = [
63*bbecb9d1SAndroid Build Coastguard Worker   libvirglrenderer_dep,
64*bbecb9d1SAndroid Build Coastguard Worker   check_dep,
65*bbecb9d1SAndroid Build Coastguard Worker]
66*bbecb9d1SAndroid Build Coastguard Worker
67*bbecb9d1SAndroid Build Coastguard Workerif with_tracing == 'percetto'
68*bbecb9d1SAndroid Build Coastguard Worker   test_depends += [percetto_dep]
69*bbecb9d1SAndroid Build Coastguard Workerendif
70*bbecb9d1SAndroid Build Coastguard Worker
71*bbecb9d1SAndroid Build Coastguard Workerforeach t : tests
72*bbecb9d1SAndroid Build Coastguard Worker   test_virgl = executable(t[0], t[1], link_with: libvrtest,
73*bbecb9d1SAndroid Build Coastguard Worker                           dependencies : test_depends)
74*bbecb9d1SAndroid Build Coastguard Worker   test(t[0], test_virgl)
75*bbecb9d1SAndroid Build Coastguard Workerendforeach
76*bbecb9d1SAndroid Build Coastguard Worker
77*bbecb9d1SAndroid Build Coastguard Worker
78*bbecb9d1SAndroid Build Coastguard Workerfuzzytest_depends = [
79*bbecb9d1SAndroid Build Coastguard Worker   libvirglrenderer_dep,
80*bbecb9d1SAndroid Build Coastguard Worker   epoxy_dep,
81*bbecb9d1SAndroid Build Coastguard Worker]
82*bbecb9d1SAndroid Build Coastguard Worker
83*bbecb9d1SAndroid Build Coastguard Workerif with_tracing == 'percetto'
84*bbecb9d1SAndroid Build Coastguard Worker   fuzzytest_depends += [percetto_dep]
85*bbecb9d1SAndroid Build Coastguard Workerendif
86*bbecb9d1SAndroid Build Coastguard Worker
87*bbecb9d1SAndroid Build Coastguard Workerforeach t : fuzzy_tests
88*bbecb9d1SAndroid Build Coastguard Worker   test_virgl_fuzzy = executable(t[0], t[1], link_with: libvrtest,
89*bbecb9d1SAndroid Build Coastguard Worker                                 dependencies : fuzzytest_depends)
90*bbecb9d1SAndroid Build Coastguard Worker   test(t[0], test_virgl)
91*bbecb9d1SAndroid Build Coastguard Workerendforeach
92*bbecb9d1SAndroid Build Coastguard Worker
93*bbecb9d1SAndroid Build Coastguard Worker
94*bbecb9d1SAndroid Build Coastguard Workerif with_valgrind
95*bbecb9d1SAndroid Build Coastguard Worker   valgrind = find_program('valgrind')
96*bbecb9d1SAndroid Build Coastguard Worker   surpression_path = join_paths(meson.current_source_dir(), 'valgrind.suppressions')
97*bbecb9d1SAndroid Build Coastguard Worker   args = ['--leak-check=full', '--quiet', '--error-exitcode=3',
98*bbecb9d1SAndroid Build Coastguard Worker           '--suppressions='+ surpression_path]
99*bbecb9d1SAndroid Build Coastguard Worker   foreach t : tests
100*bbecb9d1SAndroid Build Coastguard Worker      test('valgrind-' + t[0],
101*bbecb9d1SAndroid Build Coastguard Worker           valgrind,
102*bbecb9d1SAndroid Build Coastguard Worker           args : args + [join_paths(meson.current_build_dir(), t[0])],
103*bbecb9d1SAndroid Build Coastguard Worker           timeout : 1800)
104*bbecb9d1SAndroid Build Coastguard Worker   endforeach
105*bbecb9d1SAndroid Build Coastguard Workerendif
106*bbecb9d1SAndroid Build Coastguard Worker
107*bbecb9d1SAndroid Build Coastguard Workerif with_fuzzer
108*bbecb9d1SAndroid Build Coastguard Worker   subdir('fuzzer')
109*bbecb9d1SAndroid Build Coastguard Workerendif
110