Author: Ronan Lamy <ronan.l...@gmail.com> Branch: cleanup-test_lib_pypy Changeset: r95466:74de35e03dac Date: 2018-12-12 22:13 +0000 http://bitbucket.org/pypy/pypy/changeset/74de35e03dac/
Log: Allow (most) ctypes tests to run on CPython and add @pytest.mark.pypy_only diff --git a/extra_tests/ctypes_tests/conftest.py b/extra_tests/ctypes_tests/conftest.py --- a/extra_tests/ctypes_tests/conftest.py +++ b/extra_tests/ctypes_tests/conftest.py @@ -3,10 +3,6 @@ import sys import os -def pytest_ignore_collect(path): - if '__pypy__' not in sys.builtin_module_names: - return True - # XXX: copied from pypy/tool/cpyext/extbuild.py if os.name != 'nt': so_ext = 'so' diff --git a/extra_tests/ctypes_tests/test_anon.py b/extra_tests/ctypes_tests/test_anon.py --- a/extra_tests/ctypes_tests/test_anon.py +++ b/extra_tests/ctypes_tests/test_anon.py @@ -1,6 +1,7 @@ import pytest from ctypes import * +@pytest.mark.pypy_only def test_nested(): class ANON_S(Structure): _fields_ = [("a", c_int)] diff --git a/extra_tests/ctypes_tests/test_base.py b/extra_tests/ctypes_tests/test_base.py --- a/extra_tests/ctypes_tests/test_base.py +++ b/extra_tests/ctypes_tests/test_base.py @@ -1,6 +1,7 @@ +import pytest from ctypes import * -# WhiteBoxTests +pytestmark = pytest.mark.pypy_only def test_pointer(): p = pointer(pointer(c_int(2))) diff --git a/extra_tests/ctypes_tests/test_functions.py b/extra_tests/ctypes_tests/test_functions.py --- a/extra_tests/ctypes_tests/test_functions.py +++ b/extra_tests/ctypes_tests/test_functions.py @@ -57,6 +57,7 @@ result = f("abcd", ord("b")) assert result == "bcd" +@pytest.mark.pypy_only def test_keepalive_buffers(monkeypatch, dll): import gc f = dll.my_strchr @@ -111,6 +112,7 @@ u = dll.ret_un_func(a[1]) assert u.y == 33 * 10000 +@pytest.mark.pypy_only def test_cache_funcptr(dll): tf_b = dll.tf_b tf_b.restype = c_byte diff --git a/extra_tests/ctypes_tests/test_guess_argtypes.py b/extra_tests/ctypes_tests/test_guess_argtypes.py --- a/extra_tests/ctypes_tests/test_guess_argtypes.py +++ b/extra_tests/ctypes_tests/test_guess_argtypes.py @@ -1,15 +1,14 @@ """ This test checks whether args wrapping behavior is correct """ -import py +import pytest import sys from ctypes import * +@pytest.mark.pypy_only def test_wrap_args(): - if not hasattr(sys, 'pypy_translation_info'): - py.test.skip("pypy white-box test") - from _ctypes.function import CFuncPtr + from _ctypes import CFuncPtr def guess(value): _, cobj, ctype = CFuncPtr._conv_param(None, value) @@ -33,7 +32,7 @@ def test_guess_unicode(dll): if not hasattr(sys, 'pypy_translation_info') and sys.platform != 'win32': - py.test.skip("CPython segfaults: see http://bugs.python.org/issue5203") + pytest.skip("CPython segfaults: see http://bugs.python.org/issue5203") wcslen = dll.my_wcslen text = u"Some long unicode string" assert wcslen(text) == len(text) diff --git a/extra_tests/ctypes_tests/test_keepalive.py b/extra_tests/ctypes_tests/test_keepalive.py --- a/extra_tests/ctypes_tests/test_keepalive.py +++ b/extra_tests/ctypes_tests/test_keepalive.py @@ -104,7 +104,7 @@ assert p._objects.keys() == ['1'] assert p._objects['1'].value == 3 -@pytest.mark.skipif("'__pypy__' not in sys.builtin_module_names") +@pytest.mark.pypy_only def test_primitive(): assert c_char_p("abc")._objects._buffer[0] == "a" assert c_int(3)._objects is None diff --git a/extra_tests/ctypes_tests/test_pointers.py b/extra_tests/ctypes_tests/test_pointers.py --- a/extra_tests/ctypes_tests/test_pointers.py +++ b/extra_tests/ctypes_tests/test_pointers.py @@ -1,6 +1,7 @@ import pytest from ctypes import * +@pytest.mark.pypy_only def test_get_ffi_argtype(): P = POINTER(c_int) ffitype = P.get_ffi_argtype() @@ -61,6 +62,7 @@ for i in [0, 1, 4, 1444, -10293]: assert cast(byref(c, i), c_void_p).value == base + i +@pytest.mark.pypy_only def test_issue2813_fix(): class C(Structure): pass @@ -70,6 +72,7 @@ assert C.get_ffi_argtype() is ffitype assert ffitype.sizeof() == sizeof(c_int) +@pytest.mark.pypy_only def test_issue2813_cant_change_fields_after_get_ffi_argtype(): class C(Structure): pass _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit