From: Thibault Saunier Date: Tue, 25 Jul 2017 20:18:26 +0000 (-0400) Subject: Fix simply running testsuite in meson X-Git-Tag: 1.19.3~485^2~93 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fcbca025e30b76b74af3ed1d7c16915c1560c0d8;p=platform%2Fupstream%2Fgstreamer.git Fix simply running testsuite in meson - Make sure to never have root folder in sys.path when running meson, as pythondetector won't be able to access gi._overridesdir - Generate a mesonconfig.py file that will be used by the testsuite to know where meson generated files, making `python -m unittest` working. --- diff --git a/gi/overrides/meson.build b/gi/overrides/meson.build index 6987e2c..e99236a 100644 --- a/gi/overrides/meson.build +++ b/gi/overrides/meson.build @@ -12,7 +12,7 @@ gstpython = shared_library('_gi_gst', # Workaround to get uninstalled working. foreach source: pysources - run_command(python, '-c', 'import os; os.symlink("@0@/@1@", "@2@/@3@")'.format( + run_command(python3, '-c', 'import os; os.symlink("@0@/@1@", "@2@/@3@")'.format( meson.current_source_dir(), source, meson.current_build_dir(), source)) endforeach diff --git a/meson.build b/meson.build index 6d2d89f..6103294 100644 --- a/meson.build +++ b/meson.build @@ -21,7 +21,7 @@ gmodule_dep = dependency('gmodule-2.0') pygobject_dep = dependency('pygobject-3.0', version : '>= 3.0') python_dep = dependency('python3') -python = find_program('python3') +python3 = import('python3').find_python() pythondetector = find_program('scripts/pythondetector') cres = run_command(pythondetector, '--sosuffix') @@ -83,5 +83,4 @@ subdir('gi') subdir('plugin') subdir('testsuite') -python3 = find_program('python3') run_command(python3, '-c', 'import shutil; shutil.copy("hooks/pre-commit.hook", ".git/hooks/pre-commit")') diff --git a/scripts/pythondetector b/scripts/pythondetector index 2671e27..e633734 100644 --- a/scripts/pythondetector +++ b/scripts/pythondetector @@ -7,6 +7,12 @@ import sys from distutils import sysconfig +try: + sys.path.remove(os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), + '..'))) +except ValueError: + pass + def get_python_abiflags(): return sysconfig.get_config_var("ABIFLAGS") diff --git a/testsuite/meson.build b/testsuite/meson.build index 8d31544..24c0b58 100644 --- a/testsuite/meson.build +++ b/testsuite/meson.build @@ -17,6 +17,14 @@ if not meson.is_subproject() endif endif +runcmd = run_command(python3, '-c', '''with open("@0@/mesonconfig.py", "w") as f: + f.write("path='@1@'")'''.format( + meson.current_source_dir(), join_paths(meson.current_build_dir(), '../'))) + +if runcmd.returncode() != 0 + error('Could not configure testsuite config file.' + runcmd.stderr()) +endif + foreach i: tests test_name = i.get(0) env = environment() diff --git a/testsuite/overrides_hack.py b/testsuite/overrides_hack.py index 77cf032..9094cfa 100644 --- a/testsuite/overrides_hack.py +++ b/testsuite/overrides_hack.py @@ -1,6 +1,12 @@ import os import gi.overrides +try: + import mesonconfig +except ImportError: + mesonconfig = None + pass + FILE = os.path.realpath(__file__) if not gi.overrides.__path__[0].endswith("gst-python/gi/overrides"): local_overrides = None @@ -16,6 +22,8 @@ if not gi.overrides.__path__[0].endswith("gst-python/gi/overrides"): gi.overrides.__path__.insert(0, local_overrides) +if mesonconfig: + gi.overrides.__path__.insert(0, os.path.abspath(os.path.join(mesonconfig.path, "gi", "overrides"))) # Execute previously set sitecustomize.py script if it existed if os.environ.get("GST_ENV"): old_sitecustomize = os.path.join(os.path.dirname(__file__),