From f07d5069d86e31ecf195664850f79fb00c445bd3 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Fri, 17 Nov 2017 17:02:05 -0800 Subject: ext: Upgrade PyBind11 to version 2.2.1 This upgrade is necessary for pybind to build with GCC 7.2. We still need to add the patch for stl.h. MSC_FULL_VER change is no longer needed. See https://gem5-review.googlesource.com/c/public/gem5/+/2230 Change-Id: I806729217d022070583994c2dfcaa74476aef30f Signed-off-by: Jason Lowe-Power Reviewed-on: https://gem5-review.googlesource.com/5801 Reviewed-by: Andreas Sandberg Maintainer: Andreas Sandberg --- ext/pybind11/tests/test_opaque_types.py | 38 +++++++++++++++------------------ 1 file changed, 17 insertions(+), 21 deletions(-) (limited to 'ext/pybind11/tests/test_opaque_types.py') diff --git a/ext/pybind11/tests/test_opaque_types.py b/ext/pybind11/tests/test_opaque_types.py index 1cd410208..2d3aef5d1 100644 --- a/ext/pybind11/tests/test_opaque_types.py +++ b/ext/pybind11/tests/test_opaque_types.py @@ -1,40 +1,36 @@ import pytest +from pybind11_tests import opaque_types as m +from pybind11_tests import ConstructorStats, UserType def test_string_list(): - from pybind11_tests import StringList, ClassWithSTLVecProperty, print_opaque_list - - l = StringList() + l = m.StringList() l.push_back("Element 1") l.push_back("Element 2") - assert print_opaque_list(l) == "Opaque list: [Element 1, Element 2]" + assert m.print_opaque_list(l) == "Opaque list: [Element 1, Element 2]" assert l.back() == "Element 2" for i, k in enumerate(l, start=1): assert k == "Element {}".format(i) l.pop_back() - assert print_opaque_list(l) == "Opaque list: [Element 1]" + assert m.print_opaque_list(l) == "Opaque list: [Element 1]" - cvp = ClassWithSTLVecProperty() - assert print_opaque_list(cvp.stringList) == "Opaque list: []" + cvp = m.ClassWithSTLVecProperty() + assert m.print_opaque_list(cvp.stringList) == "Opaque list: []" cvp.stringList = l cvp.stringList.push_back("Element 3") - assert print_opaque_list(cvp.stringList) == "Opaque list: [Element 1, Element 3]" + assert m.print_opaque_list(cvp.stringList) == "Opaque list: [Element 1, Element 3]" def test_pointers(msg): - from pybind11_tests import (return_void_ptr, get_void_ptr_value, ExampleMandA, - print_opaque_list, return_null_str, get_null_str_value, - return_unique_ptr, ConstructorStats) - - living_before = ConstructorStats.get(ExampleMandA).alive() - assert get_void_ptr_value(return_void_ptr()) == 0x1234 - assert get_void_ptr_value(ExampleMandA()) # Should also work for other C++ types - assert ConstructorStats.get(ExampleMandA).alive() == living_before + living_before = ConstructorStats.get(UserType).alive() + assert m.get_void_ptr_value(m.return_void_ptr()) == 0x1234 + assert m.get_void_ptr_value(UserType()) # Should also work for other C++ types + assert ConstructorStats.get(UserType).alive() == living_before with pytest.raises(TypeError) as excinfo: - get_void_ptr_value([1, 2, 3]) # This should not work + m.get_void_ptr_value([1, 2, 3]) # This should not work assert msg(excinfo.value) == """ get_void_ptr_value(): incompatible function arguments. The following argument types are supported: 1. (arg0: capsule) -> int @@ -42,9 +38,9 @@ def test_pointers(msg): Invoked with: [1, 2, 3] """ # noqa: E501 line too long - assert return_null_str() is None - assert get_null_str_value(return_null_str()) is not None + assert m.return_null_str() is None + assert m.get_null_str_value(m.return_null_str()) is not None - ptr = return_unique_ptr() + ptr = m.return_unique_ptr() assert "StringList" in repr(ptr) - assert print_opaque_list(ptr) == "Opaque list: [some value]" + assert m.print_opaque_list(ptr) == "Opaque list: [some value]" -- cgit v1.2.3