@@ -48,7 +48,7 @@ set(RENDERD1_PORT_BASE "59500")
4848
4949set (CURL_CMD "${CURL_EXECUTABLE} --fail --silent" )
5050
51- set (MAP_NAMES " jpg" " png256" " png32" " webp" )
51+ set (MAP_NAMES jpg png256 png32 webp)
5252
5353set (TESTS_CONF_DIR "${PROJECT_BINARY_DIR} /tests/conf" )
5454set (TESTS_LOGS_DIR "${PROJECT_BINARY_DIR} /tests/logs" )
@@ -101,16 +101,16 @@ add_test(
101101)
102102
103103foreach (STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH} )
104- # Get STORAGE_BACKEND from lists
104+ # Get STORAGE_BACKEND from STORAGE_BACKENDS list
105105 list (GET STORAGE_BACKENDS ${STORAGE_BACKEND_INDEX} STORAGE_BACKEND)
106106
107107 # Increment Ports
108108 math (EXPR HTTPD0_PORT "${HTTPD0_PORT_BASE} + ${STORAGE_BACKEND_INDEX} " )
109109 math (EXPR HTTPD1_PORT "${HTTPD1_PORT_BASE} + ${STORAGE_BACKEND_INDEX} " )
110110 math (EXPR RENDERD1_PORT "${RENDERD1_PORT_BASE} + ${STORAGE_BACKEND_INDEX} " )
111- if (STORAGE_BACKEND STREQUAL " memcached_custom" )
111+ if (STORAGE_BACKEND STREQUAL memcached_custom)
112112 math (EXPR MEMCACHED_PORT "${MEMCACHED_PORT_BASE} + ${STORAGE_BACKEND_INDEX} " )
113- elseif (STORAGE_BACKEND STREQUAL " memcached_default" )
113+ elseif (STORAGE_BACKEND STREQUAL memcached_default)
114114 set (MEMCACHED_PORT "11211" )
115115 endif ()
116116
@@ -146,13 +146,13 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
146146 set (RENDERD_CONF "${TEST_CONF_DIR} /renderd.conf" )
147147
148148 # Set TILE_DIR value
149- if (STORAGE_BACKEND STREQUAL " file" )
149+ if (STORAGE_BACKEND STREQUAL file)
150150 # Use TEST_TILES_DIR for file backend
151151 set (TILE_DIR "${TEST_TILES_DIR} " )
152- elseif (STORAGE_BACKEND STREQUAL " memcached_custom" )
152+ elseif (STORAGE_BACKEND STREQUAL memcached_custom)
153153 # MemcacheD backend "custom" host:port
154154 set (TILE_DIR "memcached://${MEMCACHED_HOST} :${MEMCACHED_PORT} " )
155- elseif (STORAGE_BACKEND STREQUAL " memcached_default" )
155+ elseif (STORAGE_BACKEND STREQUAL memcached_default)
156156 # MemcacheD backend "default"
157157 set (TILE_DIR "memcached://" )
158158 endif ()
@@ -215,11 +215,11 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
215215
216216 foreach (SOCKET_TYPE sock tcp)
217217 # Use socket file as --socket value for communicating with renderd process
218- if (SOCKET_TYPE STREQUAL " sock" )
218+ if (SOCKET_TYPE STREQUAL sock)
219219 set (SOCKET ${RENDERD0_SOCKET} )
220220 endif ()
221221 # Use TCP host:port as --socket value for communicating with renderd process
222- if (SOCKET_TYPE STREQUAL " tcp" )
222+ if (SOCKET_TYPE STREQUAL tcp)
223223 set (SOCKET ${RENDERD1_HOST} :${RENDERD1_PORT} )
224224 endif ()
225225
@@ -367,7 +367,7 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
367367 NAME add_tile_config_${SOCKET_TYPE}_${STORAGE_BACKEND}
368368 COMMAND ${BASH} -c "
369369 CONFIG_NAME=\" add_tile_config_${SOCKET_TYPE} \"
370- SEARCH_LINE=\$ (grep -m1 \" Loading tile config \$ {CONFIG_NAME}\" ${HTTPD_LOG} )
370+ SEARCH_LINE=\$ (${GREP_EXECUTABLE} -m1 \" Loading tile config \$ {CONFIG_NAME}\" ${HTTPD_LOG} )
371371 SEARCH_STRS=(
372372 \" at /\$ {CONFIG_NAME}/ \"
373373 \" extension .jpg \"
@@ -379,7 +379,7 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
379379 echo \" Searching log line '\$ {SEARCH_LINE}'\"
380380 for SEARCH_STR in \"\$ {SEARCH_STRS[@]}\" ; do
381381 echo \"\t For '\$ {SEARCH_STR}'\"
382- echo \"\$ {SEARCH_LINE}\" | grep -q -e \"\$ {SEARCH_STR}\" || exit 1
382+ echo \"\$ {SEARCH_LINE}\" | ${GREP_EXECUTABLE} -q -e \"\$ {SEARCH_STR}\" || exit 1
383383 done
384384 "
385385 WORKING_DIRECTORY tests
@@ -396,7 +396,7 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
396396 if [ \"\$ {SEARCH_CONFIG}\" = \" js\" ]; then
397397 MIME_TYPE=text/javascript
398398 fi
399- SEARCH_LINE=\$ (grep -m1 \" Loading tile config \$ {CONFIG_NAME}\" ${HTTPD_LOG} )
399+ SEARCH_LINE=\$ (${GREP_EXECUTABLE} -m1 \" Loading tile config \$ {CONFIG_NAME}\" ${HTTPD_LOG} )
400400 SEARCH_STRS=(
401401 \" at /\$ {CONFIG_NAME}/ \"
402402 \" extension .\$ {SEARCH_CONFIG} \"
@@ -407,20 +407,56 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
407407 # echo \" Searching log line '\$ {SEARCH_LINE}'\"
408408 # for SEARCH_STR in \"\$ {SEARCH_STRS[@]}\" ; do
409409 # echo \"\t For '\$ {SEARCH_STR}'\"
410- # echo \"\$ {SEARCH_LINE}\" | grep -q -e \"\$ {SEARCH_STR}\" || exit 1
410+ # echo \"\$ {SEARCH_LINE}\" | ${GREP_EXECUTABLE} -q -e \"\$ {SEARCH_STR}\" || exit 1
411411 # done
412- # SEARCH_LINE=\$ (grep \" AddTileMimeConfig will be deprecated\" ${HTTPD_LOG} | grep -m1 \"\$ {CONFIG_NAME}\" )
412+ # SEARCH_LINE=\$ (${GREP_EXECUTABLE} \" AddTileMimeConfig will be deprecated\" ${HTTPD_LOG} | \
413+ # ${GREP_EXECUTABLE} -m1 \"\$ {CONFIG_NAME}\" )
413414 # echo \" Searching log line '\$ {SEARCH_LINE}'\"
414415 # SEARCH_STR=\" AddTileConfig /\$ {CONFIG_NAME}/ \$ {CONFIG_NAME} mimetype=\$ {MIME_TYPE} extension=\$ {SEARCH_CONFIG}\"
415416 # echo \"\t For '\$ {SEARCH_STR}'\"
416- # echo \"\$ {SEARCH_LINE}\" | grep -q -e \"\$ {SEARCH_STR}\" || exit 1
417+ # echo \"\$ {SEARCH_LINE}\" | ${GREP_EXECUTABLE} -q -e \"\$ {SEARCH_STR}\" || exit 1
417418 done
418419 "
419420 WORKING_DIRECTORY tests
420421 )
421422 set_tests_properties (add_tile_mime_config_${SOCKET_TYPE}_${STORAGE_BACKEND} PROPERTIES
422423 FIXTURES_REQUIRED services_started_${STORAGE_BACKEND}
423424 )
425+ foreach (BAD_ADD_CONFIG add_tile_config add_tile_mime_config_js add_tile_mime_config_png)
426+ if (BAD_ADD_CONFIG STREQUAL add_tile_config)
427+ set (EXTENSION jpg)
428+ elseif (BAD_ADD_CONFIG STREQUAL add_tile_mime_config_js)
429+ set (EXTENSION js)
430+ elseif (BAD_ADD_CONFIG STREQUAL add_tile_mime_config_png)
431+ set (EXTENSION png)
432+ endif ()
433+ set (TILE_URL_PATH "/${BAD_ADD_CONFIG} _${SOCKET_TYPE} /${TILE_ZXY} .${EXTENSION} " )
434+ set (HTTPD0_URL "http://${HTTPD0_HOST} :${HTTPD0_PORT}${TILE_URL_PATH} " )
435+ set (HTTPD1_URL "http://${HTTPD1_HOST} :${HTTPD1_PORT}${TILE_URL_PATH} " )
436+ add_test (
437+ NAME bad_download_tile_${BAD_ADD_CONFIG}_${SOCKET_TYPE}_${STORAGE_BACKEND}
438+ COMMAND ${BASH} -c "
439+ echo \" Downloading ${HTTPD0_URL} \"
440+ if ${CURL_CMD} ${HTTPD0_URL} ; then
441+ echo \" Unexpected success.\"
442+ exit 1;
443+ else
444+ exit 0;
445+ fi
446+ echo \" Downloading ${HTTPD1_URL} \"
447+ if ${CURL_CMD} ${HTTPD1_URL} ; then
448+ echo \" Unexpected success.\"
449+ exit 1;
450+ else
451+ exit 0;
452+ fi
453+ "
454+ WORKING_DIRECTORY tests
455+ )
456+ set_tests_properties (bad_download_tile_${BAD_ADD_CONFIG}_${SOCKET_TYPE}_${STORAGE_BACKEND} PROPERTIES
457+ FIXTURES_REQUIRED services_started_${STORAGE_BACKEND}
458+ )
459+ endforeach ()
424460 endforeach ()
425461
426462 foreach (MAP_NAME IN LISTS MAP_NAMES)
@@ -543,8 +579,6 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
543579 (echo '${TILE_JPG_SHA256SUM} tile.jpg.${STORAGE_BACKEND} .1' | ${SHA256SUM_EXECUTABLE} -c) && \
544580 (echo '${TILE_PNG256_SHA256SUM} tile.png256.${STORAGE_BACKEND} .0' | ${SHA256SUM_EXECUTABLE} -c) && \
545581 (echo '${TILE_PNG256_SHA256SUM} tile.png256.${STORAGE_BACKEND} .1' | ${SHA256SUM_EXECUTABLE} -c) && \
546- (echo '${TILE_PNG256_SHA256SUM} tile.parameterization.${STORAGE_BACKEND} .0' | ${SHA256SUM_EXECUTABLE} -c) && \
547- (echo '${TILE_PNG256_SHA256SUM} tile.parameterization.${STORAGE_BACKEND} .1' | ${SHA256SUM_EXECUTABLE} -c) && \
548582 (echo '${TILE_PNG32_SHA256SUM} tile.png32.${STORAGE_BACKEND} .0' | ${SHA256SUM_EXECUTABLE} -c) && \
549583 (echo '${TILE_PNG32_SHA256SUM} tile.png32.${STORAGE_BACKEND} .1' | ${SHA256SUM_EXECUTABLE} -c) && \
550584 ( \
@@ -632,7 +666,7 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
632666 REQUIRED_FILES "${TEST_LOGS_DIR} ;${TEST_RUN_DIR} ;${TEST_TILES_DIR} "
633667 )
634668
635- if (STORAGE_BACKEND STREQUAL " file" )
669+ if (STORAGE_BACKEND STREQUAL file)
636670 set (TILE_URL_PATH "/tiles/${DEFAULT_MAP_NAME} /en,de,_/${TILE_ZXY} .png" )
637671 set (HTTPD0_URL "http://${HTTPD0_HOST} :${HTTPD0_PORT}${TILE_URL_PATH} " )
638672 set (HTTPD1_URL "http://${HTTPD1_HOST} :${HTTPD1_PORT}${TILE_URL_PATH} " )
@@ -656,6 +690,17 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
656690 FIXTURES_SETUP tiles_downloaded_${STORAGE_BACKEND}
657691 TIMEOUT 10
658692 )
693+ add_test (
694+ NAME check_tiles_parameterization_${STORAGE_BACKEND}
695+ COMMAND ${BASH} -c "
696+ (echo '${TILE_PNG256_SHA256SUM} ${TILE_FILE_NAME} .0' | ${SHA256SUM_EXECUTABLE} -c) && \
697+ (echo '${TILE_PNG256_SHA256SUM} ${TILE_FILE_NAME} .1' | ${SHA256SUM_EXECUTABLE} -c)
698+ "
699+ WORKING_DIRECTORY tests
700+ )
701+ set_tests_properties (check_tiles_parameterization_${STORAGE_BACKEND} PROPERTIES
702+ FIXTURES_REQUIRED tiles_downloaded_${STORAGE_BACKEND}
703+ )
659704 add_test (
660705 NAME remove_tile_parameterization_${STORAGE_BACKEND}
661706 COMMAND ${RM} -v ${TILE_FILE_NAME} .0 ${TILE_FILE_NAME} .1
@@ -698,3 +743,52 @@ foreach(STORAGE_BACKEND_INDEX RANGE ${STORAGE_BACKENDS_LENGTH})
698743 )
699744 endif ()
700745endforeach ()
746+
747+ # Test mal-formed HTTPD configuration directives
748+ set (DIRECTIVES
749+ # "AddTileConfig"
750+ # "AddTileConfig /bad/"
751+ "LoadTileConfigFile"
752+ "LoadTileConfigFile /tmp/bad/file/name"
753+ )
754+ set (DIRECTIVE_ERRORS
755+ # "AddTileConfig error, URL path not defined"
756+ # "AddTileConfig error, name of renderd config not defined"
757+ "LoadTileConfigFile takes one argument, load an entire renderd config file"
758+ "Unable to open config file"
759+ )
760+ list (LENGTH DIRECTIVES DIRECTIVES_LENGTH)
761+ math (EXPR DIRECTIVES_LENGTH "${DIRECTIVES_LENGTH} - 1" )
762+
763+ foreach (DIRECTIVE_INDEX RANGE ${DIRECTIVES_LENGTH} )
764+ set (HTTPD_CONF "${TESTS_CONF_DIR} /httpd_bad_${DIRECTIVE_INDEX} .conf" )
765+ # Get DIRECTIVE from DIRECTIVES list
766+ list (GET DIRECTIVES ${DIRECTIVE_INDEX} DIRECTIVE)
767+ # Get DIRECTIVE_ERROR from DIRECTIVE_ERRORS list
768+ list (GET DIRECTIVE_ERRORS ${DIRECTIVE_INDEX} DIRECTIVE_ERROR)
769+
770+ # Generate httpd.conf filelogs
771+ configure_file (
772+ httpd.conf.in
773+ ${HTTPD_CONF}
774+ )
775+
776+ add_test (
777+ NAME bad_httpd_config_${DIRECTIVE_INDEX}
778+ COMMAND ${BASH} -c "
779+ echo \" ${DIRECTIVE} \" >> ${HTTPD_CONF}
780+ HTTPD_OUTPUT=$(${HTTPD_EXECUTABLE} -e debug -f ${HTTPD_CONF} -t 2>&1)
781+ if [ \"\$ {?}\" -eq \" 0\" ]; then
782+ echo \" Unexpected success.\"
783+ exit 1;
784+ fi
785+ if echo \"\$ {HTTPD_OUTPUT}\" | ${GREP_EXECUTABLE} -q \" ${DIRECTIVE_ERROR} \" ; then
786+ exit 0;
787+ else
788+ echo \"\$ {HTTPD_OUTPUT}\"
789+ exit 1;
790+ fi
791+ "
792+ WORKING_DIRECTORY tests
793+ )
794+ endforeach ()
0 commit comments