Commit 386939f9 authored by Emmanuele Bassi's avatar Emmanuele Bassi

meson: Install tests and additional data

parent 09623d50
......@@ -15,6 +15,7 @@ pango_libdir = join_paths(pango_prefix, get_option('libdir'))
pango_sysconfdir = join_paths(pango_prefix, get_option('sysconfdir'))
pango_includedir = join_paths(pango_prefix, get_option('includedir'))
pango_datadir = join_paths(pango_prefix, get_option('datadir'))
pango_libexecdir = join_paths(pango_prefix, get_option('libexecdir'))
version = meson.project_version().split('.')
pango_major_version = version[0].to_int()
......
import sys
# From glib/gutf8.c:
#
#define UNICODE_VALID(Char) \
# ((Char) < 0x110000 && (((Char) & 0xFFFFF800) != 0xD800))
def is_valid_unicode(ch):
if ch < 0x110000 and (ch & 0xFFFFF800) != 0xD800:
return True
return False
if __name__ == '__main__':
if len(sys.argv) < 2:
sys.exit('Usage: gen-all-unicode.py OUTFILE')
with open(sys.argv[1], 'wb') as f:
for j in range(0, 2):
for i in range(0, 65536):
if is_valid_unicode(i):
f.write(chr(i).encode('utf-8', 'surrogatepass'))
if j == 1:
f.write(b' ')
if j == 0:
if i % 40 == 0 and i != 0:
f.write(b'\n')
else:
if i % 20 == 0 and i != 0:
f.write(b'\n')
f.write(b'\n')
import sys
import argparse
import os
template = '''[Test]
Type=session
Exec={}
'''
def build_template(test_dir, test_name):
return template.format(os.path.join(test_dir, test_name))
if __name__ == '__main__':
argparser = argparse.ArgumentParser(description='Generate installed-test description file')
argparser.add_argument('installed_test_dir', help='Path for installed test binaries')
argparser.add_argument('test_name', help='Name of the test unit')
argparser.add_argument('out_dir', help='Path for the output')
args = argparser.parse_args()
outfile = os.path.join(args.out_dir, args.test_name + '.test')
with open(outfile, 'w') as f:
f.write(build_template(args.installed_test_dir, args.test_name))
......@@ -43,15 +43,87 @@ if cairo_dep.found()
]
endif
installed_test_data = [
'boundaries.utf8',
'GraphemeBreakTest.txt',
]
test_layouts_data = [
'layouts/valid-1',
'layouts/valid-2',
]
test_markups_data = [
'markups/fail-1',
'markups/fail-2',
'markups/fail-3',
'markups/fail-4',
'markups/fail-5',
'markups/valid-1',
'markups/valid-2',
'markups/valid-3',
'markups/valid-4',
'markups/valid-5',
'markups/valid-6',
'markups/valid-7',
'markups/valid-8',
'markups/valid-9',
]
installed_test_layouts_data = []
foreach d: test_layouts_data
installed_test_layouts_data += d + '.markup'
installed_test_layouts_data += d + '.expected'
endforeach
installed_test_markups_data = []
foreach d: test_markups_data
installed_test_markups_data += d + '.markup'
installed_test_markups_data += d + '.expected'
endforeach
installed_test_datadir = join_paths(pango_datadir, 'installed-tests', 'pango')
installed_test_bindir = join_paths(pango_libexecdir, 'installed-tests', 'pango')
install_data(installed_test_data, install_dir: installed_test_bindir)
install_data(installed_test_layouts_data, install_dir: join_paths(installed_test_bindir, 'layouts'))
install_data(installed_test_markups_data, install_dir: join_paths(installed_test_bindir, 'markups'))
python = import('python3').find_python()
gen_installed_test = files([ 'gen-installed-test.py' ])
gen_all_unicode = files([ 'gen-all-unicode.py' ])
custom_target('all-unicode',
output: 'all-unicode.txt',
command: [
python, gen_all_unicode, '@OUTPUT@'
],
install: true,
install_dir: installed_test_bindir)
foreach t: tests
name = t[0]
src = t.get(1, [ '@0@.c'.format(name) ])
deps = t.get(2, [ libpango_dep ])
custom_target(name + '.test',
output: name + '.test',
command: [
python, gen_installed_test,
installed_test_bindir,
name,
'@OUTDIR@',
],
install: true,
install_dir: installed_test_datadir)
bin = executable(name, src,
dependencies: deps,
include_directories: root_inc,
c_args: common_cflags + pango_debug_cflags + test_cflags,
cpp_args: common_cppflags + pango_debug_cflags + test_cflags)
cpp_args: common_cppflags + pango_debug_cflags + test_cflags,
install: true,
install_dir: installed_test_bindir)
test(name, bin, env: test_env)
endforeach
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment