Implement NodeJS based server fully replicating osrm-routed
This commit is contained in:
@@ -4,6 +4,7 @@ Feature: osrm-routed command line options: help
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: osrm-routed - Help should be shown when no options are passed
|
||||
When I run "osrm-routed"
|
||||
Then stderr should be empty
|
||||
@@ -24,6 +25,7 @@ Feature: osrm-routed command line options: help
|
||||
And stdout should contain "--max-matching-size"
|
||||
And it should exit successfully
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: osrm-routed - Help, short
|
||||
When I run "osrm-routed -h"
|
||||
Then stderr should be empty
|
||||
@@ -44,6 +46,8 @@ Feature: osrm-routed command line options: help
|
||||
And stdout should contain "--max-matching-size"
|
||||
And it should exit successfully
|
||||
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: osrm-routed - Help, long
|
||||
When I run "osrm-routed --help"
|
||||
Then stderr should be empty
|
||||
|
||||
@@ -4,6 +4,7 @@ Feature: osrm-routed command line options: invalid options
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: osrm-routed - Non-existing option
|
||||
When I try to run "osrm-routed --fly-me-to-the-moon"
|
||||
Then stdout should be empty
|
||||
|
||||
@@ -33,6 +33,11 @@ module.exports = function () {
|
||||
callback();
|
||||
});
|
||||
|
||||
this.Then(/^HTTP code should be (\d+)$/, (code, callback) => {
|
||||
assert(this.response.statusCode, parseInt(code));
|
||||
callback();
|
||||
});
|
||||
|
||||
this.Then(/^status message should be "(.*?)"$/, (message, callback) => {
|
||||
try {
|
||||
this.json = JSON.parse(this.response.body);
|
||||
|
||||
@@ -15,6 +15,8 @@ module.exports = function () {
|
||||
this.setDefaultTimeout(this.TIMEOUT);
|
||||
this.ROOT_PATH = process.cwd();
|
||||
|
||||
this.USE_ROUTED_JS = process.env.OSRM_USE_ROUTED_JS || false;
|
||||
|
||||
this.TEST_PATH = path.resolve(this.ROOT_PATH, 'test');
|
||||
this.CACHE_PATH = path.resolve(this.TEST_PATH, 'cache');
|
||||
this.LOGS_PATH = path.resolve(this.TEST_PATH, 'logs');
|
||||
@@ -40,7 +42,7 @@ module.exports = function () {
|
||||
|
||||
this.OSRM_PORT = process.env.OSRM_PORT && parseInt(process.env.OSRM_PORT) || 5000;
|
||||
this.OSRM_IP = process.env.OSRM_IP || '127.0.0.1';
|
||||
this.OSRM_CONNECTION_RETRIES = process.env.OSRM_CONNECTION_RETRIES && parseInt(process.env.OSRM_CONNECTION_RETRIES) || 10;
|
||||
this.OSRM_CONNECTION_RETRIES = process.env.OSRM_CONNECTION_RETRIES && parseInt(process.env.OSRM_CONNECTION_RETRIES) || 100;
|
||||
this.OSRM_CONNECTION_EXP_BACKOFF_COEF = process.env.OSRM_CONNECTION_EXP_BACKOFF_COEF && parseFloat(process.env.OSRM_CONNECTION_EXP_BACKOFF_COEF) || 1.0;
|
||||
|
||||
this.HOST = `http://${this.OSRM_IP}:${this.OSRM_PORT}`;
|
||||
|
||||
@@ -39,7 +39,11 @@ module.exports = function () {
|
||||
|
||||
this.runBin = (bin, options, env, callback) => {
|
||||
let cmd = path.resolve(util.format('%s/%s%s', this.BIN_PATH, bin, this.EXE));
|
||||
if (this.USE_ROUTED_JS && bin === 'osrm-routed') {
|
||||
cmd = 'osrm-routed-js';
|
||||
}
|
||||
let opts = options.split(' ').filter((x) => { return x && x.length > 0; });
|
||||
|
||||
let log = fs.createWriteStream(this.scenarioLogFile, {'flags': 'a'});
|
||||
log.write(util.format('*** running %s %s\n', cmd, options));
|
||||
// we need to set a large maxbuffer here because we have long running processes like osrm-routed
|
||||
|
||||
@@ -32,6 +32,7 @@ Feature: Ways of loading data
|
||||
Then stderr should be empty
|
||||
And it should exit successfully
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: osrm-datastore - Fail if no shared memory blocks are loaded
|
||||
When I run "osrm-datastore --spring-clean" with input "Y"
|
||||
And I try to run "osrm-routed --shared-memory=1"
|
||||
|
||||
@@ -570,7 +570,7 @@ Feature: Snapping at intersections
|
||||
| a,f,k | ac,cf,cf,fj,kj,kj | 132.8s | 132.8 |
|
||||
| k,f | ik,fi,fi | 54.3s | 54.3 |
|
||||
| f,a | ef,ae,ae | 66.6s | 66.6 |
|
||||
| k,f,a | kj,fj,fj,ef,ae,ae | 141.399999999s | 141.399999999 |
|
||||
| k,f,a | kj,fj,fj,ef,ae,ae | 141.399999999s +- 1e-7 | 141.399999999 +- 1e-7 |
|
||||
|
||||
When I request a travel time matrix I should get
|
||||
| | a | f | k |
|
||||
@@ -626,4 +626,4 @@ Feature: Snapping at intersections
|
||||
| a,f,k | ad,df,df,fj,kj,kj | 105.6s | 105.6 |
|
||||
| k,f | ik,fi,fi | 54.3s | 54.3 |
|
||||
| f,a | ef,ae,ae | 66.6s | 66.6 |
|
||||
| k,f,a | ik,fi,fi,ef,ae,ae | 120.899999999s | 120.899999999 |
|
||||
| k,f,a | ik,fi,fi,ef,ae,ae | 120.899999999s +- 1e-7 | 120.899999999 +- 1e-7 |
|
||||
|
||||
@@ -39,6 +39,7 @@ Feature: Status messages
|
||||
| a | c | | 400 | Impossible route between points |
|
||||
| b | d | | 400 | Impossible route between points |
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: Malformed requests
|
||||
Given the node locations
|
||||
| node | lat | lon |
|
||||
|
||||
@@ -4,7 +4,8 @@ Feature: Basic trip planning
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
Given a grid size of 10 meters
|
||||
|
||||
|
||||
@skip_on_routed_js
|
||||
Scenario: Testbot - Trip: Invalid options (like was in test suite for a long time)
|
||||
Given the node map
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
Feature: Tile service
|
||||
Background:
|
||||
Given the profile "testbot"
|
||||
Scenario: Smoke test
|
||||
Given the origin 52.5212,13.3919
|
||||
Given the node map
|
||||
"""
|
||||
a b
|
||||
"""
|
||||
And the ways
|
||||
| nodes |
|
||||
| ab |
|
||||
When I request /tile/v1/testbot/tile(8800,5373,14).mvt
|
||||
Then HTTP code should be 200
|
||||
Reference in New Issue
Block a user