Author: Wim Lavrijsen <wlavrij...@lbl.gov> Branch: cppyy-dev Changeset: r97985:7c7fd9713e04 Date: 2019-11-06 19:06 -0800 http://bitbucket.org/pypy/pypy/changeset/7c7fd9713e04/
Log: add test_regression file with regression tests diff --git a/pypy/module/_cppyy/test/test_regression.py b/pypy/module/_cppyy/test/test_regression.py new file mode 100644 --- /dev/null +++ b/pypy/module/_cppyy/test/test_regression.py @@ -0,0 +1,50 @@ +import py, os, sys +from .support import setup_make + +from pypy.module._cppyy import interp_cppyy, executor + + +class AppTestREGRESSION: + spaceconfig = dict(usemodules=['_cppyy', '_rawffi', 'itertools']) + + def setup_class(cls): + cls.w_example01 = cls.space.appexec([], """(): + import ctypes, _cppyy + _cppyy._post_import_startup()""") + + def test01_dir(self): + """These dir() methods used to crash.""" + + import _cppyy as cppyy + + cppyy.gbl.gInterpreter.Declare("namespace cppyy_regression_test { void iii() {}; }") + + assert not 'iii' in cppyy.gbl.cppyy_regression_test.__dict__ + assert not '__abstractmethods__' in dir(cppyy.gbl.cppyy_regression_test) + assert '__class__' in dir(cppyy.gbl.cppyy_regression_test) + assert 'iii' in dir(cppyy.gbl.cppyy_regression_test) + + assert not 'iii' in cppyy.gbl.cppyy_regression_test.__dict__ + assert cppyy.gbl.cppyy_regression_test.iii + assert 'iii' in cppyy.gbl.cppyy_regression_test.__dict__ + + def test02_default_template_arguments(self): + """Calling a templated method on a templated class with all defaults used to crash.""" + + import _cppyy as cppyy + + cppyy.gbl.gInterpreter.Declare(""" + template<typename T> + class AllDefault { + public: + AllDefault(int val) : m_t(val) {} + template<int aap=1, int noot=2> + int do_stuff() { return m_t+aap+noot; } + + public: + T m_t; + };""") + + a = cppyy.gbl.AllDefault[int](24) + a.m_t = 21; + assert a.do_stuff() == 24 _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit