Add 'load directly' mode to default Cucumber test suite#6664
Merged
Conversation
Currently `npm test` runs the Cucumber suite with a matrix configuration for selecting the algorithm (CH, MLD) and data loading (shared-memory, mmap) options. However, there is a third data loading option, 'load directly', which is to directly load the datasets into the osrm-routed process memory. The code paths for each data loading option are distinct: Storage::Run + SharedMemoryAllocator MMapMemoryAllocator ProcessMemoryAllocator This commit adds direct data loading as part of the Cucumber configuration matrix. This will ensure optional dataset support can be added without any regressions.
eliseier
pushed a commit
to wanderlog/osrm-backend
that referenced
this pull request
Mar 25, 2025
…#6664) Currently `npm test` runs the Cucumber suite with a matrix configuration for selecting the algorithm (CH, MLD) and data loading (shared-memory, mmap) options. However, there is a third data loading option, 'load directly', which is to directly load the datasets into the osrm-routed process memory. The code paths for each data loading option are distinct: Storage::Run + SharedMemoryAllocator MMapMemoryAllocator ProcessMemoryAllocator This commit adds direct data loading as part of the Cucumber configuration matrix. This will ensure optional dataset support can be added without any regressions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue
Currently,
npm testruns the Cucumber suite with a configuration matrix for the algorithm (CH, MLD) and data loading (shared-memory, mmap) options.However, there is a third data loading option, 'load directly', which is to directly load the datasets into the
osrm-routedprocess memory.The code paths for each data loading option are distinct:
This change adds 'load directly' as part of the Cucumber matrix configuration.
This will ensure future changes to dataset loading can be made without any regressions.
Impact
This increases the number of Cucumber tests run by 50%, but thanks to caching, the runtime increase is only 15%.
There is an opportunity to reduce the runtime. Some tests which are algorithm/data-loading agnostic now run six times, when once will suffice.
However, this requires tidying up the tags assigned to each test case, which feels like a bit of yak shaving I'd prefer to do after adding optional data loading.
Tasklist
Requirements / Relations
Closes #6661