summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatti Picus <matti.picus@gmail.com>2019-11-29 11:30:16 +0200
committerStefan Behnel <stefan_ml@behnel.de>2019-11-29 10:30:16 +0100
commit24180c844f02d8a63f75f954eed4c9e89c5d3d17 (patch)
tree2300cf510e6f529ae9c912e060067d147b683c79
parentaf997e97ea926a2e00b740eec61523b0370d98ff (diff)
downloadcython-24180c844f02d8a63f75f954eed4c9e89c5d3d17.tar.gz
TEST: add cpp attribute example from docs, add CYTHON_PROJECT_DIR for tests (GH-2970)
-rwxr-xr-xruntests.py4
-rw-r--r--tests/run/cpp_class_attrib.srctree26
2 files changed, 30 insertions, 0 deletions
diff --git a/runtests.py b/runtests.py
index e4024b094..ff78cb80b 100755
--- a/runtests.py
+++ b/runtests.py
@@ -2012,6 +2012,10 @@ def flush_and_terminate(status):
def main():
global DISTDIR, WITH_CYTHON
+
+ # Set an environment variable to the top directory
+ os.environ['CYTHON_PROJECT_DIR'] = os.path.abspath(os.path.dirname(__file__))
+
DISTDIR = os.path.join(os.getcwd(), os.path.dirname(sys.argv[0]))
from Cython.Compiler import DebugFlags
diff --git a/tests/run/cpp_class_attrib.srctree b/tests/run/cpp_class_attrib.srctree
new file mode 100644
index 000000000..3ae850839
--- /dev/null
+++ b/tests/run/cpp_class_attrib.srctree
@@ -0,0 +1,26 @@
+# tag: cpp
+
+PYTHON setup.py build_ext --inplace
+PYTHON -c "import runner"
+
+######## setup.py ########
+
+from Cython.Build.Dependencies import cythonize
+from distutils.core import setup
+import os
+
+example_dir = os.path.abspath(os.path.join(os.environ['CYTHON_PROJECT_DIR'],
+ 'docs/examples/userguide/wrapping_CPlusPlus'))
+
+ext_modules= cythonize(os.path.join(example_dir, "rect_with_attributes.pyx"),
+ include_path=[example_dir])
+setup(ext_modules=ext_modules)
+
+######## runner.py ########
+
+import rect_with_attributes
+
+x0, y0, x1, y1 = 1, 2, 3, 4
+rect_obj = rect_with_attributes.PyRectangle(x0, y0, x1, y1)
+
+assert rect_obj.x0 == x0