Skip to content

gh-116417: Move 4 limited C API test files to _testlimitedcapi #116571

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions Lib/test/test_capi/test_bytearray.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import unittest
from test.support import import_helper

_testcapi = import_helper.import_module('_testcapi')
_testlimitedcapi = import_helper.import_module('_testlimitedcapi')
from _testcapi import PY_SSIZE_T_MIN, PY_SSIZE_T_MAX

NULL = None
Expand All @@ -19,7 +19,7 @@ def __bytes__(self):
class CAPITest(unittest.TestCase):
def test_check(self):
# Test PyByteArray_Check()
check = _testcapi.bytearray_check
check = _testlimitedcapi.bytearray_check
self.assertTrue(check(bytearray(b'abc')))
self.assertFalse(check(b'abc'))
self.assertTrue(check(ByteArraySubclass(b'abc')))
Expand All @@ -32,7 +32,7 @@ def test_check(self):

def test_checkexact(self):
# Test PyByteArray_CheckExact()
check = _testcapi.bytearray_checkexact
check = _testlimitedcapi.bytearray_checkexact
self.assertTrue(check(bytearray(b'abc')))
self.assertFalse(check(b'abc'))
self.assertFalse(check(ByteArraySubclass(b'abc')))
Expand All @@ -45,7 +45,7 @@ def test_checkexact(self):

def test_fromstringandsize(self):
# Test PyByteArray_FromStringAndSize()
fromstringandsize = _testcapi.bytearray_fromstringandsize
fromstringandsize = _testlimitedcapi.bytearray_fromstringandsize

self.assertEqual(fromstringandsize(b'abc'), bytearray(b'abc'))
self.assertEqual(fromstringandsize(b'abc', 2), bytearray(b'ab'))
Expand All @@ -62,7 +62,7 @@ def test_fromstringandsize(self):

def test_fromobject(self):
# Test PyByteArray_FromObject()
fromobject = _testcapi.bytearray_fromobject
fromobject = _testlimitedcapi.bytearray_fromobject

self.assertEqual(fromobject(b'abc'), bytearray(b'abc'))
self.assertEqual(fromobject(bytearray(b'abc')), bytearray(b'abc'))
Expand All @@ -77,7 +77,7 @@ def test_fromobject(self):

def test_size(self):
# Test PyByteArray_Size()
size = _testcapi.bytearray_size
size = _testlimitedcapi.bytearray_size

self.assertEqual(size(bytearray(b'abc')), 3)
self.assertEqual(size(ByteArraySubclass(b'abc')), 3)
Expand All @@ -88,7 +88,7 @@ def test_size(self):

def test_asstring(self):
"""Test PyByteArray_AsString()"""
asstring = _testcapi.bytearray_asstring
asstring = _testlimitedcapi.bytearray_asstring

self.assertEqual(asstring(bytearray(b'abc'), 4), b'abc\0')
self.assertEqual(asstring(ByteArraySubclass(b'abc'), 4), b'abc\0')
Expand All @@ -100,7 +100,7 @@ def test_asstring(self):

def test_concat(self):
"""Test PyByteArray_Concat()"""
concat = _testcapi.bytearray_concat
concat = _testlimitedcapi.bytearray_concat

ba = bytearray(b'abc')
self.assertEqual(concat(ba, b'def'), bytearray(b'abcdef'))
Expand Down Expand Up @@ -133,7 +133,7 @@ def test_concat(self):

def test_resize(self):
"""Test PyByteArray_Resize()"""
resize = _testcapi.bytearray_resize
resize = _testlimitedcapi.bytearray_resize

ba = bytearray(b'abcdef')
self.assertEqual(resize(ba, 3), 0)
Expand Down
28 changes: 14 additions & 14 deletions Lib/test/test_capi/test_bytes.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import unittest
from test.support import import_helper

_testcapi = import_helper.import_module('_testcapi')
_testlimitedcapi = import_helper.import_module('_testlimitedcapi')
from _testcapi import PY_SSIZE_T_MIN, PY_SSIZE_T_MAX

NULL = None
Expand All @@ -19,7 +19,7 @@ def __bytes__(self):
class CAPITest(unittest.TestCase):
def test_check(self):
# Test PyBytes_Check()
check = _testcapi.bytes_check
check = _testlimitedcapi.bytes_check
self.assertTrue(check(b'abc'))
self.assertFalse(check('abc'))
self.assertFalse(check(bytearray(b'abc')))
Expand All @@ -33,7 +33,7 @@ def test_check(self):

