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