Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test failures with libspatialindex 2.0.0 #312

Closed
sebastic opened this issue May 28, 2024 · 9 comments · Fixed by #313
Closed

Test failures with libspatialindex 2.0.0 #312

sebastic opened this issue May 28, 2024 · 9 comments · Fixed by #313

Comments

@sebastic
Copy link
Contributor

The Debian package build fails due to test failures when using spatialindex 2.0.0 from experimental:

I: pybuild base:311: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build; python3.12 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.2.1, pluggy-1.5.0
rootdir: /build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build
configfile: pyproject.toml
collected 40 items

tests/test_finder.py ..                                                  [  5%]
tests/test_index.py F.......x...........Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
.................                [ 97%]
tests/test_tpr.py .                                                      [100%]

=================================== FAILURES ===================================
______________________ IndexVersion.test_libsidx_version _______________________

self = <tests.test_index.IndexVersion testMethod=test_libsidx_version>

    def test_libsidx_version(self) -> None:
>       self.assertTrue(index.major_version == 1)
E       AssertionError: False is not true

/build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build/tests/test_index.py:47: AssertionError
=========================== short test summary info ============================
FAILED tests/test_index.py::IndexVersion::test_libsidx_version - AssertionErr...
=================== 1 failed, 38 passed, 1 xfailed in 0.30s ====================
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build; python3.12 -m pytest tests
I: pybuild base:311: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build; python3.11 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.11.9, pytest-8.2.1, pluggy-1.5.0
rootdir: /build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build
configfile: pyproject.toml
collected 40 items

tests/test_finder.py ..                                                  [  5%]
tests/test_index.py F.......x...........Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
.................                [ 97%]
tests/test_tpr.py .                                                      [100%]

=================================== FAILURES ===================================
______________________ IndexVersion.test_libsidx_version _______________________

self = <tests.test_index.IndexVersion testMethod=test_libsidx_version>

    def test_libsidx_version(self) -> None:
>       self.assertTrue(index.major_version == 1)
E       AssertionError: False is not true

/build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build/tests/test_index.py:47: AssertionError
=========================== short test summary info ============================
FAILED tests/test_index.py::IndexVersion::test_libsidx_version - AssertionErr...
=================== 1 failed, 38 passed, 1 xfailed in 0.31s ====================
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build; python3.11 -m pytest tests

This patch may suffice:

--- a/tests/test_index.py
+++ b/tests/test_index.py
@@ -44,8 +44,8 @@ class IndexTestCase(unittest.TestCase):
 
 class IndexVersion(unittest.TestCase):
     def test_libsidx_version(self) -> None:
-        self.assertTrue(index.major_version == 1)
-        self.assertTrue(index.minor_version >= 7)
+        self.assertTrue(index.major_version in [1, 2])
+        self.assertTrue((index.major_version == 1 and index.minor_version >= 7) or index.major_version > 1)
 
 
 class IndexCount(unittest.TestCase):
@hobu
Copy link
Member

hobu commented May 28, 2024

Thanks for the patch!

I suppose we should just relax the version test or remote it entirely. It doesn't add too much at this point

Lost pointers: 0

Are you purposely building in Debug mode or is it accidentally being enabled?

@hobu
Copy link
Member

hobu commented May 28, 2024

Answering my own question, NDEBUG is being set by CMake regardless of build type. I will fix with a new beta of libspatialindex.

@hobu
Copy link
Member

hobu commented May 28, 2024

libspatialindex/libspatialindex#246 addressed the extra debug noise here

@adamjstewart
Copy link
Collaborator

This patch may suffice:

FWIW, it would be easier to write this as:

self.assertTrue((index.major_version, index.minor_version) >= (1, 7))

and it would work for version 3 too. But removing the test makes more sense in this case.

@hobu
Copy link
Member

hobu commented May 28, 2024

New libspatialindex beta available related to this https://github.com/libspatialindex/libspatialindex/releases/tag/2.0.0b2

@sebastic
Copy link
Contributor Author

No change with respect to the "Lost pointers" output with b2:

I: pybuild base:311: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build; python3.12 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.2.1, pluggy-1.5.0
rootdir: /build/python-rtree-1.2.0/.pybuild/cpython3_3.12_rtree/build
configfile: pyproject.toml
collected 39 items

tests/test_finder.py ..                                                  [  5%]
tests/test_index.py .......x...........Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
.................                 [ 97%]
tests/test_tpr.py .                                                      [100%]

======================== 38 passed, 1 xfailed in 0.28s =========================
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
I: pybuild base:311: cd /build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build; python3.11 -m pytest tests
============================= test session starts ==============================
platform linux -- Python 3.11.9, pytest-8.2.1, pluggy-1.5.0
rootdir: /build/python-rtree-1.2.0/.pybuild/cpython3_3.11_rtree/build
configfile: pyproject.toml
collected 39 items

tests/test_finder.py ..                                                  [  5%]
tests/test_index.py .......x...........Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
.................                 [ 97%]
tests/test_tpr.py .                                                      [100%]

======================== 38 passed, 1 xfailed in 0.30s =========================
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0
Lost pointers: 0

@hobu
Copy link
Member

hobu commented May 28, 2024

No change with respect to the "Lost pointers" output with b2:

Hmph. Can you point me to where libspatialindex is being configured? I believe I had b2 set up so that if any Debug (RelWithDebInfo/Debug) is set as the CMAKE_BUILD_TYPE, it will output that stuff.

Maybe it isn't worth the trouble at all I we should just drop it. Modern analysis tools can tell you all that stuff easily...

@sebastic
Copy link
Contributor Author

The package builds on the Debian infrastructure haven't started yet at time of writing, this is my local build log:

spatialindex.log

Note the use of -DCMAKE_BUILD_TYPE=None which allows the use of the buildflags set in the environment by dpkg-buildflags.

@hobu
Copy link
Member

hobu commented May 29, 2024

New release should take care of this https://github.com/libspatialindex/libspatialindex/releases/tag/2.0.0b3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants