ThePhD / sol2

Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:
http://sol2.rtfd.io/
MIT License
4.22k stars 517 forks source link

✨ Test and fix #1315 #1369

Closed ShepherdSoasis closed 2 years ago

ShepherdSoasis commented 2 years ago

This pull request formally verifies that #1315 is fixed by adding it to the tests. It tests all the various permutation of collection-returns through Lua. Lua 5.2 specifically has the ipairs method that calls the custom __ipairs metamethod in Lua, and that is where the failure is detected as it did not keep the original collection (in the bug report's case, a std::vector). This failure does not seem to be present on Lua 5.1, 5.3 and 5.4 because the custom __ipairs metamethod was deprecated and removed immediately after its introduction in 5.2.

There is also some general fixes to update the behavior of some of the other tests and bring them in line with others, utilizing Catch2 to do so, which generally makes this a fairly messy commit. More commits will be added as this fix is verified for the users.

ShepherdSoasis commented 2 years ago

We have confirmed this fix works for the folks we were working with, and it additionally restores the tests to a working state (it does not expand the testing matrix in CI).

OK to merge?