diff --git a/test/Makefile.am b/test/Makefile.am index 48ec3ce..f104cf0 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -71,6 +71,9 @@ test_conf_LDADD = $(top_builddir)/src/libfontconfig.la $(JSONC_LIBS) TESTS += run-test-conf.sh endif +check_PROGRAMS += test-bz106618 +test_bz106618_LDADD = $(top_builddir)/src/libfontconfig.la + EXTRA_DIST=run-test.sh run-test-conf.sh $(TESTDATA) out.expected-long-family-names out.expected-no-long-family-names CLEANFILES=out fonts.conf out.expected diff --git a/test/run-test.sh b/test/run-test.sh index e375608..b75b764 100644 --- a/test/run-test.sh +++ b/test/run-test.sh @@ -189,6 +189,8 @@ TESTTMPDIR=`mktemp -d /tmp/fontconfig.XXXXXXXX` sed "s!@FONTDIR@!$TESTTMPDIR/fonts! s!@CACHEDIR@!$TESTTMPDIR/cache.dir!" < $TESTDIR/fonts.conf.in > bind-fonts.conf $BWRAP --bind / / --bind $CACHEDIR $TESTTMPDIR/cache.dir --bind $FONTDIR $TESTTMPDIR/fonts --bind .. $TESTTMPDIR/build --dev-bind /dev /dev --setenv FONTCONFIG_FILE $TESTTMPDIR/build/test/bind-fonts.conf $TESTTMPDIR/build/fc-match/fc-match$EXEEXT -f "%{file}\n" ":foundry=Misc" > xxx +$BWRAP --bind / / --bind $CACHEDIR $TESTTMPDIR/cache.dir --bind $FONTDIR $TESTTMPDIR/fonts --bind .. $TESTTMPDIR/build --dev-bind /dev /dev --setenv FONTCONFIG_FILE $TESTTMPDIR/build/test/bind-fonts.conf $TESTTMPDIR/build/test/test-bz106618$EXEEXT | sort > flist1 +$BWRAP --bind / / --bind $CACHEDIR $TESTTMPDIR/cache.dir --bind $FONTDIR $TESTTMPDIR/fonts --bind .. $TESTTMPDIR/build --dev-bind /dev /dev find $TESTTMPDIR/fonts/ -type f -name '*.pcf' | sort > flist2 ls -l $CACHEDIR > out2 if cmp out1 out2 > /dev/null ; then : ; else echo "*** Test failed: $TEST" @@ -197,10 +199,19 @@ if cmp out1 out2 > /dev/null ; then : ; else fi if [ x`cat xxx` != "x$TESTTMPDIR/fonts/4x6.pcf" ]; then echo "*** Test failed: $TEST" - echo "file property doesn't points to the new place: $TESTTMPDIR/fonts/4x6.pcf" + echo "file property doesn't point to the new place: $TESTTMPDIR/fonts/4x6.pcf" exit 1 fi -rm -rf $TESTTMPDIR out1 out2 xxx bind-fonts.conf +if cmp flist1 flist2 > /dev/null ; then : ; else + echo "*** Test failed: $TEST" + echo "file properties doesn't point to the new places" + echo "Expected result:" + cat flist2 + echo "Actual result:" + cat flist1 + exit 1 +fi +rm -rf $TESTTMPDIR out1 out2 xxx flist1 flist2 bind-fonts.conf fi dotest "sysroot option" diff --git a/test/test-bz106618.c b/test/test-bz106618.c new file mode 100644 index 0000000..86f8eae --- /dev/null +++ b/test/test-bz106618.c @@ -0,0 +1,47 @@ +/* + * fontconfig/test/test-bz89617.c + * + * Copyright © 2000 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of the author(s) not be used in + * advertising or publicity pertaining to distribution of the software without + * specific, written prior permission. The authors make no + * representations about the suitability of this software for any purpose. It + * is provided "as is" without express or implied warranty. + * + * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +#include +#include + +int +main (int argc, char **argv) +{ + FcFontSet *fs = FcConfigGetFonts (NULL, FcSetSystem); + int i; + + if (!fs) + return 1; + for (i = 0; i < fs->nfont; i++) + { + FcPattern *p = fs->fonts[i]; + FcChar8 *file; + + if (FcPatternGetString (p, FC_FILE, 0, &file) != FcResultMatch) + return 1; + printf ("%s\n", file); + } + FcFontSetDestroy (fs); + + return 0; +}