test/data: Generate a separate installable set of data files

Some of the strings we need to substitute into these files are not
the same for as-installed testing as for build-time testing.

Signed-off-by: Simon McVittie <smcv@collabora.com>
This commit is contained in:
Simon McVittie 2022-06-23 20:26:55 +01:00
parent 67b651d1c6
commit fa764fe4e9
2 changed files with 51 additions and 7 deletions

View file

@ -0,0 +1,45 @@
# Copyright © 2019-2020 Salamandar <felix@piedallu.me>
# Copyright 2022 Collabora Ltd.
# SPDX-License-Identifier: MIT
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# Some configuration parameters used in installed-tests are not the same
# as the configuration parameters used during build-time testing.
installed_tests_config = configuration_data()
installed_tests_config.merge_from(data_config)
installed_tests_config.set('DBUS_TEST_DATA', get_option('prefix') / test_exec_dir / 'data')
installed_tests_config.set('DBUS_TEST_EXEC', get_option('prefix') / test_exec_dir)
installed_tests_config.set('EXEEXT', exe_ext)
installed_tests_config.set('TEST_LAUNCH_HELPER_BINARY', '/bin/false')
foreach file : data_in_to_install
# Underscorify the output name because Meson doesn't allow subdir output files
configured_file = configure_file(
input : files('../' + file + '.in'),
output: file.underscorify(),
configuration: installed_tests_config,
)
if install_tests
install_data(configured_file,
rename: file,
install_dir: test_exec_dir / 'data',
)
endif
endforeach

View file

@ -160,15 +160,10 @@ foreach file : data_in_to_install
output: file.underscorify(),
configuration: test_data_config,
)
if install_tests
install_data(configured_file,
rename: file,
install_dir: test_exec_dir / 'data',
)
endif
# We don't install this version: see test/data/installable/ for the
# version that we *do* install.
endforeach
###############################################################################
# Copy files into correct places in build directory for tests
@ -202,3 +197,7 @@ files_not_found = run_result.stdout().split()
if files_not_found.length() > 0
error('Those files could not be copied for test : @0@'.format(files_not_found))
endif
if install_tests
subdir('installable')
endif