* fix incorrect parameter parsing for node osrm and add tests * fix boost spirit grammar parsing for annotations * return NotImplemented when distance annotation is requested for MLD in table plugin * update docs
66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
'use strict';
|
|
|
|
var d3 = require('d3-queue');
|
|
var path = require('path');
|
|
var mkdirp = require('mkdirp');
|
|
var rimraf = require('rimraf');
|
|
var OSM = require('../lib/osm');
|
|
var OSRMLoader = require('../lib/osrm_loader');
|
|
|
|
module.exports = function () {
|
|
this.registerHandler('BeforeFeatures', {timeout: 30000}, (features, callback) => {
|
|
this.osrmLoader = new OSRMLoader(this);
|
|
this.OSMDB = new OSM.DB();
|
|
|
|
let queue = d3.queue(1);
|
|
queue.defer(this.initializeEnv.bind(this));
|
|
queue.defer(this.verifyOSRMIsNotRunning.bind(this));
|
|
queue.defer(this.verifyExistenceOfBinaries.bind(this));
|
|
queue.defer(this.initializeCache.bind(this));
|
|
queue.defer(this.setupFeatures.bind(this, features));
|
|
queue.awaitAll(callback);
|
|
});
|
|
|
|
this.BeforeFeature((feature, callback) => {
|
|
this.profile = this.OSRM_PROFILE || this.DEFAULT_PROFILE;
|
|
this.profileFile = path.join(this.PROFILES_PATH, this.profile + '.lua');
|
|
this.setupFeatureCache(feature);
|
|
callback();
|
|
});
|
|
|
|
this.Before((scenario, callback) => {
|
|
this.osrmLoader.setLoadMethod(this.DEFAULT_LOAD_METHOD);
|
|
this.setGridSize(this.DEFAULT_GRID_SIZE);
|
|
this.setOrigin(this.DEFAULT_ORIGIN);
|
|
this.queryParams = {};
|
|
this.extractArgs = '';
|
|
this.contractArgs = '';
|
|
this.partitionArgs = '';
|
|
this.customizeArgs = '';
|
|
this.environment = Object.assign(this.DEFAULT_ENVIRONMENT);
|
|
this.resetOSM();
|
|
|
|
this.scenarioID = this.getScenarioID(scenario);
|
|
this.setupScenarioCache(this.scenarioID);
|
|
|
|
// setup output logging
|
|
let logDir = path.join(this.LOGS_PATH, this.featureID);
|
|
this.scenarioLogFile = path.join(logDir, this.scenarioID) + '.log';
|
|
d3.queue(1)
|
|
.defer(mkdirp, logDir)
|
|
.defer(rimraf, this.scenarioLogFile)
|
|
.awaitAll(callback);
|
|
// uncomment to get path to logfile
|
|
// console.log(' Writing logging output to ' + this.scenarioLogFile);
|
|
});
|
|
|
|
this.After((scenario, callback) => {
|
|
this.resetOptionsOutput();
|
|
callback();
|
|
});
|
|
|
|
this.AfterFeatures((features, callback) => {
|
|
callback();
|
|
});
|
|
};
|