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.
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).
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, astd::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.