at 25.11-pre 2.3 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, lib, ... }: 3 let 4 port = 5000; 5 in 6 { 7 name = "osrm-backend"; 8 meta.maintainers = [ lib.maintainers.erictapen ]; 9 10 nodes.machine = 11 { config, pkgs, ... }: 12 { 13 14 services.osrm = { 15 enable = true; 16 inherit port; 17 dataFile = 18 let 19 filename = "monaco"; 20 osrm-data = pkgs.stdenv.mkDerivation { 21 name = "osrm-data"; 22 23 buildInputs = [ pkgs.osrm-backend ]; 24 25 # This is a pbf file of monaco, downloaded at 2019-01-04 from 26 # http://download.geofabrik.de/europe/monaco-latest.osm.pbf 27 # as apparently no provider of OSM files guarantees immutability, 28 # this is hosted as a gist on GitHub. 29 src = pkgs.fetchgit { 30 url = "https://gist.github.com/erictapen/01e39f73a6c856eac53ba809a94cdb83"; 31 rev = "9b1ff0f24deb40e5cf7df51f843dbe860637b8ce"; 32 sha256 = "1scqhmrfnpwsy5i2a9jpggqnvfgj4hv9p4qyvc79321pzkbv59nx"; 33 }; 34 35 buildCommand = '' 36 cp $src/${filename}.osm.pbf . 37 ${pkgs.osrm-backend}/bin/osrm-extract -p ${pkgs.osrm-backend}/share/osrm/profiles/car.lua ${filename}.osm.pbf 38 ${pkgs.osrm-backend}/bin/osrm-partition ${filename}.osrm 39 ${pkgs.osrm-backend}/bin/osrm-customize ${filename}.osrm 40 mkdir -p $out 41 cp ${filename}* $out/ 42 ''; 43 }; 44 in 45 "${osrm-data}/${filename}.osrm"; 46 }; 47 48 environment.systemPackages = [ pkgs.jq ]; 49 }; 50 51 testScript = 52 let 53 query = "http://localhost:${toString port}/route/v1/driving/7.41720,43.73304;7.42463,43.73886?steps=true"; 54 in 55 '' 56 machine.wait_for_unit("osrm.service") 57 machine.wait_for_open_port(${toString port}) 58 assert "Boulevard Rainier III" in machine.succeed( 59 "curl --fail --silent '${query}' | jq .waypoints[0].name" 60 ) 61 assert "Avenue de la Costa" in machine.succeed( 62 "curl --fail --silent '${query}' | jq .waypoints[1].name" 63 ) 64 ''; 65 } 66)