From ddc05759f098f06bd93253a7bffe38640963dfb3 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 11 Jan 2013 08:00:45 +0100 Subject: fontconfig libX11 mesa mkfontscale xserver git update 11 jan 2013 fontconfig: 0831c1770e4bac7269a190936bbb0529d747e233 libX11: 0b148750027fd0557c5ed93afda861ddf4b92e0f mkfontscale: 9cbe3256bc932b82f2435b23cda0931f4f5f5ba2 xserver: 6703a7c7cf1a349c137e247a0c8eb462ff7b07be mesa: babab2876080af0fe65249dff559244aebd0b87e --- fontconfig/test/Makefile.am | 11 ++++++ fontconfig/test/test-pthread.c | 79 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 fontconfig/test/test-pthread.c (limited to 'fontconfig/test') diff --git a/fontconfig/test/Makefile.am b/fontconfig/test/Makefile.am index 3fd343a24..664138a5b 100644 --- a/fontconfig/test/Makefile.am +++ b/fontconfig/test/Makefile.am @@ -4,6 +4,17 @@ TESTS=run-test.sh TESTDATA=4x6.pcf 8x16.pcf out.expected fonts.conf.in +AM_CPPFLAGS = -I$(top_srcdir) -I$(top_builddir) + +if HAVE_PTHREAD +check_PROGRAMS = test-pthread +noinst_PROGRAMS = $(check_PROGRAMS) +test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la +# We don't enable this test by default because it will require config and fonts +# to meaningfully test anything, and we are not installed yet. +#TESTS += test-pthread +endif + EXTRA_DIST=$(check_SCRIPTS) $(TESTDATA) CLEANFILES= diff --git a/fontconfig/test/test-pthread.c b/fontconfig/test/test-pthread.c new file mode 100644 index 000000000..7701a24f7 --- /dev/null +++ b/fontconfig/test/test-pthread.c @@ -0,0 +1,79 @@ +/* Code originally from Raimund Steger. */ + +#include +#include +#include +#include +#include + +#define NTHR 100 +#define NTEST 100 + +struct thr_arg_s +{ + int thr_num; +}; + +static void test_match(int thr_num,int test_num) +{ + FcPattern *pat; + FcPattern *match; + FcResult result; + + FcInit(); + + pat = FcNameParse((const FcChar8 *)"New Century Schoolbook"); + + FcConfigSubstitute(0,pat,FcMatchPattern); + FcDefaultSubstitute(pat); + + match = FcFontMatch(0,pat,&result); + + FcPatternDestroy(pat); + FcPatternDestroy(match); +} + +static void *run_test_in_thread(void *arg) +{ + struct thr_arg_s *thr_arg=(struct thr_arg_s *)arg; + int thread_num = thr_arg->thr_num; + int i=0; + + for(;i