diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2021-05-19 12:26:24 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2021-06-07 09:17:40 -0700 |
commit | a2fc2e216581309c8e3a9e4fb60fa30c6921d5f8 (patch) | |
tree | d5ad4b06ab54225883322cb7c07da2a1b3b2fa1f | |
parent | 74ed27f776f0c3180ca105862f3370614849680c (diff) | |
download | meson-a2fc2e216581309c8e3a9e4fb60fa30c6921d5f8.zip meson-a2fc2e216581309c8e3a9e4fb60fa30c6921d5f8.tar.gz meson-a2fc2e216581309c8e3a9e4fb60fa30c6921d5f8.tar.bz2 |
cython: Add a test for generated files
-rw-r--r-- | test cases/cython/2 generated sources/configure.pyx.in | 2 | ||||
-rw-r--r-- | test cases/cython/2 generated sources/g.in | 2 | ||||
-rw-r--r-- | test cases/cython/2 generated sources/gen.py | 14 | ||||
-rwxr-xr-x | test cases/cython/2 generated sources/generator.py | 12 | ||||
-rw-r--r-- | test cases/cython/2 generated sources/meson.build | 61 | ||||
-rw-r--r-- | test cases/cython/2 generated sources/test.py | 13 |
6 files changed, 104 insertions, 0 deletions
diff --git a/test cases/cython/2 generated sources/configure.pyx.in b/test cases/cython/2 generated sources/configure.pyx.in new file mode 100644 index 0000000..1c44f6d --- /dev/null +++ b/test cases/cython/2 generated sources/configure.pyx.in @@ -0,0 +1,2 @@ +cpdef func(): + return "Hello, World!" diff --git a/test cases/cython/2 generated sources/g.in b/test cases/cython/2 generated sources/g.in new file mode 100644 index 0000000..1c44f6d --- /dev/null +++ b/test cases/cython/2 generated sources/g.in @@ -0,0 +1,2 @@ +cpdef func(): + return "Hello, World!" diff --git a/test cases/cython/2 generated sources/gen.py b/test cases/cython/2 generated sources/gen.py new file mode 100644 index 0000000..5c0a82d --- /dev/null +++ b/test cases/cython/2 generated sources/gen.py @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: Apache-2.0 + +import argparse +import textwrap + +parser = argparse.ArgumentParser() +parser.add_argument('output') +args = parser.parse_args() + +with open(args.output, 'w') as f: + f.write(textwrap.dedent('''\ + cpdef func(): + return "Hello, World!" + ''')) diff --git a/test cases/cython/2 generated sources/generator.py b/test cases/cython/2 generated sources/generator.py new file mode 100755 index 0000000..77de855 --- /dev/null +++ b/test cases/cython/2 generated sources/generator.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 + +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument('input') +parser.add_argument('output') +args = parser.parse_args() + +with open(args.input, 'r') as i, open(args.output, 'w') as o: + o.write(i.read()) diff --git a/test cases/cython/2 generated sources/meson.build b/test cases/cython/2 generated sources/meson.build new file mode 100644 index 0000000..c9a9b6a --- /dev/null +++ b/test cases/cython/2 generated sources/meson.build @@ -0,0 +1,61 @@ +project( + 'generated cython sources', + ['cython'], +) + +py_mod = import('python') +py3 = py_mod.find_installation('python3') +py3_dep = py3.dependency(required : false) +if not py3_dep.found() + error('MESON_SKIP_TEST: Python library not found.') +endif + +ct = custom_target( + 'ct', + input : 'gen.py', + output : 'ct.pyx', + command : [py3, '@INPUT@', '@OUTPUT@'], +) + +ct_ext = py3.extension_module('ct', ct, dependencies : py3_dep) + +test( + 'custom target', + py3, + args : [files('test.py'), 'ct'], + env : ['PYTHONPATH=' + meson.current_build_dir()] +) + +cf = configure_file( + input : 'configure.pyx.in', + output : 'cf.pyx', + copy : true, +) + +cf_ext = py3.extension_module('cf', cf, dependencies : py3_dep) + +test( + 'configure file', + py3, + args : [files('test.py'), 'cf'], + env : ['PYTHONPATH=' + meson.current_build_dir()] +) + +gen = generator( + find_program('generator.py'), + arguments : ['@INPUT@', '@OUTPUT@'], + output : '@BASENAME@.pyx', +) + +g_ext = py3.extension_module( + 'g', + gen.process('g.in'), + dependencies : py3_dep, +) + +test( + 'generator', + py3, + args : [files('test.py'), 'g'], + env : ['PYTHONPATH=' + meson.current_build_dir()] +) diff --git a/test cases/cython/2 generated sources/test.py b/test cases/cython/2 generated sources/test.py new file mode 100644 index 0000000..307283f --- /dev/null +++ b/test cases/cython/2 generated sources/test.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 + +import argparse +import importlib + +parser = argparse.ArgumentParser() +parser.add_argument('mod') +args = parser.parse_args() + +mod = importlib.import_module(args.mod) + +assert mod.func() == 'Hello, World!' |