Skip to content

Commit 3d443ee

Browse files
authored
Merge branch 'main' into lazy
2 parents bf5adba + 3e0322f commit 3d443ee

File tree

6 files changed

+23
-11
lines changed

6 files changed

+23
-11
lines changed

Lib/test/test_cppext/__init__.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import shlex
55
import shutil
66
import subprocess
7+
import sys
78
import unittest
89
from test import support
910

@@ -27,9 +28,6 @@
2728
class BaseTests:
2829
TEST_INTERNAL_C_API = False
2930

30-
def test_build(self):
31-
self.check_build('_testcppext')
32-
3331
def check_build(self, extension_name, std=None, limited=False):
3432
venv_dir = 'env'
3533
with support.setup_venv_with_pip_setuptools(venv_dir) as python_exe:
@@ -91,6 +89,9 @@ def run_cmd(operation, cmd):
9189

9290

9391
class TestPublicCAPI(BaseTests, unittest.TestCase):
92+
def test_build(self):
93+
self.check_build('_testcppext')
94+
9495
@support.requires_gil_enabled('incompatible with Free Threading')
9596
def test_build_limited_cpp03(self):
9697
self.check_build('_test_limited_cpp03ext', std='c++03', limited=True)
@@ -119,6 +120,13 @@ def test_build_cpp14(self):
119120
class TestInteralCAPI(BaseTests, unittest.TestCase):
120121
TEST_INTERNAL_C_API = True
121122

123+
def test_build(self):
124+
kwargs = {}
125+
if sys.platform == 'darwin':
126+
# Old Apple clang++ default C++ std is gnu++98
127+
kwargs['std'] = 'c++11'
128+
self.check_build('_testcppext_internal', **kwargs)
129+
122130

123131
if __name__ == "__main__":
124132
unittest.main()

Lib/test/test_cppext/extension.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
#ifdef TEST_INTERNAL_C_API
1717
// gh-135906: Check for compiler warnings in the internal C API
1818
# include "internal/pycore_frame.h"
19-
// mimalloc emits compiler warnings when Python is built on Windows
20-
// and macOS.
21-
# if !defined(MS_WINDOWS) && !defined(__APPLE__)
19+
// mimalloc emits compiler warnings on Windows.
20+
# if !defined(MS_WINDOWS)
2221
# include "internal/pycore_backoff.h"
2322
# include "internal/pycore_cell.h"
2423
# endif

Lib/test/test_cppext/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def main():
5959
else:
6060
cppflags.append(f'-std={std}')
6161

62-
if limited or (std != 'c++03'):
62+
if limited or (std != 'c++03') and not internal:
6363
# See CPPFLAGS_PEDANTIC docstring
6464
cppflags.extend(CPPFLAGS_PEDANTIC)
6565

Lib/test/test_unicodedata.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,10 +182,14 @@ def test_numeric(self):
182182

183183
# New in 4.1.0
184184
self.assertEqual(self.db.numeric('\U0001012A', None), None if self.old else 9000)
185+
# Changed in 4.1.0
186+
self.assertEqual(self.db.numeric('\u5793', None), 1e20 if self.old else None)
185187
# New in 5.0.0
186188
self.assertEqual(self.db.numeric('\u07c0', None), None if self.old else 0.0)
187189
# New in 5.1.0
188190
self.assertEqual(self.db.numeric('\ua627', None), None if self.old else 7.0)
191+
# Changed in 5.2.0
192+
self.assertEqual(self.db.numeric('\u09f6'), 3.0 if self.old else 3/16)
189193
# New in 6.0.0
190194
self.assertEqual(self.db.numeric('\u0b72', None), None if self.old else 0.25)
191195
# New in 12.0.0
@@ -857,9 +861,9 @@ def graphemes(*args):
857861
class Unicode_3_2_0_FunctionsTest(unittest.TestCase, BaseUnicodeFunctionsTest):
858862
db = unicodedata.ucd_3_2_0
859863
old = True
860-
expectedchecksum = ('f4526159891a4b766dd48045646547178737ba09'
864+
expectedchecksum = ('4154d8d1232837e255edf3cdcbb5ab184d71f4a4'
861865
if quicktest else
862-
'f217b8688d7bdff31db4207e078a96702f091597')
866+
'3aabaf66823b21b3d305dad804a62f6f6387c93e')
863867

864868

865869
class UnicodeMiscTest(unittest.TestCase):
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix :meth:`!unicodedata.ucd_3_2_0.numeric` for non-decimal values.

Modules/unicodedata.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,9 +270,9 @@ unicodedata_UCD_numeric_impl(PyObject *self, int chr,
270270
have_old = 1;
271271
rc = -1.0;
272272
}
273-
else if (old->decimal_changed != 0xFF) {
273+
else if (old->numeric_changed != 0.0) {
274274
have_old = 1;
275-
rc = old->decimal_changed;
275+
rc = old->numeric_changed;
276276
}
277277
}
278278

0 commit comments

Comments
 (0)