module is enabled.
"""
_check_tracemalloc()
- import _testcapi
+ try:
+ import _testcapi
+ except ImportError:
+ raise unittest.SkipTest("requires _testcapi")
return _testcapi.run_in_subinterp(code)
module is enabled.
"""
_check_tracemalloc()
- import _testinternalcapi
+ try:
+ import _testinternalcapi
+ except ImportError:
+ raise unittest.SkipTest("requires _testinternalcapi")
if own_gil is not None:
assert 'gil' not in config, (own_gil, config)
config['gil'] = 2 if own_gil else 1
def with_pymalloc():
- import _testcapi
+ try:
+ import _testcapi
+ except ImportError:
+ raise unittest.SkipTest("requires _testcapi")
return _testcapi.WITH_PYMALLOC and not Py_GIL_DISABLED
def with_mimalloc():
- import _testcapi
+ try:
+ import _testcapi
+ except ImportError:
+ raise unittest.SkipTest("requires _testcapi")
return _testcapi.WITH_MIMALLOC
import unittest
import dis
import io
-from _testinternalcapi import compiler_codegen, optimize_cfg, assemble_code_object
+try:
+ import _testinternalcapi
+except ImportError:
+ _testinternalcapi = None
_UNSPECIFIED = object()
return res
+@unittest.skipIf(_testinternalcapi is None, "requires _testinternalcapi")
class CodegenTestCase(CompilationStepTestCase):
def generate_code(self, ast):
- insts, _ = compiler_codegen(ast, "my_file.py", 0)
+ insts, _ = _testinternalcapi.compiler_codegen(ast, "my_file.py", 0)
return insts
+@unittest.skipIf(_testinternalcapi is None, "requires _testinternalcapi")
class CfgOptimizationTestCase(CompilationStepTestCase):
def get_optimized(self, insts, consts, nlocals=0):
insts = self.normalize_insts(insts)
insts = self.complete_insts_info(insts)
- insts = optimize_cfg(insts, consts, nlocals)
+ insts = _testinternalcapi.optimize_cfg(insts, consts, nlocals)
return insts, consts
+@unittest.skipIf(_testinternalcapi is None, "requires _testinternalcapi")
class AssemblerTestCase(CompilationStepTestCase):
def get_code_object(self, filename, insts, metadata):
- co = assemble_code_object(filename, insts, metadata)
+ co = _testinternalcapi.assemble_code_object(filename, insts, metadata)
return co