def test_checkexact(self):
# Test PyBytes_CheckExact()
check = _testcapi.bytes_checkexact
check = _testlimitedcapi.bytes_checkexact
self.assertTrue(check(b'abc'))
self.assertFalse(check('abc'))
self.assertFalse(check(bytearray(b'abc')))
Expand All @@ -47,7 +47,7 @@ def test_checkexact(self):

def test_fromstringandsize(self):
# Test PyBytes_FromStringAndSize()
fromstringandsize = _testcapi.bytes_fromstringandsize
fromstringandsize = _testlimitedcapi.bytes_fromstringandsize

self.assertEqual(fromstringandsize(b'abc'), b'abc')
self.assertEqual(fromstringandsize(b'abc', 2), b'ab')
Expand All @@ -65,7 +65,7 @@ def test_fromstringandsize(self):

def test_fromstring(self):
# Test PyBytes_FromString()
fromstring = _testcapi.bytes_fromstring
fromstring = _testlimitedcapi.bytes_fromstring

self.assertEqual(fromstring(b'abc\0def'), b'abc')
self.assertEqual(fromstring(b''), b'')
Expand All @@ -74,7 +74,7 @@ def test_fromstring(self):

def test_fromobject(self):
# Test PyBytes_FromObject()
fromobject = _testcapi.bytes_fromobject
fromobject = _testlimitedcapi.bytes_fromobject

self.assertEqual(fromobject(b'abc'), b'abc')
self.assertEqual(fromobject(bytearray(b'abc')), b'abc')
Expand All @@ -88,7 +88,7 @@ def test_fromobject(self):

def test_size(self):
# Test PyBytes_Size()
size = _testcapi.bytes_size
size = _testlimitedcapi.bytes_size

self.assertEqual(size(b'abc'), 3)
self.assertEqual(size(BytesSubclass(b'abc')), 3)
Expand All @@ -100,7 +100,7 @@ def test_size(self):

def test_asstring(self):
"""Test PyBytes_AsString()"""
asstring = _testcapi.bytes_asstring
asstring = _testlimitedcapi.bytes_asstring

self.assertEqual(asstring(b'abc', 4), b'abc\0')
self.assertEqual(asstring(b'abc\0def', 8), b'abc\0def\0')
Expand All @@ -111,8 +111,8 @@ def test_asstring(self):

def test_asstringandsize(self):
"""Test PyBytes_AsStringAndSize()"""
asstringandsize = _testcapi.bytes_asstringandsize
asstringandsize_null = _testcapi.bytes_asstringandsize_null
asstringandsize = _testlimitedcapi.bytes_asstringandsize
asstringandsize_null = _testlimitedcapi.bytes_asstringandsize_null

self.assertEqual(asstringandsize(b'abc', 4), (b'abc\0', 3))
self.assertEqual(asstringandsize(b'abc\0def', 8), (b'abc\0def\0', 7))
Expand All @@ -128,7 +128,7 @@ def test_asstringandsize(self):

def test_repr(self):
# Test PyBytes_Repr()
bytes_repr = _testcapi.bytes_repr
bytes_repr = _testlimitedcapi.bytes_repr

self.assertEqual(bytes_repr(b'''abc''', 0), r"""b'abc'""")
self.assertEqual(bytes_repr(b'''abc''', 1), r"""b'abc'""")
Expand All @@ -149,7 +149,7 @@ def test_repr(self):
def test_concat(self, concat=None):
"""Test PyBytes_Concat()"""
if concat is None:
concat = _testcapi.bytes_concat
concat = _testlimitedcapi.bytes_concat

self.assertEqual(concat(b'abc', b'def'), b'abcdef')
self.assertEqual(concat(b'a\0b', b'c\0d'), b'a\0bc\0d')
Expand Down Expand Up @@ -182,11 +182,11 @@ def test_concat(self, concat=None):

def test_concatanddel(self):
"""Test PyBytes_ConcatAndDel()"""
self.test_concat(_testcapi.bytes_concatanddel)
self.test_concat(_testlimitedcapi.bytes_concatanddel)

def test_decodeescape(self):
"""Test PyBytes_DecodeEscape()"""
decodeescape = _testcapi.bytes_decodeescape
decodeescape = _testlimitedcapi.bytes_decodeescape

self.assertEqual(decodeescape(b'abc'), b'abc')
self.assertEqual(decodeescape(br'\t\n\r\x0b\x0c\x00\\\'\"'),
Expand Down
16 changes: 8 additions & 8 deletions Lib/test/test_capi/test_sys.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from test.support import import_helper

try:
import _testcapi
import _testlimitedcapi
except ImportError:
_testcapi = None
_testlimitedcapi = None

NULL = None

Expand All @@ -20,10 +20,10 @@ class CAPITest(unittest.TestCase):
maxDiff = None

@support.cpython_only
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
@unittest.skipIf(_testlimitedcapi is None, 'need _testlimitedcapi module')
def test_sys_getobject(self):
# Test PySys_GetObject()
getobject = _testcapi.sys_getobject
getobject = _testlimitedcapi.sys_getobject

self.assertIs(getobject(b'stdout'), sys.stdout)
with support.swap_attr(sys, '\U0001f40d', 42):
Expand All @@ -38,10 +38,10 @@ def test_sys_getobject(self):
# CRASHES getobject(NULL)

@support.cpython_only
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
@unittest.skipIf(_testlimitedcapi is None, 'need _testlimitedcapi module')
def test_sys_setobject(self):
# Test PySys_SetObject()
setobject = _testcapi.sys_setobject
setobject = _testlimitedcapi.sys_setobject

value = ['value']
value2 = ['value2']
Expand Down Expand Up @@ -70,10 +70,10 @@ def test_sys_setobject(self):
# CRASHES setobject(NULL, value)

@support.cpython_only
@unittest.skipIf(_testcapi is None, 'need _testcapi module')
@unittest.skipIf(_testlimitedcapi is None, 'need _testlimitedcapi module')
def test_sys_getxoptions(self):
# Test PySys_GetXOptions()
getxoptions = _testcapi.sys_getxoptions
getxoptions = _testlimitedcapi.sys_getxoptions

self.assertIs(getxoptions(), sys._xoptions)

Expand Down
4 changes: 2 additions & 2 deletions Modules/Setup.stdlib.in
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@
@MODULE__XXTESTFUZZ_TRUE@_xxtestfuzz _xxtestfuzz/_xxtestfuzz.c _xxtestfuzz/fuzzer.c
@MODULE__TESTBUFFER_TRUE@_testbuffer _testbuffer.c
@MODULE__TESTINTERNALCAPI_TRUE@_testinternalcapi _testinternalcapi.c _testinternalcapi/test_lock.c _testinternalcapi/pytime.c _testinternalcapi/set.c _testinternalcapi/test_critical_sections.c
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/heaptype.c _testcapi/abstract.c _testcapi/bytearray.c _testcapi/bytes.c _testcapi/unicode.c _testcapi/dict.c _testcapi/set.c _testcapi/list.c _testcapi/tuple.c _testcapi/getargs.c _testcapi/datetime.c _testcapi/docstring.c _testcapi/mem.c _testcapi/watchers.c _testcapi/long.c _testcapi/float.c _testcapi/complex.c _testcapi/numbers.c _testcapi/structmember.c _testcapi/exceptions.c _testcapi/code.c _testcapi/buffer.c _testcapi/pyatomic.c _testcapi/pyos.c _testcapi/file.c _testcapi/codec.c _testcapi/immortal.c _testcapi/gc.c _testcapi/sys.c _testcapi/hash.c _testcapi/time.c
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/vectorcall_limited.c _testlimitedcapi/heaptype_relative.c
@MODULE__TESTCAPI_TRUE@_testcapi _testcapimodule.c _testcapi/vectorcall.c _testcapi/heaptype.c _testcapi/abstract.c _testcapi/unicode.c _testcapi/dict.c _testcapi/set.c _testcapi/list.c _testcapi/tuple.c _testcapi/getargs.c _testcapi/datetime.c _testcapi/docstring.c _testcapi/mem.c _testcapi/watchers.c _testcapi/long.c _testcapi/float.c _testcapi/complex.c _testcapi/numbers.c _testcapi/structmember.c _testcapi/exceptions.c _testcapi/code.c _testcapi/buffer.c _testcapi/pyatomic.c _testcapi/file.c _testcapi/codec.c _testcapi/immortal.c _testcapi/gc.c _testcapi/hash.c _testcapi/time.c
@MODULE__TESTLIMITEDCAPI_TRUE@_testlimitedcapi _testlimitedcapi.c _testlimitedcapi/bytearray.c _testlimitedcapi/bytes.c _testlimitedcapi/heaptype_relative.c _testlimitedcapi/pyos.c _testlimitedcapi/sys.c _testlimitedcapi/vectorcall_limited.c
@MODULE__TESTCLINIC_TRUE@_testclinic _testclinic.c
@MODULE__TESTCLINIC_LIMITED_TRUE@_testclinic_limited _testclinic_limited.c

Expand Down
4 changes: 0 additions & 4 deletions Modules/_testcapi/parts.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,6 @@
int _PyTestCapi_Init_Vectorcall(PyObject *module);
int _PyTestCapi_Init_Heaptype(PyObject *module);
int _PyTestCapi_Init_Abstract(PyObject *module);
int _PyTestCapi_Init_ByteArray(PyObject *module);
int _PyTestCapi_Init_Bytes(PyObject *module);
int _PyTestCapi_Init_Unicode(PyObject *module);
int _PyTestCapi_Init_GetArgs(PyObject *module);
int _PyTestCapi_Init_DateTime(PyObject *module);
Expand All @@ -52,12 +50,10 @@ int _PyTestCapi_Init_Exceptions(PyObject *module);
int _PyTestCapi_Init_Code(PyObject *module);
int _PyTestCapi_Init_Buffer(PyObject *module);
int _PyTestCapi_Init_PyAtomic(PyObject *module);
int _PyTestCapi_Init_PyOS(PyObject *module);
int _PyTestCapi_Init_File(PyObject *module);
int _PyTestCapi_Init_Codec(PyObject *module);
int _PyTestCapi_Init_Immortal(PyObject *module);
int _PyTestCapi_Init_GC(PyObject *module);
int _PyTestCapi_Init_Sys(PyObject *module);
int _PyTestCapi_Init_Hash(PyObject *module);
int _PyTestCapi_Init_Time(PyObject *module);

Expand Down
12 changes: 0 additions & 12 deletions Modules/_testcapimodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -4017,12 +4017,6 @@ PyInit__testcapi(void)
if (_PyTestCapi_Init_Abstract(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_ByteArray(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Bytes(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Unicode(m) < 0) {
return NULL;
}
Expand Down Expand Up @@ -4077,18 +4071,12 @@ PyInit__testcapi(void)
if (_PyTestCapi_Init_Buffer(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_PyOS(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_File(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Codec(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Sys(m) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Immortal(m) < 0) {
return NULL;
}
Expand Down
14 changes: 13 additions & 1 deletion Modules/_testlimitedcapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,23 @@ PyInit__testlimitedcapi(void)
return NULL;
}

if (_PyTestCapi_Init_VectorcallLimited(mod) < 0) {
if (_PyTestCapi_Init_ByteArray(mod) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Bytes(mod) < 0) {
return NULL;
}
if (_PyTestCapi_Init_HeaptypeRelative(mod) < 0) {
return NULL;
}
if (_PyTestCapi_Init_PyOS(mod) < 0) {
return NULL;
}
if (_PyTestCapi_Init_Sys(mod) < 0) {
return NULL;
}
if (_PyTestCapi_Init_VectorcallLimited(mod) < 0) {
return NULL;
}
return mod;
}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -160,8 +160,8 @@ bytes_concat(PyObject *Py_UNUSED(module), PyObject *args)
if (new) {
assert(left != NULL);
assert(PyBytes_CheckExact(left));
left = PyBytes_FromStringAndSize(PyBytes_AS_STRING(left),
PyBytes_GET_SIZE(left));
left = PyBytes_FromStringAndSize(PyBytes_AsString(left),
PyBytes_Size(left));
if (left == NULL) {
return NULL;
}
Expand Down Expand Up @@ -191,8 +191,8 @@ bytes_concatanddel(PyObject *Py_UNUSED(module), PyObject *args)
if (new) {
assert(left != NULL);
assert(PyBytes_CheckExact(left));
left = PyBytes_FromStringAndSize(PyBytes_AS_STRING(left),
PyBytes_GET_SIZE(left));
left = PyBytes_FromStringAndSize(PyBytes_AsString(left),
PyBytes_Size(left));
if (left == NULL) {
return NULL;
}
Expand Down
6 changes: 5 additions & 1 deletion Modules/_testlimitedcapi/parts.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,11 @@
# error "Py_BUILD_CORE macro must not be defined"
#endif

int _PyTestCapi_Init_VectorcallLimited(PyObject *module);
int _PyTestCapi_Init_ByteArray(PyObject *module);
int _PyTestCapi_Init_Bytes(PyObject *module);
int _PyTestCapi_Init_HeaptypeRelative(PyObject *module);
int _PyTestCapi_Init_PyOS(PyObject *module);
int _PyTestCapi_Init_Sys(PyObject *module);
int _PyTestCapi_Init_VectorcallLimited(PyObject *module);

#endif // Py_TESTLIMITEDCAPI_PARTS_H
File renamed without changes.
File renamed without changes.
Loading