diff --git a/.github/workflows/osrm-backend.yml b/.github/workflows/osrm-backend.yml index f227c7aa3..dcdf5c2a2 100644 --- a/.github/workflows/osrm-backend.yml +++ b/.github/workflows/osrm-backend.yml @@ -119,8 +119,6 @@ jobs: popd ./scripts/error_on_dirty.sh - - # docker-image: # needs: format-taginfo-docs # runs-on: ubuntu-22.04 @@ -169,62 +167,62 @@ jobs: strategy: matrix: include: - # - name: gcc-9-debug-cov - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Debug - # CCOMPILER: gcc-9 - # CUCUMBER_TIMEOUT: 20000 - # CXXCOMPILER: g++-9 - # ENABLE_COVERAGE: ON + - name: gcc-9-debug-cov + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Debug + CCOMPILER: gcc-9 + CUCUMBER_TIMEOUT: 20000 + CXXCOMPILER: g++-9 + ENABLE_COVERAGE: ON - # - name: gcc-9-debug-asan-ubsan - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Debug - # CCOMPILER: gcc-9 - # CUCUMBER_TIMEOUT: 20000 - # CXXCOMPILER: g++-9 - # ENABLE_SANITIZER: ON - # TARGET_ARCH: x86_64-asan-ubsan - # OSRM_CONNECTION_RETRIES: 10 - # OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 + - name: gcc-9-debug-asan-ubsan + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Debug + CCOMPILER: gcc-9 + CUCUMBER_TIMEOUT: 20000 + CXXCOMPILER: g++-9 + ENABLE_SANITIZER: ON + TARGET_ARCH: x86_64-asan-ubsan + OSRM_CONNECTION_RETRIES: 10 + OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 - # - name: clang-6.0-debug - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # CUCUMBER_TIMEOUT: 60000 + - name: clang-6.0-debug + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + CUCUMBER_TIMEOUT: 60000 - # - name: clang-11.0-debug-clang-tidy - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-22.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Debug - # CCOMPILER: clang-14 - # CXXCOMPILER: clang++-14 - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_CLANG_TIDY: ON + - name: clang-11.0-debug-clang-tidy + continue-on-error: false + node: 12 + runs-on: ubuntu-22.04 + BUILD_TOOLS: ON + BUILD_TYPE: Debug + CCOMPILER: clang-14 + CXXCOMPILER: clang++-14 + CUCUMBER_TIMEOUT: 60000 + ENABLE_CLANG_TIDY: ON - # - name: conan-linux-debug-asan-ubsan - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: clang-11 - # CXXCOMPILER: clang++-11 - # ENABLE_CONAN: ON - # ENABLE_SANITIZER: ON + - name: conan-linux-debug-asan-ubsan + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: clang-11 + CXXCOMPILER: clang++-11 + ENABLE_CONAN: ON + ENABLE_SANITIZER: ON - name: conan-linux-release continue-on-error: false @@ -236,290 +234,290 @@ jobs: CXXCOMPILER: clang++-6.0 ENABLE_CONAN: ON - # - name: gcc-11-release - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-11 - # CXXCOMPILER: g++-11 - # ENABLE_BENCHMARKS: ON + - name: gcc-11-release + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-11 + CXXCOMPILER: g++-11 + ENABLE_BENCHMARKS: ON - # - name: gcc-10-release - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-10 - # CXXCOMPILER: g++-10 + - name: gcc-10-release + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-10 + CXXCOMPILER: g++-10 - # - name: gcc-9-release - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-9 - # CXXCOMPILER: g++-9 - # CXXFLAGS: -Wno-cast-function-type + - name: gcc-9-release + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-9 + CXXCOMPILER: g++-9 + CXXFLAGS: -Wno-cast-function-type - # - name: gcc-9-conan-release-i686 - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-9 - # CFLAGS: "-m32 -msse2 -mfpmath=sse" - # CXXCOMPILER: g++-9 - # CXXFLAGS: "-m32 -msse2 -mfpmath=sse" - # TARGET_ARCH: i686 - # ENABLE_CONAN: ON + - name: gcc-9-conan-release-i686 + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-9 + CFLAGS: "-m32 -msse2 -mfpmath=sse" + CXXCOMPILER: g++-9 + CXXFLAGS: "-m32 -msse2 -mfpmath=sse" + TARGET_ARCH: i686 + ENABLE_CONAN: ON - # - name: gcc-8-release - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-8 - # CXXCOMPILER: g++-8 - # CXXFLAGS: -Wno-cast-function-type + - name: gcc-8-release + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-8 + CXXCOMPILER: g++-8 + CXXFLAGS: -Wno-cast-function-type - # - name: gcc-7-release - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: gcc-7 - # CXXCOMPILER: g++-7 + - name: gcc-7-release + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: gcc-7 + CXXCOMPILER: g++-7 - # - name: conan-macos-x64-release-node-12 - # build_node_package: true - # continue-on-error: false - # node: 12 - # runs-on: macos-11 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON + - name: conan-macos-x64-release-node-12 + build_node_package: true + continue-on-error: false + node: 12 + runs-on: macos-11 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON - # - name: conan-macos-x64-release-node-14 - # build_node_package: true - # continue-on-error: false - # node: 14 - # runs-on: macos-11 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON + - name: conan-macos-x64-release-node-14 + build_node_package: true + continue-on-error: false + node: 14 + runs-on: macos-11 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON - # - name: conan-macos-x64-release-node-16 - # build_node_package: true - # continue-on-error: false - # node: 16 - # runs-on: macos-11 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON + - name: conan-macos-x64-release-node-16 + build_node_package: true + continue-on-error: false + node: 16 + runs-on: macos-11 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON - # - name: conan-macos-arm64-release-node-16 - # build_node_package: true - # continue-on-error: false - # node: 16 - # runs-on: macos-11 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON - # ENABLE_APPLE_SILICON: ON + - name: conan-macos-arm64-release-node-16 + build_node_package: true + continue-on-error: false + node: 16 + runs-on: macos-11 + BUILD_TOOLS: ON + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON + ENABLE_APPLE_SILICON: ON - # - name: gcc-7-release-shared - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TOOLS: ON - # BUILD_TYPE: Release - # BUILD_SHARED_LIBS: ON - # CCOMPILER: gcc-7 - # CXXCOMPILER: g++-7 + - name: gcc-7-release-shared + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TOOLS: ON + BUILD_TYPE: Release + BUILD_SHARED_LIBS: ON + CCOMPILER: gcc-7 + CXXCOMPILER: g++-7 - # - name: node-12-conan-linux-release - # build_node_package: true - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Release - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-12-conan-linux-release + build_node_package: true + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TYPE: Release + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-12-conan-linux-debug - # build_node_package: true - # continue-on-error: false - # node: 12 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-12-conan-linux-debug + build_node_package: true + continue-on-error: false + node: 12 + runs-on: ubuntu-20.04 + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-14-conan-linux-release - # build_node_package: true - # continue-on-error: false - # node: 14 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Release - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-14-conan-linux-release + build_node_package: true + continue-on-error: false + node: 14 + runs-on: ubuntu-20.04 + BUILD_TYPE: Release + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-14-conan-linux-debug - # build_node_package: true - # continue-on-error: false - # node: 14 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-14-conan-linux-debug + build_node_package: true + continue-on-error: false + node: 14 + runs-on: ubuntu-20.04 + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-16-conan-linux-release - # build_node_package: true - # continue-on-error: false - # node: 16 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Release - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-16-conan-linux-release + build_node_package: true + continue-on-error: false + node: 16 + runs-on: ubuntu-20.04 + BUILD_TYPE: Release + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-16-conan-linux-debug - # build_node_package: true - # continue-on-error: false - # node: 16 - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-16-conan-linux-debug + build_node_package: true + continue-on-error: false + node: 16 + runs-on: ubuntu-20.04 + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: conan-macos-x64-release-node-latest - # build_node_package: true - # continue-on-error: true - # node: latest - # runs-on: macos-11 - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON + - name: conan-macos-x64-release-node-latest + build_node_package: true + continue-on-error: true + node: latest + runs-on: macos-11 + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON - # - name: conan-macos-arm64-release-node-latest - # build_node_package: true - # continue-on-error: true - # node: latest - # runs-on: macos-11 - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON - # ENABLE_APPLE_SILICON: ON + - name: conan-macos-arm64-release-node-latest + build_node_package: true + continue-on-error: true + node: latest + runs-on: macos-11 + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON + ENABLE_APPLE_SILICON: ON - # - name: node-latest-conan-linux-release - # build_node_package: true - # continue-on-error: true - # node: latest - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Release - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-latest-conan-linux-release + build_node_package: true + continue-on-error: true + node: latest + runs-on: ubuntu-20.04 + BUILD_TYPE: Release + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-latest-conan-linux-debug - # build_node_package: true - # continue-on-error: true - # node: latest - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-latest-conan-linux-debug + build_node_package: true + continue-on-error: true + node: latest + runs-on: ubuntu-20.04 + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: conan-macos-x64-release-node-lts - # build_node_package: true - # continue-on-error: true - # node: "lts/*" - # runs-on: macos-11 - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON + - name: conan-macos-x64-release-node-lts + build_node_package: true + continue-on-error: true + node: "lts/*" + runs-on: macos-11 + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON - # - name: conan-macos-arm64-release-node-lts - # build_node_package: true - # continue-on-error: true - # node: "lts/*" - # runs-on: macos-11 - # BUILD_TYPE: Release - # CCOMPILER: clang - # CXXCOMPILER: clang++ - # CUCUMBER_TIMEOUT: 60000 - # ENABLE_ASSERTIONS: ON - # ENABLE_CONAN: ON - # ENABLE_APPLE_SILICON: ON + - name: conan-macos-arm64-release-node-lts + build_node_package: true + continue-on-error: true + node: "lts/*" + runs-on: macos-11 + BUILD_TYPE: Release + CCOMPILER: clang + CXXCOMPILER: clang++ + CUCUMBER_TIMEOUT: 60000 + ENABLE_ASSERTIONS: ON + ENABLE_CONAN: ON + ENABLE_APPLE_SILICON: ON - # - name: node-lts-conan-linux-release - # build_node_package: true - # continue-on-error: true - # node: "lts/*" - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Release - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-lts-conan-linux-release + build_node_package: true + continue-on-error: true + node: "lts/*" + runs-on: ubuntu-20.04 + BUILD_TYPE: Release + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON - # - name: node-lts-conan-linux-debug - # build_node_package: true - # continue-on-error: true - # node: "lts/*" - # runs-on: ubuntu-20.04 - # BUILD_TYPE: Debug - # CCOMPILER: clang-6.0 - # CXXCOMPILER: clang++-6.0 - # ENABLE_CONAN: ON - # NODE_PACKAGE_TESTS_ONLY: ON + - name: node-lts-conan-linux-debug + build_node_package: true + continue-on-error: true + node: "lts/*" + runs-on: ubuntu-20.04 + BUILD_TYPE: Debug + CCOMPILER: clang-6.0 + CXXCOMPILER: clang++-6.0 + ENABLE_CONAN: ON + NODE_PACKAGE_TESTS_ONLY: ON name: ${{ matrix.name}} continue-on-error: ${{ matrix.continue-on-error }} @@ -700,7 +698,9 @@ jobs: cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} make --jobs=${JOBS} popd - - run: cd routed-js && npm ci && npm link + - name: Install osrm-routed-js dependencies + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != '12' }} + run: cd routed-js && npm ci && npm link &&osrm-routed-js --version - run: osrm-routed-js --version - name: Run all tests if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} diff --git a/features/lib/osrm_loader.js b/features/lib/osrm_loader.js index 9d409f3d6..a6f4dc8df 100644 --- a/features/lib/osrm_loader.js +++ b/features/lib/osrm_loader.js @@ -185,11 +185,16 @@ class OSRMLoader { this.loader = {shutdown: (cb) => cb() }; } if (this.method === 'datastore') { - this.loader.shutdown((err) => { - if (err) return callback(err); - this.loader = this.sharedLoader; - this.sharedLoader.load(inputFile, callback); - }); + // shutdown only if we are switching from another loader type + if (this.loader !== this.sharedLoader) { + this.loader.shutdown((err) => { + if (err) return callback(err); + this.loader = this.sharedLoader; + this.sharedLoader.load(inputFile, callback); + }); + } else { + this.sharedLoader.load(inputFile, callback); + } } else if (this.method === 'directly') { this.loader.shutdown((err) => { if (err) return callback(err); @@ -198,12 +203,12 @@ class OSRMLoader { }); } else if (this.method === 'mmap') { this.loader.shutdown((err) => { - if (err) return callback(err); - this.loader = this.mmapLoader; - this.mmapLoader.load(inputFile, callback); + if (err) return callback(err); + this.loader = this.mmapLoader; + this.mmapLoader.load(inputFile, callback); }); } else { - callback(new Error('*** Unknown load method ' + method)); + callback(new Error('*** Unknown load method ' + this.method)); } } diff --git a/package.json b/package.json index 859f21074..5e324f39c 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "scripts": { "lint": "node ./node_modules/eslint/bin/eslint.js -c ./.eslintrc features/step_definitions/ features/support/", - "test": "./scripts/run_cucumber_tests.sh", + "test": "npm run lint && ./scripts/run_cucumber_tests.sh", "clean": "rm -rf test/cache", "docs": "./scripts/build_api_docs.sh", "install": "node-pre-gyp install --fallback-to-build=false || ./scripts/node_install.sh", diff --git a/routed-js/schema.js b/routed-js/schema.js index f1c0e9891..5cb9fc055 100644 --- a/routed-js/schema.js +++ b/routed-js/schema.js @@ -278,27 +278,15 @@ function parseQueryString(queryString) { // 0 means "infinity" maxKeys: 0 }); - // TODO: copy-paste - if ('timestamps' in parsed) { - parsed['timestamps'] = parseArray(parsed['timestamps'], ';'); + for (const key of ['timestamps', 'radiuses', 'approaches', 'waypoints', 'hints']) { + if (key in parsed) { + parsed[key] = parseArray(parsed[key], ';'); + } } - if ('radiuses' in parsed) { - parsed['radiuses'] = parseArray(parsed['radiuses'], ';'); - } - if ('approaches' in parsed) { - parsed['approaches'] = parseArray(parsed['approaches'], ';'); - } - if ('waypoints' in parsed) { - parsed['waypoints'] = parseArray(parsed['waypoints'], ';'); - } - if ('sources' in parsed && parsed['sources'] !== 'all') { - parsed['sources'] = parseArray(parsed['sources'], ';'); - } - if ('destinations' in parsed && parsed['destinations'] !== 'all') { - parsed['destinations'] = parseArray(parsed['destinations'], ';'); - } - if ('hints' in parsed) { - parsed['hints'] = parseArray(parsed['hints'], ';'); + for (const key of ['sources', 'destinations']) { + if (key in parsed && parsed[key] !== 'all') { + parsed[key] = parseArray(parsed[key], ';'); + } } if ('exclude' in parsed) { parsed['exclude'] = parseArray(parsed['exclude'], ','); diff --git a/routed-js/schema.ts b/routed-js/schema.ts index 908bb7416..c3479f8ea 100644 --- a/routed-js/schema.ts +++ b/routed-js/schema.ts @@ -296,27 +296,15 @@ export function parseQueryString(queryString: string): any { // 0 means "infinity" maxKeys: 0 }); - // TODO: copy-paste - if ('timestamps' in parsed) { - parsed['timestamps'] = parseArray(parsed['timestamps'], ';'); + for (const key of ['timestamps', 'radiuses', 'approaches', 'waypoints', 'hints']) { + if (key in parsed) { + parsed[key] = parseArray(parsed[key], ';'); + } } - if ('radiuses' in parsed) { - parsed['radiuses'] = parseArray(parsed['radiuses'], ';'); - } - if ('approaches' in parsed) { - parsed['approaches'] = parseArray(parsed['approaches'], ';'); - } - if ('waypoints' in parsed) { - parsed['waypoints'] = parseArray(parsed['waypoints'], ';'); - } - if ('sources' in parsed && parsed['sources'] !== 'all') { - parsed['sources'] = parseArray(parsed['sources'], ';'); - } - if ('destinations' in parsed && parsed['destinations'] !== 'all') { - parsed['destinations'] = parseArray(parsed['destinations'], ';'); - } - if ('hints' in parsed) { - parsed['hints'] = parseArray(parsed['hints'], ';'); + for (const key of ['sources', 'destinations']) { + if (key in parsed && parsed[key] !== 'all') { + parsed[key] = parseArray(parsed[key], ';'); + } } if ('exclude' in parsed) { parsed['exclude'] = parseArray(parsed['exclude'], ','); diff --git a/scripts/run_cucumber_tests.sh b/scripts/run_cucumber_tests.sh index f709d0d15..a23962f2c 100755 --- a/scripts/run_cucumber_tests.sh +++ b/scripts/run_cucumber_tests.sh @@ -1,12 +1,17 @@ #!/bin/sh set -e -export OSRM_USE_ROUTED_JS=1 -node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js -node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js -m mmap -node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js -node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js -m mmap -unset OSRM_USE_ROUTED_JS +# we do not run `osrm-routed-js` tests on v12 since fastify doesn't support it +NODE_VERSION=$(node --version) +NODE_MAJOR_VERSION=$(echo $NODE_VERSION | cut -d. -f1) +if [[ $NODE_MAJOR_VERSION != "v12" ]]; then + export OSRM_USE_ROUTED_JS=1 + node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js + node ./node_modules/cucumber/bin/cucumber.js features/ -p verify_routed_js -m mmap + node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js + node ./node_modules/cucumber/bin/cucumber.js features/ -p mld_routed_js -m mmap + unset OSRM_USE_ROUTED_JS +fi node ./node_modules/cucumber/bin/cucumber.js features/ -p verify node ./node_modules/cucumber/bin/cucumber.js features/ -p verify -m mmap