mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-08 18:36:17 +01:00
4d4ff213f2
Skipped tests use "77" as the return value, so return 77 instead of 0 when the static-link.py test gets skipped because of a missing environment variable.
52 lines
1.9 KiB
Python
Executable File
52 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# Copyright (C) 2018 Collabora Inc.
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General
|
|
# Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# Author: Xavier Claessens <xavier.claessens@collabora.com>
|
|
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
import subprocess
|
|
|
|
if not 'GLIB_TEST_COMPILATION' in os.environ:
|
|
print('''Test disabled because GLIB_TEST_COMPILATION is not set in the env.
|
|
If you wish to run this test, set GLIB_TEST_COMPILATION=1 in the env,
|
|
and make sure you have glib build dependencies installed, including
|
|
meson.''')
|
|
sys.exit(77)
|
|
|
|
if len(sys.argv) != 2:
|
|
print('Usage: {} <gio-2.0.pc dir>'.format(os.path.basename(sys.argv[0])))
|
|
sys.exit(1)
|
|
|
|
test_dir = os.path.dirname(sys.argv[0])
|
|
|
|
with tempfile.TemporaryDirectory() as builddir:
|
|
env = os.environ.copy()
|
|
env['PKG_CONFIG_PATH'] = sys.argv[1]
|
|
sourcedir = os.path.join(test_dir, 'static-link')
|
|
|
|
# Ensure we can static link and run a test app
|
|
subprocess.check_call(['meson', sourcedir, builddir], env=env)
|
|
subprocess.check_call(['ninja', '-C', builddir, 'test'], env=env)
|
|
# FIXME: This probably only works on Linux
|
|
out = subprocess.check_output(['ldd', os.path.join(builddir, 'test-static-link')], env=env).decode()
|
|
if 'libgio' in out:
|
|
print('test-static-link is dynamically linked on libgio')
|
|
exit(1)
|