[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.
This commit is contained in:
Alex Richardson 2021-07-15 18:26:20 +01:00 committed by Werner Lemberg
parent 685acc04db
commit 7bc0f48c27
3 changed files with 45 additions and 8 deletions

View File

@ -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> 2021-07-15 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
* tests/issue-1063/main.c (main): Fix uninitialized variable. * tests/issue-1063/main.c (main): Fix uninitialized variable.

View File

@ -1,16 +1,30 @@
#include <limits.h>
#include <stdio.h> #include <stdio.h>
#include <freetype/freetype.h> #include <freetype/freetype.h>
#include <ft2build.h> #include <ft2build.h>
int int
main( void ) main( void )
{ {
FT_Library library; FT_Library library;
FT_Face face = NULL; 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 ); FT_Init_FreeType( &library );
if ( FT_New_Face( library, filepath, 0, &face ) != 0 ) if ( FT_New_Face( library, filepath, 0, &face ) != 0 )
@ -19,13 +33,17 @@ main( void )
return 1; 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_UInt gid = FT_Get_Char_Index( face, i );
FT_Error code = FT_Load_Glyph( face, gid, FT_LOAD_DEFAULT ); FT_Error code = FT_Load_Glyph( face, gid, FT_LOAD_DEFAULT );
if ( code ) if ( code )
printf( "unknown %d for char %lu, gid %u\n", code, i, gid ); printf( "unknown %d for char %lu, gid %u\n", code, i, gid );
} }
return 0; return 0;
} }
/* EOF */

View File

@ -3,5 +3,12 @@ test_issue_1063 = executable('issue-1063',
dependencies: freetype_dep, 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