summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Richardson <Alexander.Richardson@cl.cam.ac.uk>2021-07-15 18:26:20 +0100
committerWerner Lemberg <wl@gnu.org>2021-07-16 14:42:51 +0200
commit7bc0f48c274e2d1c7525ce5025351149b0803a91 (patch)
tree3cb9748504224d5bd4eba6f01fe770c113d453f4
parent685acc04dbad5ece9b7261d21f4a2546d787436c (diff)
downloadfreetype2-7bc0f48c274e2d1c7525ce5025351149b0803a91.tar.gz
[tests] Allow arbitrary build directories.
* tests/issue-1063/main.c (main): I am building with a build directory that is not directly inside the source tree, so the path `../tests/data/As.I.Lay.Dying.ttf` does not resolve to the test input file. This change passes the test data directory as an environment variable to allow arbitrary build directories. * tests/meson.build: Updated.
-rw-r--r--ChangeLog12
-rw-r--r--tests/issue-1063/main.c32
-rw-r--r--tests/meson.build9
3 files changed, 45 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 520d3cc5b..7a3a46536 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2021-07-16 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
+
+ [tests] Allow arbitrary build directories.
+
+ * tests/issue-1063/main.c (main): I am building with a build
+ directory that is not directly inside the source tree, so the path
+ `../tests/data/As.I.Lay.Dying.ttf` does not resolve to the test
+ input file. This change passes the test data directory as an
+ environment variable to allow arbitrary build directories.
+
+ * tests/meson.build: Updated.
+
2021-07-15 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
* tests/issue-1063/main.c (main): Fix uninitialized variable.
diff --git a/tests/issue-1063/main.c b/tests/issue-1063/main.c
index 1bce0feb2..cb06be1f5 100644
--- a/tests/issue-1063/main.c
+++ b/tests/issue-1063/main.c
@@ -1,16 +1,30 @@
+#include <limits.h>
#include <stdio.h>
#include <freetype/freetype.h>
#include <ft2build.h>
+
int
main( void )
{
- FT_Library library;
- FT_Face face = NULL;
+ FT_Library library;
+ FT_Face face = NULL;
+
+ /*
+ * We assume that `FREETYPE_TESTS_DATA_DIR` was set by `meson test`.
+ * Otherwise we default to `../tests/data`.
+ *
+ * TODO (David): Rewrite this to pass the test directory through the
+ * command-line.
+ */
+ const char* testdata_dir = getenv( "FREETYPE_TESTS_DATA_DIR" );
+ char filepath[PATH_MAX];
+
- /* Assumes this is run from out/ build directory though 'meson test -C out' */
- const char* filepath = "../tests/data/As.I.Lay.Dying.ttf";
+ snprintf( filepath, sizeof( filepath ), "%s/%s",
+ testdata_dir ? testdata_dir : "../tests/data",
+ "As.I.Lay.Dying.ttf" );
FT_Init_FreeType( &library );
if ( FT_New_Face( library, filepath, 0, &face ) != 0 )
@@ -19,13 +33,17 @@ main( void )
return 1;
}
- for ( FT_ULong i = 59; i < 171; i++ )
+ for ( FT_ULong i = 59; i < 171; i++ )
{
- FT_UInt gid = FT_Get_Char_Index( face, i );
- FT_Error code = FT_Load_Glyph( face, gid, FT_LOAD_DEFAULT );
+ FT_UInt gid = FT_Get_Char_Index( face, i );
+ FT_Error code = FT_Load_Glyph( face, gid, FT_LOAD_DEFAULT );
+
+
if ( code )
printf( "unknown %d for char %lu, gid %u\n", code, i, gid );
}
return 0;
}
+
+/* EOF */
diff --git a/tests/meson.build b/tests/meson.build
index 8c5d0345f..527998ffa 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -3,5 +3,12 @@ test_issue_1063 = executable('issue-1063',
dependencies: freetype_dep,
)
-test('issue-1063', test_issue_1063, suite: 'regression')
+test_env = ['FREETYPE_TESTS_DATA_DIR='
+ + join_paths(meson.current_source_dir(), 'data')]
+test('issue-1063',
+ test_issue_1063,
+ env: test_env,
+ suite: 'regression')
+
+# EOF