gh-108303: Add Lib/test/test_cppext/ sub-directory (#108325)

* Move test_cppext to its own directory
* Rename setup_testcppext.py to setup.py
* Rename _testcppext.cpp to extension.cpp
* The source (extension.cpp) is now also copied by the test.
This commit is contained in:
Victor Stinner 2023-08-22 20:30:18 +02:00 committed by GitHub
parent c1c9cd61da
commit 21dda09600
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 8 additions and 6 deletions

View File

@ -10,9 +10,8 @@ from test import support
MS_WINDOWS = (sys.platform == 'win32')
SETUP_TESTCPPEXT = support.findfile('setup_testcppext.py')
SOURCE = os.path.join(os.path.dirname(__file__), 'extension.cpp')
SETUP = os.path.join(os.path.dirname(__file__), 'setup.py')
@support.requires_subprocess()
@ -41,7 +40,8 @@ class TestCPPExt(unittest.TestCase):
def _check_build(self, std_cpp03, extension_name, python_exe):
pkg_dir = 'pkg'
os.mkdir(pkg_dir)
shutil.copy(SETUP_TESTCPPEXT, os.path.join(pkg_dir, "setup.py"))
shutil.copy(SETUP, os.path.join(pkg_dir, os.path.basename(SETUP)))
shutil.copy(SOURCE, os.path.join(pkg_dir, os.path.basename(SOURCE)))
def run_cmd(operation, cmd):
env = os.environ.copy()

View File

@ -1,5 +1,7 @@
// gh-91321: Very basic C++ test extension to check that the Python C API is
// compatible with C++ and does not emit C++ compiler warnings.
//
// The code is only built, not executed.
// Always enable assertions
#undef NDEBUG

View File

@ -2,7 +2,6 @@
# compatible with C++ and does not emit C++ compiler warnings.
import os
import sys
from test import support
from setuptools import setup, Extension
@ -10,7 +9,7 @@ from setuptools import setup, Extension
MS_WINDOWS = (sys.platform == 'win32')
SOURCE = support.findfile('_testcppext.cpp')
SOURCE = 'extension.cpp'
if not MS_WINDOWS:
# C++ compiler flags for GCC and clang
CPPFLAGS = [

View File

@ -2156,6 +2156,7 @@ TESTSUBDIRS= idlelib/idle_test \
test/support/_hypothesis_stubs \
test/test_asyncio \
test/test_capi \
test/test_cppext \
test/test_ctypes \
test/test_email \
test/test_email/data \