Skip to content

Added vendor lib and test programs for a new map downloader feature#83

Open
s0nofab1t wants to merge 6 commits intoeclipse-adore:developfrom
s0nofab1t:feature/wfs-downloader
Open

Added vendor lib and test programs for a new map downloader feature#83
s0nofab1t wants to merge 6 commits intoeclipse-adore:developfrom
s0nofab1t:feature/wfs-downloader

Conversation

@s0nofab1t
Copy link

@s0nofab1t s0nofab1t commented Feb 23, 2026

Description

For a brief description of the feature in question (a WFS map downloader) please see PR 5.

This PR: Adds a new vendor library (vpetrigo/caches) as submodule (vendor/caches). Since the CMakeLists.txt file needed to be adapted to ADORes new build system, I applied the necessary changes in a fork under my own github account. File .gitmodules currently links to this fork as submodule - feel free to change this to a respective fork of someone in the core team at any time.

Type of Change

Please delete options that are not relevant:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update (adds or updates documentation)
  • Refactor (non-breaking change for code readability/structure)
  • Other (please describe):

Checklist

  • I have performed a self-review of my own code.
  • I have signed and submitted the Eclipse Foundation Contributors Agreement: https://www.eclipse.org/legal/eca/.
  • My last commit was made with the --signoff flag as required by the Eclipse Foundation.
  • I have commented my code, particularly in hard-to-understand areas and provided a README.md when necessary.
  • I have added tests that prove my fix is effective or that my feature works.
  • Tests pass locally with my changes: (run 'make test' on the ADORe project root to run unit tests).
  • I have updated the documentation in documentation/technical_reference_manual where necessary.
  • I have updated the THIRD-PARTY.md if I have introduced new third-party libraries or dependencies to the project.
  • I have updated the CONTRIBUTERS.md if I wish to acknowledged for my contribution.

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so others can reproduce.

  1. Standalone tests actually accessing the test server (please provide the password in adore/adore_test_programs/adore_map_downloader_test/config/r2s_wfs_config_bs.json):
  • Test of the basic functionality of the WFS downloader (please see adore/adore_test_programs/adore_map_downloader_test/basic_map_loading_from_wfs_test.cpp, please simply call the executable without any parameters)
  • Test downloading a map in Road2Simulation format in two ways: a) with the existing Python legacy as CSV, and b) with the new feature as GeoJSON, and then comparing the resulting roads and lanes from both downloads. Apart from a maximum difference in coordinates of 2e-6 (which are due to different implementations of rounding to six decimal places), a) and b) yielded the same data (please see adore/adore_test_programs/adore_map_downloader_test/r2s_loading_from_wfs_test.cpp, please simply call the executable without any parameters).
  1. Unit tests with google test (please see adore/adore_libraries/adore_map/test/map_download_cache_test.cpp): These unit tests perform essentially the same tests as the two standalone test programs described in the last paragraph - with the difference, that the newly implemented map cache is used (and therefore no actual accesses to the test server take place). Success can thus always be expected.
  • Remark 1: Note that success of the standalone tests under 1) can only be expected if the test server is available / not currently under maintenance / migration etc.
  • Remark 2: Since the build system change, you replaced everything with unit tests based on the google test framework (hence there are no standalone test programs anymore). However, I think this should not be done with testing an actual access to a test server, which may be down for several reasons. If it is down for e.g. maintenance, this would break the related unit tests. So I re-introduced a directory adore/adore_test_programs (also added it under .docker/scripts/setup_colcon_src.sh), and put the above two standalone tests there. Please consider this as a suggestion only. If you rather would like to strictly avoid standalone test programs in future, please just tell so in your review, and I'll simply take them out.

Please kindly review and let me know of any changes you need.

Test Configuration:

  • OS: Ubuntu Linux (Noble Numbat)
  • Docker Version: 28.4.0

Screenshots (if applicable)

Include any relevant screenshots or videos to demonstrate the feature/fix.

Related Issues

List related issues or PRs that are connected to this PR.

  • PR 5: The actual feature implementation. This PR should be merged prior to merging this PR!

Notes for Reviewers

See remarks above under "How Has This Been Tested?".

Add any context, screenshots, or additional information for reviewers.

Signed-off-by: s0nofab1t <ruediger.ebendt@dlr.de>
Signed-off-by: s0nofab1t <ruediger.ebendt@dlr.de>
Signed-off-by: s0nofab1t <ruediger.ebendt@dlr.de>
Signed-off-by: s0nofab1t <ruediger.ebendt@dlr.de>
@s0nofab1t s0nofab1t changed the title Added vendor lib and test programs for new a new map downloader feature Added vendor lib and test programs for a new map downloader feature Feb 27, 2026
@akoerner1 akoerner1 self-requested a review March 4, 2026 15:28
@akoerner1
Copy link
Contributor

First off I want to say thank you for your contribution! I have approved the CI run and noticed it is failing with following error:

/home/runner/adore/.colcon_workspace/src/adore_test_programs/adore_map_downloader_test/basic_map_loading_from_wfs_test.cpp:18:10: fatal error: adore_map/map_downloader.hpp: No such file or directory
   18 | #include "adore_map/map_downloader.hpp"

I also noticed that you have introduced a third party library, which is ok. Can you update the THIRD-PARTY.md to include this?

@s0nofab1t
Copy link
Author

Thanks for looking into this and for merging PR 5 for adore_map!
I updated the submodule and also THIRD-PARTIES.md, respectively.

@akoerner1
Copy link
Contributor

@s0nofab1t We have a new error related the library you introduced.

Starting >>> adore_map
--- stderr: adore_map
CMake Error at CMakeLists.txt:18 (find_package):
  By not providing "Findcaches.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "caches", but
  CMake did not find one.

  Could not find a package configuration file provided by "caches" with any
  of the following names:

    cachesConfig.cmake
    caches-config.cmake

We need to introduce a cachesConfig.cmake into the caches library in order for find_package(caches ...) will work.

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 this pull request may close these issues.

2 participants