summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2018-12-20 18:09:10 +0100
committerChristoph Reiter <reiter.christoph@gmail.com>2018-12-20 18:09:10 +0100
commit13e8c7ff80f9ff2dc77e9d0da4b7396182c63612 (patch)
treef529b1752c1719c8c8c5396f1a0a732631e0bb66
parent698c78f50e5e6ea638bea8f10398bdfe8691ac48 (diff)
downloadgobject-introspection-13e8c7ff80f9ff2dc77e9d0da4b7396182c63612.tar.gz
tests: make scanner tests work with msvc + subprojects
Manually add all the subproject build directories to PATH for running the scanner tests. I'm wondering if meson shouldn't do this for us based on the dependency we pass to test(), but this will do for now.
-rw-r--r--tests/meson.build18
-rw-r--r--tests/scanner/annotationparser/meson.build18
-rw-r--r--tests/scanner/meson.build24
-rw-r--r--tests/scanner/test_docwriter.py12
4 files changed, 44 insertions, 28 deletions
diff --git a/tests/meson.build b/tests/meson.build
index c11151dc..23c0e919 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,3 +1,21 @@
+sub_build_root = join_paths(meson.build_root(), 'subprojects')
+test_env_common_path = []
+if glib_dep.type_name() == 'internal' and host_system == 'windows'
+ test_env_common_path += [
+ join_paths(sub_build_root, 'glib', 'glib'),
+ join_paths(sub_build_root, 'glib', 'gobject'),
+ join_paths(sub_build_root, 'glib', 'gio'),
+ join_paths(sub_build_root, 'glib', 'gmodule'),
+ join_paths(sub_build_root, 'proxy-libintl'),
+ join_paths(sub_build_root, 'zlib'),
+ ]
+endif
+if libffi_dep.type_name() == 'internal' and host_system == 'windows'
+ test_env_common_path += [join_paths(sub_build_root, 'libffi', 'src')]
+endif
+test_env_common_pypath = [meson.build_root()]
+
+
test_regress_sources = files('scanner/regress.c')
test_regress_headers = files('scanner/regress.h')
test_marshalling_sources = files('gimarshallingtests.c')
diff --git a/tests/scanner/annotationparser/meson.build b/tests/scanner/annotationparser/meson.build
index 954dc28d..cce8c5c7 100644
--- a/tests/scanner/annotationparser/meson.build
+++ b/tests/scanner/annotationparser/meson.build
@@ -1,20 +1,14 @@
annotationparser_test_env = environment()
-annotationparser_test_env.append('PYTHONPATH', join_paths(meson.current_build_dir(), '../../../'))
+annotationparser_test_env.prepend('PYTHONPATH', test_env_common_pypath)
+if test_env_common_path.length() > 0
+ annotationparser_test_env.prepend('PATH', test_env_common_path)
+endif
annotationparser_test_files = [
'test_patterns.py',
+ 'test_parser.py',
]
-# FIXME: MSVC
-# from giscanner._giscanner import SourceScanner as CSourceScanner
-# ImportError: DLL load failed: The specified module could not be found.
-if cc.get_id() != 'msvc'
- annotationparser_test_files += [
- 'test_parser.py',
- ]
-endif
-
foreach f : annotationparser_test_files
- test(f, python, args: files(f), env: annotationparser_test_env)
+ test(f, python, args: files(f), env: annotationparser_test_env, depends: [giscanner_pymod])
endforeach
-
diff --git a/tests/scanner/meson.build b/tests/scanner/meson.build
index cc5ee530..62809169 100644
--- a/tests/scanner/meson.build
+++ b/tests/scanner/meson.build
@@ -1,24 +1,20 @@
-
scanner_test_env = environment()
-scanner_test_env.append('PYTHONPATH', join_paths(meson.current_build_dir(), '../../'))
+scanner_test_env.prepend('PYTHONPATH', test_env_common_pypath)
+if test_env_common_path.length() > 0
+ scanner_test_env.prepend('PATH', test_env_common_path)
+endif
scanner_test_files = [
'test_shlibs.py',
+ 'test_sourcescanner.py',
+ 'test_transformer.py',
+ 'test_xmlwriter.py',
+ 'test_pkgconfig.py',
+ 'test_docwriter.py',
]
-# FIXME: MSVC
-if cc.get_id() != 'msvc'
- scanner_test_files += [
- 'test_sourcescanner.py',
- 'test_transformer.py',
- 'test_xmlwriter.py',
- 'test_pkgconfig.py',
- 'test_docwriter.py',
- ]
-endif
-
foreach f : scanner_test_files
- test(f, python, args: files(f), env: scanner_test_env)
+ test(f, python, args: files(f), env: scanner_test_env, depends: [giscanner_pymod])
endforeach
subdir('annotationparser')
diff --git a/tests/scanner/test_docwriter.py b/tests/scanner/test_docwriter.py
index 8b2d0fb0..3fb64171 100644
--- a/tests/scanner/test_docwriter.py
+++ b/tests/scanner/test_docwriter.py
@@ -1,9 +1,17 @@
import unittest
-from giscanner.docwriter import DocWriter
-from giscanner.transformer import Transformer
+try:
+ import mako
+except ImportError:
+ HAS_MAKO = False
+else:
+ HAS_MAKO = True
+ mako
+ from giscanner.docwriter import DocWriter
+ from giscanner.transformer import Transformer
+@unittest.skipUnless(HAS_MAKO, "mako missing")
class TestDocWriter(unittest.TestCase):
def test_main(self):