mirror of
https://github.com/openstreetmap/mod_tile.git
synced 2025-07-25 01:20:03 +00:00
Fix DEFAULT_ATTRIBUTION
value and add tests (#360)
The value for `DEFAULT_ATTRIBUTION` in `includes/mod_tile.h` needed to be escaped, it was causing a JSON parsing failure. * Added basic test for `/.../.../tile-layer.json` to ensure parsing is successful * Added basic tests for `/metrics` & `/mod_tile` URLs
This commit is contained in:
@ -23,6 +23,7 @@ find_program(CURL_EXECUTABLE NAMES curl REQUIRED)
|
||||
find_program(GREP_EXECUTABLE NAMES grep REQUIRED)
|
||||
find_program(HTTPD_EXECUTABLE NAMES ${HTTPD_PROGNAME} REQUIRED)
|
||||
find_program(ID_EXECUTABLE NAMES id REQUIRED)
|
||||
find_program(JQ_EXECUTABLE NAMES jq)
|
||||
find_program(KILL_EXECUTABLE NAMES kill REQUIRED)
|
||||
find_program(MKDIR_EXECUTABLE NAMES mkdir REQUIRED)
|
||||
find_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
|
||||
set(TILE_STATUS_OFF_URL "http://localhost:${HTTPD1_PORT}/tiles/renderd-example/9/297/191.png/status")
|
||||
set(TILE_STATUS_ON_URL "http://localhost:${HTTPD0_PORT}/tiles/renderd-example/9/297/191.png/status")
|
||||
|
||||
set(CURL_CMD "${CURL_EXECUTABLE} --fail --silent")
|
||||
set(TILE_DEFAULT_CMD "${CURL_CMD} ${TILE_DEFAULT_URL}")
|
||||
set(METRICS_URL "http://localhost:${HTTPD0_PORT}/metrics")
|
||||
set(MOD_TILE_URL "http://localhost:${HTTPD0_PORT}/mod_tile")
|
||||
set(TILE_DEFAULT_TILEJSON_URL "http://localhost:${HTTPD0_PORT}/tiles/renderd-example/tile-layer.json")
|
||||
|
||||
set(TILE_DEFAULT_SHA256SUM "dbf26531286e844a3a9735cdd193598dca78d22f77cafe5824bcaf17f88cbb08")
|
||||
set(TILE_JPG_CMD "${CURL_CMD} ${TILE_JPG_URL}")
|
||||
set(TILE_JPG_SHA256SUM "e09c3406c02f03583dadf0c8404c2d3efdc06a40d399e381ed2f47f49fde42d7")
|
||||
set(TILE_PNG256_CMD "${CURL_CMD} ${TILE_PNG256_URL}")
|
||||
set(TILE_PNG256_SHA256SUM "${TILE_DEFAULT_SHA256SUM}")
|
||||
set(TILE_PNG32_CMD "${CURL_CMD} ${TILE_PNG32_URL}")
|
||||
set(TILE_PNG32_SHA256SUM "1006d92152f1e18896e0016fb43201b14bbcf7655955b74495ad3610541d325b")
|
||||
set(TILE_WEBP_CMD "${CURL_CMD} ${TILE_WEBP_URL}")
|
||||
set(TILE_WEBP_SHA256SUM_4 "ef3862a57831b21ec69c15be196e1e2b4fea66246c361142631b9fa22b85decc") # libwebp.so.4
|
||||
set(TILE_WEBP_SHA256SUM_6 "96fc0455b2269a7bcd4a5b3c9844529c3c77e3bb15f56e72f78a5af3bc15b6b5") # libwebp.so.6
|
||||
set(TILE_WEBP_SHA256SUM_7 "a82ef9ba5dc333de88af7b645084c30ab2b01c664e17162cbf6659c287cc4df4") # libwebp.so.7
|
||||
|
||||
set(CURL_CMD "${CURL_EXECUTABLE} --fail --silent")
|
||||
|
||||
execute_process(COMMAND ${ID_EXECUTABLE} -gn ${WWW_USER_NAME}
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
OUTPUT_VARIABLE WWW_GROUP_NAME
|
||||
@ -167,23 +168,23 @@ add_test(
|
||||
add_test(
|
||||
NAME download_tiles
|
||||
COMMAND ${BASH} -c "
|
||||
until $(${TILE_DEFAULT_CMD} --output tile.png); do
|
||||
until $(${CURL_CMD} ${TILE_DEFAULT_URL} --output tile.png); do
|
||||
echo 'Sleeping 1s (DEFAULT)';
|
||||
sleep 1;
|
||||
done
|
||||
until $(${TILE_JPG_CMD} --output tile.jpg); do
|
||||
until $(${CURL_CMD} ${TILE_JPG_URL} --output tile.jpg); do
|
||||
echo 'Sleeping 1s (JPG)';
|
||||
sleep 1;
|
||||
done
|
||||
until $(${TILE_PNG256_CMD} --output tile.png256); do
|
||||
until $(${CURL_CMD} ${TILE_PNG256_URL} --output tile.png256); do
|
||||
echo 'Sleeping 1s (PNG256)';
|
||||
sleep 1;
|
||||
done
|
||||
until $(${TILE_PNG32_CMD} --output tile.png32); do
|
||||
until $(${CURL_CMD} ${TILE_PNG32_URL} --output tile.png32); do
|
||||
echo 'Sleeping 1s (PNG32)';
|
||||
sleep 1;
|
||||
done
|
||||
until $(${TILE_WEBP_CMD} --output tile.webp); do
|
||||
until $(${CURL_CMD} ${TILE_WEBP_URL} --output tile.webp); do
|
||||
echo 'Sleeping 1s (WEBP)';
|
||||
sleep 1;
|
||||
done
|
||||
@ -206,7 +207,7 @@ add_test(
|
||||
WORKING_DIRECTORY tests
|
||||
)
|
||||
add_test(
|
||||
NAME dirty_tile
|
||||
NAME status_and_dirty_urls
|
||||
COMMAND ${BASH} -c "
|
||||
TILE_DIRTY_ON_CMD=\"${CURL_CMD} ${TILE_DIRTY_ON_URL}\"
|
||||
TILE_STATUS_ON_CMD=\"${CURL_CMD} ${TILE_STATUS_ON_URL}\"
|
||||
@ -239,6 +240,48 @@ add_test(
|
||||
"
|
||||
WORKING_DIRECTORY tests
|
||||
)
|
||||
add_test(
|
||||
NAME metrics_url
|
||||
COMMAND ${BASH} -c "
|
||||
METRICS_CMD=\"${CURL_CMD} ${METRICS_URL}\"
|
||||
METRICS_OUTPUT=$(\${METRICS_CMD})
|
||||
echo \"\${METRICS_OUTPUT}\"
|
||||
for LAYER in '' '-jpg' '-png256' '-png32' '-webp'; do
|
||||
LAYER_200=\"modtile_layer_responses_total{layer=\\\"/tiles/renderd-example\${LAYER}/\\\",status=\\\"200\\\"} 1\"
|
||||
LAYER_404=\"modtile_layer_responses_total{layer=\\\"/tiles/renderd-example\${LAYER}/\\\",status=\\\"404\\\"} 0\"
|
||||
echo \"\${LAYER_200}\"
|
||||
echo \"\${LAYER_404}\"
|
||||
if [[ \"\${METRICS_OUTPUT}\" != *\"\${LAYER_200}\"* ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
if [[ \"\${METRICS_OUTPUT}\" != *\"\${LAYER_404}\"* ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
"
|
||||
WORKING_DIRECTORY tests
|
||||
)
|
||||
add_test(
|
||||
NAME mod_tile_url
|
||||
COMMAND ${BASH} -c "
|
||||
MOD_TILE_CMD=\"${CURL_CMD} ${MOD_TILE_URL}\"
|
||||
MOD_TILE_OUTPUT=$(\${MOD_TILE_CMD})
|
||||
echo \"\${MOD_TILE_OUTPUT}\"
|
||||
for LAYER in '' '-jpg' '-png256' '-png32' '-webp'; do
|
||||
LAYER_200=\"NoRes200Layer/tiles/renderd-example\${LAYER}/: 1\"
|
||||
LAYER_404=\"NoRes404Layer/tiles/renderd-example\${LAYER}/: 0\"
|
||||
echo \"\${LAYER_200}\"
|
||||
echo \"\${LAYER_404}\"
|
||||
if [[ \"\${MOD_TILE_OUTPUT}\" != *\"\${LAYER_200}\"* ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
if [[ \"\${MOD_TILE_OUTPUT}\" != *\"\${LAYER_404}\"* ]]; then
|
||||
exit 1;
|
||||
fi
|
||||
done
|
||||
"
|
||||
WORKING_DIRECTORY tests
|
||||
)
|
||||
add_test(
|
||||
NAME remove_tiles
|
||||
COMMAND ${RM} -v tile.png tile.jpg tile.png256 tile.png32 tile.webp
|
||||
@ -322,14 +365,40 @@ set_tests_properties(check_tiles PROPERTIES
|
||||
FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
|
||||
REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
|
||||
)
|
||||
set_tests_properties(dirty_tile PROPERTIES
|
||||
set_tests_properties(status_and_dirty_urls PROPERTIES
|
||||
DEPENDS download_tiles
|
||||
FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
|
||||
REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
|
||||
TIMEOUT 60
|
||||
)
|
||||
set_tests_properties(metrics_url PROPERTIES
|
||||
DEPENDS download_tiles
|
||||
FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
|
||||
)
|
||||
set_tests_properties(mod_tile_url PROPERTIES
|
||||
DEPENDS download_tiles
|
||||
FIXTURES_REQUIRED "httpd_started;tiles_downloaded"
|
||||
)
|
||||
set_tests_properties(remove_tiles PROPERTIES
|
||||
DEPENDS download_tiles
|
||||
FIXTURES_CLEANUP tiles_downloaded
|
||||
REQUIRED_FILES "tile.png;tile.jpg;tile.png256;tile.png32;tile.webp"
|
||||
)
|
||||
|
||||
if(JQ_EXECUTABLE)
|
||||
add_test(
|
||||
NAME tilejson_url
|
||||
COMMAND ${BASH} -c "
|
||||
TILE_DEFAULT_TILEJSON_CMD=\"${CURL_CMD} ${TILE_DEFAULT_TILEJSON_URL}\"
|
||||
TILE_DEFAULT_TILEJSON_OUTPUT=$(\${TILE_DEFAULT_TILEJSON_CMD})
|
||||
TILE_DEFAULT_TILEJSON_VERSION=$(echo \"\${TILE_DEFAULT_TILEJSON_OUTPUT}\" | ${JQ_EXECUTABLE} -r .tilejson)
|
||||
if [ \"\${TILE_DEFAULT_TILEJSON_VERSION}\" != \"2.0.0\" ]; then
|
||||
exit 1;
|
||||
fi
|
||||
"
|
||||
WORKING_DIRECTORY tests
|
||||
)
|
||||
set_tests_properties(tilejson_url PROPERTIES
|
||||
FIXTURES_REQUIRED httpd_started
|
||||
)
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user