@@ -23,6 +23,7 @@ find_program(CURL_EXECUTABLE NAMES curl REQUIRED)
2323find_program (GREP_EXECUTABLE NAMES grep REQUIRED )
2424find_program (HTTPD_EXECUTABLE NAMES ${HTTPD_PROGNAME} REQUIRED )
2525find_program (ID_EXECUTABLE NAMES id REQUIRED )
26+ find_program (JQ_EXECUTABLE NAMES jq )
2627find_program (KILL_EXECUTABLE NAMES kill REQUIRED )
2728find_program (MKDIR_EXECUTABLE NAMES mkdir REQUIRED )
2829find_program (SHA256SUM_EXECUTABLE NAMES gsha256sum sha256sum REQUIRED )
@@ -52,20 +53,20 @@ set(TILE_DIRTY_ON_URL "http://localhost:${HTTPD0_PORT}/tiles/renderd-example/9/2
5253set (TILE_STATUS_OFF_URL "http://localhost:${HTTPD1_PORT} /tiles/renderd-example/9/297/191.png/status" )
5354set (TILE_STATUS_ON_URL "http://localhost:${HTTPD0_PORT} /tiles/renderd-example/9/297/191.png/status" )
5455
55- set (CURL_CMD "${CURL_EXECUTABLE} --fail --silent" )
56- set (TILE_DEFAULT_CMD "${CURL_CMD} ${TILE_DEFAULT_URL} " )
56+ set (METRICS_URL "http://localhost:${HTTPD0_PORT} /metrics" )
57+ set (MOD_TILE_URL "http://localhost:${HTTPD0_PORT} /mod_tile" )
58+ set (TILE_DEFAULT_TILEJSON_URL "http://localhost:${HTTPD0_PORT} /tiles/renderd-example/tile-layer.json" )
59+
5760set (TILE_DEFAULT_SHA256SUM "dbf26531286e844a3a9735cdd193598dca78d22f77cafe5824bcaf17f88cbb08" )
58- set (TILE_JPG_CMD "${CURL_CMD} ${TILE_JPG_URL} " )
5961set (TILE_JPG_SHA256SUM "e09c3406c02f03583dadf0c8404c2d3efdc06a40d399e381ed2f47f49fde42d7" )
60- set (TILE_PNG256_CMD "${CURL_CMD} ${TILE_PNG256_URL} " )
6162set (TILE_PNG256_SHA256SUM "${TILE_DEFAULT_SHA256SUM} " )
62- set (TILE_PNG32_CMD "${CURL_CMD} ${TILE_PNG32_URL} " )
6363set (TILE_PNG32_SHA256SUM "1006d92152f1e18896e0016fb43201b14bbcf7655955b74495ad3610541d325b" )
64- set (TILE_WEBP_CMD "${CURL_CMD} ${TILE_WEBP_URL} " )
6564set (TILE_WEBP_SHA256SUM_4 "ef3862a57831b21ec69c15be196e1e2b4fea66246c361142631b9fa22b85decc" ) # libwebp.so.4
6665set (TILE_WEBP_SHA256SUM_6 "96fc0455b2269a7bcd4a5b3c9844529c3c77e3bb15f56e72f78a5af3bc15b6b5" ) # libwebp.so.6
6766set (TILE_WEBP_SHA256SUM_7 "a82ef9ba5dc333de88af7b645084c30ab2b01c664e17162cbf6659c287cc4df4" ) # libwebp.so.7
6867
68+ set (CURL_CMD "${CURL_EXECUTABLE} --fail --silent" )
69+
6970execute_process (COMMAND ${ID_EXECUTABLE} -gn ${WWW_USER_NAME}
7071 OUTPUT_STRIP_TRAILING_WHITESPACE
7172 OUTPUT_VARIABLE WWW_GROUP_NAME
@@ -167,23 +168,23 @@ add_test(
167168add_test (
168169 NAME download_tiles
169170 COMMAND ${BASH} -c "
170- until $(${TILE_DEFAULT_CMD } --output tile.png); do
171+ until $(${CURL_CMD} ${TILE_DEFAULT_URL } --output tile.png); do
171172 echo 'Sleeping 1s (DEFAULT)';
172173 sleep 1;
173174 done
174- until $(${TILE_JPG_CMD } --output tile.jpg); do
175+ until $(${CURL_CMD} ${TILE_JPG_URL } --output tile.jpg); do
175176 echo 'Sleeping 1s (JPG)';
176177 sleep 1;
177178 done
178- until $(${TILE_PNG256_CMD } --output tile.png256); do
179+ until $(${CURL_CMD} ${TILE_PNG256_URL } --output tile.png256); do
179180 echo 'Sleeping 1s (PNG256)';
180181 sleep 1;
181182 done
182- until $(${TILE_PNG32_CMD } --output tile.png32); do
183+ until $(${CURL_CMD} ${TILE_PNG32_URL } --output tile.png32); do
183184 echo 'Sleeping 1s (PNG32)';
184185 sleep 1;
185186 done
186- until $(${TILE_WEBP_CMD } --output tile.webp); do
187+ until $(${CURL_CMD} ${TILE_WEBP_URL } --output tile.webp); do
187188 echo 'Sleeping 1s (WEBP)';
188189 sleep 1;
189190 done
@@ -206,7 +207,7 @@ add_test(
206207 WORKING_DIRECTORY tests
207208)
208209add_test (
209- NAME dirty_tile
210+ NAME status_and_dirty_urls
210211 COMMAND ${BASH} -c "
211212 TILE_DIRTY_ON_CMD=\" ${CURL_CMD} ${TILE_DIRTY_ON_URL} \"
212213 TILE_STATUS_ON_CMD=\" ${CURL_CMD} ${TILE_STATUS_ON_URL} \"
@@ -239,6 +240,48 @@ add_test(
239240 "
240241 WORKING_DIRECTORY tests
241242)
243+ add_test (
244+ NAME metrics_url
245+ COMMAND ${BASH} -c "
246+ METRICS_CMD=\" ${CURL_CMD} ${METRICS_URL} \"
247+ METRICS_OUTPUT=$(\$ {METRICS_CMD})
248+ echo \"\$ {METRICS_OUTPUT}\"
249+ for LAYER in '' '-jpg' '-png256' '-png32' '-webp'; do
250+ LAYER_200=\" modtile_layer_responses_total{layer=\\\" /tiles/renderd-example\$ {LAYER}/\\\" ,status=\\\" 200\\\" } 1\"
251+ LAYER_404=\" modtile_layer_responses_total{layer=\\\" /tiles/renderd-example\$ {LAYER}/\\\" ,status=\\\" 404\\\" } 0\"
252+ echo \"\$ {LAYER_200}\"
253+ echo \"\$ {LAYER_404}\"
254+ if [[ \"\$ {METRICS_OUTPUT}\" != *\"\$ {LAYER_200}\" * ]]; then
255+ exit 1;
256+ fi
257+ if [[ \"\$ {METRICS_OUTPUT}\" != *\"\$ {LAYER_404}\" * ]]; then
258+ exit 1;
259+ fi
260+ done
261+ "
262+ WORKING_DIRECTORY tests
263+ )
264+ add_test (
265+ NAME mod_tile_url
266+ COMMAND ${BASH} -c "
267+ MOD_TILE_CMD=\" ${CURL_CMD} ${MOD_TILE_URL} \"
268+ MOD_TILE_OUTPUT=$(\$ {MOD_TILE_CMD})
269+ echo \"\$ {MOD_TILE_OUTPUT}\"
270+ for LAYER in '' '-jpg' '-png256' '-png32' '-webp'; do
271+ LAYER_200=\" NoRes200Layer/tiles/renderd-example\$ {LAYER}/: 1\"
272+ LAYER_404=\" NoRes404Layer/tiles/renderd-example\$ {LAYER}/: 0\"
273+ echo \"\$ {LAYER_200}\"
274+ echo \"\$ {LAYER_404}\"
275+ if [[ \"\$ {MOD_TILE_OUTPUT}\" != *\"\$ {LAYER_200}\" * ]]; then
276+ exit 1;
277+ fi
278+ if [[ \"\$ {MOD_TILE_OUTPUT}\" != *\"\$ {LAYER_404}\" * ]]; then
279+ exit 1;
280+ fi
281+ done
282+ "
283+ WORKING_DIRECTORY tests
284+ )
242285add_test (
243286 NAME remove_tiles
244287 COMMAND ${RM} -v tile.png tile.jpg tile.png256 tile.png32 tile.webp
@@ -322,14 +365,40 @@ set_tests_properties(check_tiles PROPERTIES
322365 FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
323366 REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
324367)
325- set_tests_properties (dirty_tile PROPERTIES
368+ set_tests_properties (status_and_dirty_urls PROPERTIES
326369 DEPENDS download_tiles
327370 FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
328371 REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
329372 TIMEOUT 60
330373)
374+ set_tests_properties (metrics_url PROPERTIES
375+ DEPENDS download_tiles
376+ FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
377+ )
378+ set_tests_properties (mod_tile_url PROPERTIES
379+ DEPENDS download_tiles
380+ FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
381+ )
331382set_tests_properties (remove_tiles PROPERTIES
332383 DEPENDS download_tiles
333384 FIXTURES_CLEANUP tiles_downloaded
334385 REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
335386)
387+
388+ if (JQ_EXECUTABLE)
389+ add_test (
390+ NAME tilejson_url
391+ COMMAND ${BASH} -c "
392+ TILE_DEFAULT_TILEJSON_CMD=\" ${CURL_CMD} ${TILE_DEFAULT_TILEJSON_URL} \"
393+ TILE_DEFAULT_TILEJSON_OUTPUT=$(\$ {TILE_DEFAULT_TILEJSON_CMD})
394+ TILE_DEFAULT_TILEJSON_VERSION=$(echo \"\$ {TILE_DEFAULT_TILEJSON_OUTPUT}\" | ${JQ_EXECUTABLE} -r .tilejson)
395+ if [ \"\$ {TILE_DEFAULT_TILEJSON_VERSION}\" != \" 2.0.0\" ]; then
396+ exit 1;
397+ fi
398+ "
399+ WORKING_DIRECTORY tests
400+ )
401+ set_tests_properties (tilejson_url PROPERTIES
402+ FIXTURES_REQUIRED httpd_started
403+ )
404+ endif ()
0 commit comments