mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-16 21:57:55 +00:00
use relaxed testing scheme for MSVC and the intel compiler (they miss some RV optimizations)
This commit is contained in:
parent
d6e4cef65f
commit
80c2451ac5
@ -202,7 +202,12 @@ elseif (UNIX)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
|
||||||
set(RUN_TEST ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/run_test.py)
|
set(RUN_TEST ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example/run_test.py)
|
||||||
|
if (MSVC OR CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
||||||
|
set(RUN_TEST ${RUN_TEST} --relaxed)
|
||||||
|
endif()
|
||||||
|
|
||||||
foreach(i RANGE ${PYBIND11_FIRSTEXAMPLE} ${PYBIND11_LASTEXAMPLE})
|
foreach(i RANGE ${PYBIND11_FIRSTEXAMPLE} ${PYBIND11_LASTEXAMPLE})
|
||||||
add_test(NAME example${i} COMMAND ${RUN_TEST} example${i})
|
add_test(NAME example${i} COMMAND ${RUN_TEST} example${i})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -8,6 +8,7 @@ remove_long_marker = re.compile(r'([0-9])L')
|
|||||||
remove_hex = re.compile(r'0x[0-9a-fA-F]+')
|
remove_hex = re.compile(r'0x[0-9a-fA-F]+')
|
||||||
shorten_floats = re.compile(r'([1-9][0-9]*\.[0-9]{4})[0-9]*')
|
shorten_floats = re.compile(r'([1-9][0-9]*\.[0-9]{4})[0-9]*')
|
||||||
|
|
||||||
|
relaxed = False
|
||||||
|
|
||||||
def sanitize(lines):
|
def sanitize(lines):
|
||||||
lines = lines.split('\n')
|
lines = lines.split('\n')
|
||||||
@ -26,7 +27,7 @@ def sanitize(lines):
|
|||||||
line = line.replace('example.EMode', 'EMode')
|
line = line.replace('example.EMode', 'EMode')
|
||||||
line = line.replace('method of builtins.PyCapsule instance', '')
|
line = line.replace('method of builtins.PyCapsule instance', '')
|
||||||
line = line.strip()
|
line = line.strip()
|
||||||
if sys.platform == 'win32':
|
if relaxed:
|
||||||
lower = line.lower()
|
lower = line.lower()
|
||||||
# The precise pattern of allocations and deallocations is dependent on the compiler
|
# The precise pattern of allocations and deallocations is dependent on the compiler
|
||||||
# and optimization level, so we unfortunately can't reliably check it in this kind of test case
|
# and optimization level, so we unfortunately can't reliably check it in this kind of test case
|
||||||
@ -45,6 +46,13 @@ path = os.path.dirname(__file__)
|
|||||||
if path != '':
|
if path != '':
|
||||||
os.chdir(path)
|
os.chdir(path)
|
||||||
|
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print("Syntax: %s <example> [--relaxed]" % sys.argv[0])
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if len(sys.argv) == 3 and sys.argv[2] == '--relaxed':
|
||||||
|
relaxed = True
|
||||||
|
|
||||||
name = sys.argv[1]
|
name = sys.argv[1]
|
||||||
output_bytes = subprocess.check_output([sys.executable, name + ".py"],
|
output_bytes = subprocess.check_output([sys.executable, name + ".py"],
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
|
Loading…
Reference in New Issue
Block a user