diff --git a/tumbler/automated/run-test.sh b/tumbler/automated/run-test.sh index fb6684caea121076bdc225dbafd51e7ec513acd1..552743bb7b47494c67a7377dc4b80bbefb479a57 100755 --- a/tumbler/automated/run-test.sh +++ b/tumbler/automated/run-test.sh @@ -64,10 +64,12 @@ _check_uris_have_thumbnail() { _generate_thumbnails() { set -x - local i ret size files logfile addr obj_path method uris filetypes + local i ret files logfile addr obj_path method uris filetypes + local copy ret=0 - size=$1 - shift + local size="$1" + local special_dir="$2" + shift 2 files=("$@") logfile="${WORKDIR}/monitor-tumblerd.log" addr="org.freedesktop.thumbnails.Thumbnailer1" @@ -77,10 +79,22 @@ _generate_thumbnails() { filetypes=() for i in "${files[@]}"; do + # Tumbler's AppArmor profile doesn't necessarily let it read the + # apertis-tests directory if we're running uninstalled. Copy the + # file to a more realistic location, which exercises the AppArmor + # profile better anyway. + if [ $(( $RANDOM % 2 )) = 0 ] && [ -e "/home/shared/$special_dir" ]; then + copy="/home/shared/$special_dir/apertis-tests__$(basename "$i")" + else + copy="$HOME/$special_dir/apertis-tests__$(basename "$i")" + fi + + cp -v "$i" "$copy" + # Need path relative to / # FIXME: This doesn't do whitespace/special character escaping, etc - uris+=("file://$i") - filetypes+=($(file --mime-type "$i" | cut -d ":" -f 2 | tr -d ' ')) + uris+=("file://$copy") + filetypes+=($(file --mime-type "$copy" | cut -d ":" -f 2 | tr -d ' ')) done # Clear out old thumbnails. @@ -100,32 +114,35 @@ _generate_thumbnails() { _sleep 2 _check_uris_have_thumbnail $size $uris || ret=1 + rm -f "/home/shared/$special_dir"/apertis-tests__* + rm -f "${HOME}/$special_dir"/apertis-tests__* + _kill_monitor_return $ret set +x } test_image_normal_thumbnail_generation() { - _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/images"/* + _generate_thumbnails normal Pictures "${MEDIA_RESOURCE_DIR}/images"/* } test_image_large_thumbnail_generation() { - _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/images"/* + _generate_thumbnails large Pictures "${MEDIA_RESOURCE_DIR}/images"/* } test_video_normal_thumbnail_generation() { - _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/videos"/* + _generate_thumbnails normal Videos "${MEDIA_RESOURCE_DIR}/videos"/* } test_video_large_thumbnail_generation() { - _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/videos"/* + _generate_thumbnails large Videos "${MEDIA_RESOURCE_DIR}/videos"/* } test_document_normal_thumbnail_generation() { - _generate_thumbnails normal "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt} + _generate_thumbnails normal Documents "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt} } test_document_large_thumbnail_generation() { - _generate_thumbnails large "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt} + _generate_thumbnails large Documents "${MEDIA_RESOURCE_DIR}/documents"/*.{pdf,odt} } trap "test_failure" ERR