Author: Matti Picus <[email protected]>
Branch: cppyy-skip
Changeset: r89260:c2f75063c7a2
Date: 2016-12-29 00:11 +0200
http://bitbucket.org/pypy/pypy/changeset/c2f75063c7a2/
Log: a proof-of-concept to skip everything, including pytest_configure
diff --git a/pypy/module/cppyy/test/conftest.py
b/pypy/module/cppyy/test/conftest.py
--- a/pypy/module/cppyy/test/conftest.py
+++ b/pypy/module/cppyy/test/conftest.py
@@ -1,13 +1,20 @@
import py, sys
+skip_reason = ''
+if sys.platform == 'win32':
+ skip_reason= 'need to refactor for MSVC'
+else:
+ # tests require minimally std=c++11
+ cc_info = py.process.cmdexec('gcc -v --help')
+ if not '-std=c++11' in cc_info:
+ skip_reason = 'gcc does not support -std=c+11'
+
+
+# This is supposed to work? How?
+#py.test.mark = py.test.mark.skipif(skip_reason != '', reason=skip_reason)
+
@py.test.mark.tryfirst
def pytest_runtest_setup(item):
- if 'linux' in sys.platform:
- # tests require minimally std=c++11
- cc_info = py.process.cmdexec('gcc -v --help')
- if not '-std=c++11' in cc_info:
- py.test.skip('skipping tests because gcc does not support C++11')
-
if py.path.local.sysfind('genreflex') is None:
import pypy.module.cppyy.capi.loadable_capi as lcapi
if 'dummy' in lcapi.reflection_library:
@@ -29,41 +36,45 @@
def pytest_ignore_collect(path, config):
if py.path.local.sysfind('genreflex') is None and
config.option.runappdirect:
return True # "can't run dummy tests in -A"
+ # This actually worked
+ if skip_reason:
+ return True
+
+if skip_reason == '':
+ def pytest_configure(config):
+ if py.path.local.sysfind('genreflex') is None:
+ import pypy.module.cppyy.capi.loadable_capi as lcapi
+ try:
+ import ctypes
+ ctypes.CDLL(lcapi.reflection_library)
+ except Exception as e:
+ if config.option.runappdirect:
+ return # "can't run dummy tests in -A"
-def pytest_configure(config):
- if py.path.local.sysfind('genreflex') is None:
- import pypy.module.cppyy.capi.loadable_capi as lcapi
- try:
- import ctypes
- ctypes.CDLL(lcapi.reflection_library)
- except Exception as e:
- if config.option.runappdirect:
- return # "can't run dummy tests in -A"
+ # build dummy backend (which has reflex info and calls
hard-wired)
+ import os
+ from rpython.translator.tool.cbuild import
ExternalCompilationInfo
+ from rpython.translator.platform import platform
+ from rpython.translator import cdir
- # build dummy backend (which has reflex info and calls hard-wired)
- import os
- from rpython.translator.tool.cbuild import ExternalCompilationInfo
- from rpython.translator.platform import platform
- from rpython.translator import cdir
+ from rpython.rtyper.lltypesystem import rffi
- from rpython.rtyper.lltypesystem import rffi
+ pkgpath = py.path.local(__file__).dirpath().join(os.pardir)
+ srcpath = pkgpath.join('src')
+ incpath = pkgpath.join('include')
+ tstpath = pkgpath.join('test')
- pkgpath = py.path.local(__file__).dirpath().join(os.pardir)
- srcpath = pkgpath.join('src')
- incpath = pkgpath.join('include')
- tstpath = pkgpath.join('test')
+ eci = ExternalCompilationInfo(
+ separate_module_files=[srcpath.join('dummy_backend.cxx')],
+ include_dirs=[incpath, tstpath, cdir],
+ compile_extra=['-DRPY_EXTERN=RPY_EXPORTED',
'-DCPPYY_DUMMY_BACKEND',
+ '-fno-strict-aliasing', '-std=c++11'],
+ use_cpp_linker=True,
+ )
- eci = ExternalCompilationInfo(
- separate_module_files=[srcpath.join('dummy_backend.cxx')],
- include_dirs=[incpath, tstpath, cdir],
- compile_extra=['-DRPY_EXTERN=RPY_EXPORTED',
'-DCPPYY_DUMMY_BACKEND',
- '-fno-strict-aliasing', '-std=c++11'],
- use_cpp_linker=True,
- )
+ soname = platform.compile(
+ [], eci,
+ outputfilename='libcppyy_dummy_backend',
+ standalone=False)
- soname = platform.compile(
- [], eci,
- outputfilename='libcppyy_dummy_backend',
- standalone=False)
-
- lcapi.reflection_library = str(soname)
+ lcapi.reflection_library = str(soname)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit