Ralf W. Grosse-Kunstleve
db529c805c
flake8 cleanup
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
d3833d2cbf
Fixing oversight (discovered by flake8).
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
ec8ebb766a
Pure clang-format --style=file -i
change, with two clang-format off
directives.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
e7aea026bb
Pure clang-format --style=file -i
change.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
cfc848a137
Retrieving smart_holder pointer in type_caster<std::unique_ptr<mpty[ const]>>::load, and using it cast_op operators.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
6277910abd
Improved error messaging: Cannot disown nullptr (as_unique_ptr).
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
4a879cfdcb
Retrieving smart_holder pointer in type_caster<std::shared_ptr<mpty[ const]>>::load, and using it cast_op operators.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
3f7a1a1b30
Factoring out smart_holder_type_caster_load.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
4b35955a12
Retrieving smart_holder pointer in type_caster<mpty>::load, and using it cast_op operators.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
fe5427fc23
Adding rvalue_ref, renaming const_value_ref to lvalue_ref & removing const.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
6bdd58a115
Adding isinstance<mpty> in type_caster::load functions.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
1ce4256921
Adding mpty::mtxt string member.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
c8d19f9599
Hard-coding smart_holder into classh.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
03f304e419
classh.h: renaming of class_ to classh + namespace; forking test_classh_wip from test_type_caster_bare_interface_demo.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
a5818bdf4a
Pure copy of class class_
implementation in pybind11.h (master commit 98f1bbb800
).
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
b3ad3ac43f
Adding unique_ptr<mpty>, unique_ptr<mpty const> casters.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
d36a7488ae
Adding shared_ptr<mpty>, shared_ptr<mpty const> casters.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
de10541b12
Adding type_caster_bare_interface_demo.
2021-02-09 06:47:05 -08:00
Ralf W. Grosse-Kunstleve
2cb68ab051
Removing stray file.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
69270b5dde
Removing obsolete and very incomplete test (replaced by Catch2-based test).
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
9abea63276
Converting from methods to factory functions (no functional change).
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
a23e179fee
Adding top-level comment.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
01cacaf207
Testing of exceptions not covered by the from-as matrix.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
04a9568487
Implementing all [E]xception tests.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
d76050c713
Implementing all [S]uccess tests.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
401cdb3b0e
Shuffling existing TEST_CASEs into systematic matrix.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
1f80387f4b
Improved labeling of TEST_CASEs.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
bb82add4b0
Adding in vptr_deleter_guard_flag.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
5ab34305ae
New tests/core/smart_holder_poc_test.cpp, using Catch2.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
84bdaebf57
Adding from_shared_ptr. Some polishing.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
2a94c687ea
Adding from/as unique_ptr<T> and unique_ptr<T, D>.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
d1f94e498d
Adding vptr_deleter.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
72d1b61176
Snapshot of WIP, TODO: shared_ptr deleter with on/off switch
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
76e99f1c81
pybind11 equivalent of Boost.Python test similar to reproducer under #1333
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
8a393e68ab
minor test_private_first_base.cpp simplification (after discovering that this can be wrapped with Boost.Python, using boost::noncopyable)
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
912ce16d0c
Demonstration of Undefined Behavior in handling of polymorphic pointers.
...
(This demo does NOT involve smart pointers at all, unlike the otherwise similar test_smart_ptr_private_first_base.)
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
aac54d4021
fixing up-down mixup in comment
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
9623045b7b
Additional demonstration of Undefined Behavior in handling of shared_ptr holder.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
bda49efb14
Demonstration of Undefined Behavior in handling of shared_ptr holder.
...
Based on https://godbolt.org/z/4fdjaW by jorgbrown@ (thanks Jorg!).
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
96f7ce5444
Copying tests as-is from xxx_value_ptr_xxx_holder branch.
...
https://github.com/rwgk/pybind11/tree/xxx_value_ptr_xxx_holder
Systematically exercising casting between shared_ptr<base>, shared_ptr<derived>.
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
a923419e6d
Copying tests as-is from xxx_value_ptr_xxx_holder branch.
...
https://github.com/rwgk/pybind11/tree/xxx_value_ptr_xxx_holder
Systematically exercising returning and passing unique_ptr<T>, shared_ptr<T>
with unique_ptr, shared_ptr holder.
Observations:
test_holder_unique_ptr:
make_unique_pointee OK
pass_unique_pointee BUILD_FAIL (as documented)
make_shared_pointee Abort free(): double free detected
pass_shared_pointee RuntimeError: Unable to load a custom holder type from a default-holder instance
test_holder_shared_ptr:
make_unique_pointee Segmentation fault (#1138 )
pass_unique_pointee BUILD_FAIL (as documented)
make_shared_pointee OK
pass_shared_pointee OK
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
3cf4db18ed
adding test_promotion_of_disowned_to_shared
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
76e7770134
TRIGGER_SEGSEV macro, annotations for GET_STACK (vptr::get), GET_INT_STACK (pointee)
2021-02-09 06:47:04 -08:00
Ralf W. Grosse-Kunstleve
4f8447d707
disabling AppVeyor (for this PR)
2021-02-09 06:47:03 -08:00
Ralf W. Grosse-Kunstleve
45a6093c3f
disabling GitHub Actions on pull_request (for this PR)
2021-02-09 06:47:03 -08:00
Ralf W. Grosse-Kunstleve
ea1cdf82ce
moving prototype code to pybind11/vptr_holder.h, adding type_caster specialization to make the bindings involving unique_ptr passing compile, but load and cast implementations are missing
2021-02-09 06:47:03 -08:00
Ralf W. Grosse-Kunstleve
d2c8e3ccde
new test_variant_unique_shared with vptr_holder prototype
2021-02-09 06:47:03 -08:00
Ralf W. Grosse-Kunstleve
01e437a2da
unique_ptr or shared_ptr return
2021-02-09 06:47:03 -08:00
Ralf W. Grosse-Kunstleve
0a92391128
Adding test_unique_ptr_member (for desired PyCLIF behavior).
...
See also: https://github.com/pybind/pybind11/issues/2583
Does not build with upstream master or
https://github.com/pybind/pybind11/pull/2047 , but builds with
https://github.com/RobotLocomotion/pybind11 and almost runs:
```
Running tests in directory "/usr/local/google/home/rwgk/forked/EricCousineau-TRI/pybind11/tests":
================================================================================= test session starts =================================================================================
platform linux -- Python 3.8.5, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /usr/local/google/home/rwgk/forked/EricCousineau-TRI/pybind11/tests, inifile: pytest.ini
collected 2 items
test_unique_ptr_member.py .F [100%]
====================================================================================== FAILURES =======================================================================================
_____________________________________________________________________________ test_pointee_and_ptr_owner ______________________________________________________________________________
def test_pointee_and_ptr_owner():
obj = m.pointee()
assert obj.get_int() == 213
m.ptr_owner(obj)
with pytest.raises(ValueError) as exc_info:
> obj.get_int()
E Failed: DID NOT RAISE <class 'ValueError'>
test_unique_ptr_member.py:17: Failed
============================================================================= 1 failed, 1 passed in 0.06s =============================================================================
```
2021-02-09 06:47:03 -08:00
Axel Huebl
c78dfb69f2
MSVC but not Clang: /MP ( #2824 )
...
On Windows, clang-cl does not understand /MP.
```
clang-cl: warning: argument unused during compilation: '/MP' [-Wunused-command-line-argument]
```
with Clang 10.0.0
2021-02-08 15:40:04 -05:00