From 7bc0f48c274e2d1c7525ce5025351149b0803a91 Mon Sep 17 00:00:00 2001 From: Alex Richardson Date: Thu, 15 Jul 2021 18:26:20 +0100 Subject: [PATCH] [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. --- ChangeLog | 12 ++++++++++++ tests/issue-1063/main.c | 32 +++++++++++++++++++++++++------- tests/meson.build | 9 ++++++++- 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 + + [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 * 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 #include #include #include + int main( void ) { - FT_Library library; - FT_Face face = NULL; + FT_Library library; + FT_Face face = NULL; - /* Assumes this is run from out/ build directory though 'meson test -C out' */ - const char* filepath = "../tests/data/As.I.Lay.Dying.ttf"; + /* + * 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]; + + + 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