diff options
author | David Turner <david@freetype.org> | 2021-06-15 23:12:57 +0200 |
---|---|---|
committer | David Turner <david@freetype.org> | 2021-06-16 10:28:47 +0200 |
commit | 6f273f68788265b2bf0a127be68062f5eaccbb1b (patch) | |
tree | 15ef2ed0fa826f5961e6d5da508509deea23ce8d /tests/scripts | |
parent | c6fcd61228ea349e76aa4f09442c431308da3262 (diff) | |
download | freetype2-6f273f68788265b2bf0a127be68062f5eaccbb1b.tar.gz |
[meson] Add first regression test to FreeType
* tests/README.md: documentation explaining how to
build and run the tests with the Meson build.
* tests/scripts/download-test-fonts.sh: Simple script
to download test font files to the 'tests/data/'
folder.
* meson.build, meson_options.txt, tests/meson.build:
Add 'tests' option to enable building and running the
test programs, disabled by default.
* tests/issue-1063/main.c: Simple regression test to
exhibit issue 1063.
* .gitignore: Ignore the content of the tests/data/
folder for now.
Diffstat (limited to 'tests/scripts')
-rwxr-xr-x | tests/scripts/download-test-fonts.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/scripts/download-test-fonts.sh b/tests/scripts/download-test-fonts.sh new file mode 100755 index 000000000..1158f10c5 --- /dev/null +++ b/tests/scripts/download-test-fonts.sh @@ -0,0 +1,66 @@ +#!/usr/bin/bash +# Download test fonts used by the FreeType regression test programs. +# These will be copied to $FREETYPE/tests/data/ +# Each font file contains an 8-hexchar prefix corresponding to its md5sum + +set -e + +export LANG=C +export LC_ALL=C + +PROGDIR=$(dirname "$0") +PROGNAME=$(basename "$0") + +# Download a file from a given URL +# +# $1: URL +# $2: Destination directory +# $3: If not empty, destination file name. Default is to take +# the URL's basename. +# +download_file () { + local URL=$1 + local DST_DIR=$2 + local DST_FILE=$3 + if [[ -z "$DST_FILE" ]]; then + DST_FILE=$(basename "$URL") + fi + echo "URL: $URL" + wget -q -O "$DST_DIR/$DST_FILE" "$URL" +} + +# $1: URL +# $2: Destination directory +# $3+: Optional file list, otherwise the full archive is extracted to $2 +download_and_extract_zip () { + local URL=$1 + local DST_DIR=$2 + shift + shift + TEMP_DST_DIR=$(mktemp -d) + TEMP_DST_NAME="a.zip" + download_file "$URL" "$TEMP_DST_DIR" "$TEMP_DST_NAME" + unzip -qo "$TEMP_DST_DIR/$TEMP_DST_NAME" -d "$DST_DIR" "$@" + rm -rf "$TEMP_DST_DIR" +} + +# $1: File path +# $2: Expected md5sum +md5sum_check () { + local FILE=$1 + local EXPECTED=$2 + local HASH=$(md5sum "$FILE" | cut -d" " -f1) + if [[ "$EXPECTED" != "$HASH" ]]; then + echo "$FILE: Invalid md5sum $HASH expected $EXPECTED" + return 1 + fi +} + +INSTALL_DIR=$(cd $PROGDIR/.. && pwd)/data + +mkdir -p "$INSTALL_DIR" + +# See https://gitlab.freedesktop.org/freetype/freetype/-/issues/1063 +download_and_extract_zip "https://github.com/python-pillow/Pillow/files/6622147/As.I.Lay.Dying.zip" "$INSTALL_DIR" +mv "$INSTALL_DIR/As I Lay Dying.ttf" "$INSTALL_DIR/As.I.Lay.Dying.ttf" +md5sum_check "$INSTALL_DIR/As.I.Lay.Dying.ttf" e153d60e66199660f7cfe99ef4705ad7 |