diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2023-03-06 21:37:29 -0500 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2023-05-02 19:28:35 -0400 |
commit | 6a1427401c76db73081e478c4ff49fcc75420de6 (patch) | |
tree | bb7790eb92ef6da31ffcff79da0fadb8d4c796c2 /test cases | |
parent | 0e7fb07f915b7a2b04df209fbacd92aca19c87af (diff) | |
download | meson-6a1427401c76db73081e478c4ff49fcc75420de6.zip meson-6a1427401c76db73081e478c4ff49fcc75420de6.tar.gz meson-6a1427401c76db73081e478c4ff49fcc75420de6.tar.bz2 |
tests: add a python test for bytecode compilation
Some tweaks are added to the test case so that it supports python2 as
well.
Diffstat (limited to 'test cases')
-rwxr-xr-x | test cases/python/2 extmodule/blaster.py.in | 2 | ||||
-rw-r--r-- | test cases/python/2 extmodule/ext/meson.build | 6 | ||||
-rw-r--r-- | test cases/python/2 extmodule/ext/nested/meson.build | 17 | ||||
-rw-r--r-- | test cases/python/2 extmodule/ext/tachyon_module.c | 14 | ||||
-rw-r--r-- | test cases/python/2 extmodule/ext/wrongdir/meson.build | 6 | ||||
-rw-r--r-- | test cases/python/2 extmodule/meson.build | 7 | ||||
-rw-r--r-- | test cases/python/2 extmodule/meson_options.txt | 1 | ||||
-rwxr-xr-x | test cases/python/2 extmodule/subinst/printer.py | 3 | ||||
-rwxr-xr-x | test cases/python/2 extmodule/subinst/submod/printer.py | 3 | ||||
-rw-r--r-- | test cases/python/2 extmodule/test.json | 2 |
10 files changed, 58 insertions, 3 deletions
diff --git a/test cases/python/2 extmodule/blaster.py.in b/test cases/python/2 extmodule/blaster.py.in index b690b40..c93026f 100755 --- a/test cases/python/2 extmodule/blaster.py.in +++ b/test cases/python/2 extmodule/blaster.py.in @@ -8,4 +8,4 @@ if not isinstance(result, int): raise SystemExit('Returned result not an integer.') if result != 1: - raise SystemExit(f'Returned result {result} is not 1.') + raise SystemExit('Returned result {} is not 1.'.format(result)) diff --git a/test cases/python/2 extmodule/ext/meson.build b/test cases/python/2 extmodule/ext/meson.build index 14fa94a..0fba9f5 100644 --- a/test cases/python/2 extmodule/ext/meson.build +++ b/test cases/python/2 extmodule/ext/meson.build @@ -4,6 +4,12 @@ pylib = py.extension_module('tachyon', install: true, ) +pylib2 = py2.extension_module('tachyon', + 'tachyon_module.c', + c_args: '-DMESON_MODULENAME="tachyon"', + install: true, +) + subdir('nested') subdir('wrongdir') pypathdir = meson.current_build_dir() diff --git a/test cases/python/2 extmodule/ext/nested/meson.build b/test cases/python/2 extmodule/ext/nested/meson.build index 34c1192..4a7ec76 100644 --- a/test cases/python/2 extmodule/ext/nested/meson.build +++ b/test cases/python/2 extmodule/ext/nested/meson.build @@ -13,3 +13,20 @@ py.install_sources( pure: false, subdir: 'nested', ) + + +py2.extension_module('tachyon', + '../tachyon_module.c', + c_args: '-DMESON_MODULENAME="nested.tachyon"', + install: true, + subdir: 'nested' +) +py2.install_sources( + configure_file( + input: '../../blaster.py.in', + output: 'blaster.py', + configuration: {'tachyon_module': 'nested.tachyon'} + ), + pure: false, + subdir: 'nested', +) diff --git a/test cases/python/2 extmodule/ext/tachyon_module.c b/test cases/python/2 extmodule/ext/tachyon_module.c index a5d7cdc..68eda53 100644 --- a/test cases/python/2 extmodule/ext/tachyon_module.c +++ b/test cases/python/2 extmodule/ext/tachyon_module.c @@ -1,5 +1,5 @@ /* - Copyright 2016 The Meson development team + Copyright 2018 The Meson development team Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -27,7 +27,11 @@ static PyObject* phaserize(PyObject *self, PyObject *args) { return NULL; result = strcmp(message, "shoot") ? 0 : 1; +#if PY_VERSION_HEX < 0x03000000 + return PyInt_FromLong(result); +#else return PyLong_FromLong(result); +#endif } static PyMethodDef TachyonMethods[] = { @@ -36,9 +40,14 @@ static PyMethodDef TachyonMethods[] = { {NULL, NULL, 0, NULL} }; +#if PY_VERSION_HEX < 0x03000000 +PyMODINIT_FUNC inittachyon(void) { + Py_InitModule("tachyon", TachyonMethods); +} +#else static struct PyModuleDef tachyonmodule = { PyModuleDef_HEAD_INIT, - MESON_MODULENAME, + "tachyon", NULL, -1, TachyonMethods @@ -47,3 +56,4 @@ static struct PyModuleDef tachyonmodule = { PyMODINIT_FUNC PyInit_tachyon(void) { return PyModule_Create(&tachyonmodule); } +#endif diff --git a/test cases/python/2 extmodule/ext/wrongdir/meson.build b/test cases/python/2 extmodule/ext/wrongdir/meson.build index 5074701..79b13eb 100644 --- a/test cases/python/2 extmodule/ext/wrongdir/meson.build +++ b/test cases/python/2 extmodule/ext/wrongdir/meson.build @@ -4,3 +4,9 @@ py.extension_module('tachyon', install: true, install_dir: get_option('libdir') ) +py2.extension_module('tachyon', + '../tachyon_module.c', + c_args: '-DMESON_MODULENAME="tachyon"', + install: true, + install_dir: get_option('libdir') +) diff --git a/test cases/python/2 extmodule/meson.build b/test cases/python/2 extmodule/meson.build index 0794631..65f9177 100644 --- a/test cases/python/2 extmodule/meson.build +++ b/test cases/python/2 extmodule/meson.build @@ -10,6 +10,7 @@ endif py_mod = import('python') py = py_mod.find_installation() +py2 = py_mod.find_installation('python2', required: get_option('python2'), disabler: true) py_dep = py.dependency(required: false) if not py_dep.found() @@ -31,6 +32,12 @@ test('extmod', py.install_sources(blaster, pure: false) py.install_sources(blaster, subdir: 'pure') +install_subdir('subinst', install_dir: py.get_install_dir(pure: false)) + +py2.install_sources(blaster, pure: false) +py2.install_sources(blaster, subdir: 'pure') +install_subdir('subinst', install_dir: py2.get_install_dir(pure: false)) + py3_pkg_dep = dependency('python3', method: 'pkg-config', required : false) if py3_pkg_dep.found() diff --git a/test cases/python/2 extmodule/meson_options.txt b/test cases/python/2 extmodule/meson_options.txt new file mode 100644 index 0000000..76d3b67 --- /dev/null +++ b/test cases/python/2 extmodule/meson_options.txt @@ -0,0 +1 @@ +option('python2', type: 'feature', value: 'disabled') diff --git a/test cases/python/2 extmodule/subinst/printer.py b/test cases/python/2 extmodule/subinst/printer.py new file mode 100755 index 0000000..8bc528d --- /dev/null +++ b/test cases/python/2 extmodule/subinst/printer.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +print('subinst') diff --git a/test cases/python/2 extmodule/subinst/submod/printer.py b/test cases/python/2 extmodule/subinst/submod/printer.py new file mode 100755 index 0000000..2a4a61b --- /dev/null +++ b/test cases/python/2 extmodule/subinst/submod/printer.py @@ -0,0 +1,3 @@ +#!/usr/bin/env python3 + +print('subinst.submod') diff --git a/test cases/python/2 extmodule/test.json b/test cases/python/2 extmodule/test.json index 6bd1195..fcb3975 100644 --- a/test cases/python/2 extmodule/test.json +++ b/test cases/python/2 extmodule/test.json @@ -7,6 +7,8 @@ { "type": "python_file", "file": "usr/@PYTHON_PLATLIB@/nested/blaster.py" }, { "type": "python_lib", "file": "usr/@PYTHON_PLATLIB@/nested/tachyon" }, { "type": "py_implib", "file": "usr/@PYTHON_PLATLIB@/nested/tachyon" }, + { "type": "python_file", "file": "usr/@PYTHON_PLATLIB@/subinst/printer.py" }, + { "type": "python_file", "file": "usr/@PYTHON_PLATLIB@/subinst/submod/printer.py" }, { "type": "python_lib", "file": "usr/lib/tachyon" }, { "type": "py_implib", "file": "usr/lib/tachyon" } ] |