Commit Graph

51 Commits

Author SHA1 Message Date
Akira TAGOH 8a150f634f Add test/wrapper-script.sh to the archive
Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/307
2022-01-28 18:13:21 +09:00
Akira TAGOH 4d43f84188 Do not set different score to non-string values
Non-string values in a cache is supposed to choose one from them.
Due to the change of da1c9f7a, there was a regression on scoring for
matching functions.  So reverting the behavior for evaluating non-string
values to the previous one.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/286
2021-07-08 14:47:36 +09:00
Akira TAGOH da1c9f7a6c Fix score evaluation for multiple values in properties
Sometimes fonts has multiple values in family and sub-family in order to unify
other variants into one. they basically make difference in sub-family though,
they also still have standalone family and sub-family. in that case, sub-family is
likely to be Regular.

fontconfig couldn't recognize the difference between :family=Foo:style=Regular
and :family=Foo Caption:style=Regular for example because fontconfig didn't
give different score on matching result for the position of multiple values in
a cache.
Thus, when querying a font like :family=Foo:style=Regular may results
:family=Foo Caption:style=Regular. (see the test case for more details)

To fix this situation, giving different score according to the position
of multiple values in a cache as well as the position of multiple values
in a query.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/283
2021-06-28 08:51:58 +00:00
Ben Wagner b1e1a87512 Test all not_eq for family names.
Any early out checks must give the same answer as FcConfigCompareValue.
An accelerator was added for family names which treated all ops as if
they were FcOpEqual, giving the wrong answer for other non-equivalent ops
(for example FcOpContains or FcOpNotEqual).

This adds a test which passes before the accelerator was introduced,
fails after, and will pass again after !142 lands. This tests the all
not_eq case.
2020-12-28 11:01:38 -05:00
Szunti df29933e1a Check qual and compare for family tests
Fixes #267. Hash table lookups assumed qual="any" compare="eq".
Add a test too.
2020-12-17 04:51:20 +00:00
Ben Wagner b35c72dbc7 Always run-test-conf, but skip if not built.
The test-conf test requires libjson-c to be available in order to be
built. However, there has been no user indication that additional tests
could be built if the json-c development files were available.

Continue to not build test-conf if json-c is not available, but do run
the test harness. The test harness is updated to SKIP the test if the
test-conf binary is unavailable.
2020-12-15 19:44:48 -05:00
Akira TAGOH 3ae08a8601 Make more clearer the license terms
COPYING is missing non-expat license terms for some files and some files is also missing license terms. This is changes to makes it clearer and update.

Fixes https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/219
2020-09-03 06:25:30 +00:00
Akira TAGOH b5bcf61fe7 Use FcConfigReference/Destroy appropriately instead of FcConfigGetCurrent
This may improves to be MT-safe.

Reported at https://bugs.chromium.org/p/chromium/issues/detail?id=1004254
2019-11-01 14:44:47 +09:00
Akira TAGOH 75eadca266 Warn as well if no directory name for cachedir provided
cachedir is used to determine where cache files are stored.
the empty directory will ends up to put them under the top of
directory of XDG_CACHE_HOME. that messes it up and must be avoided.

As a note, if you want to read/write something from the top of
XDG_DATA_HOME (dir) and/or XDG_CACHE_HOME (cachedir),
put "." instead of the empty.

https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/180
2019-10-08 20:12:12 +09:00
Akira TAGOH fcada52291 Do not return FcFalse from FcConfigParseAndLoad*() if complain is set to false
https://bugzilla.redhat.com/show_bug.cgi?id=1744377
2019-08-28 17:48:29 +09:00
Jon Turney fd2e155665
Only use test wrapper-script if host is MinGW
Currently it fails if the executable extension is .exe, but wine isn't
available (e.g. on Cygwin)

Possibly the check to use this wrapper should be even more restrictive
e.g. checking if cross-building and/or if wine is available.
2019-04-15 20:42:48 +01:00
Akira TAGOH 9177cf2c38 Add back if !OS_WIN32 line 2019-04-03 12:02:09 +00:00
Akira TAGOH 916cf6caa3 Update testcase 2019-04-03 12:02:09 +00:00
Keith Packard c4324f54ee Replace UUID file mechanism with per-directory 'map' attribute [v2]
The UUID files would be placed in each font directory to provide the
unique cache name, independent of path, for that directory. The UUID
files are undesireable for a couple of reasons:

 1) They must be placed in the font directories to be useful. This
    requires modifying the font directories themselves, introducing
    potential visible timestamp changes when running multiple
    applications, and makes the cache processing inconsistent between
    applications with permission to write to the font directories and
    applications without such permission.

 2) The UUID contents were generated randomly, which makes the font
    cache not reproducible across multiple runs.

One proposed fix for 2) is to make the UUID dependent on the font
directory path, but once we do that, we can simply use the font
directory path itself as the key as the original MD5-based font cache
naming mechanism did.

The goal of the UUID file mechanism was to fix startup time of
flatpaks; as the font path names inside the flatpak did not match the
font path names in the base system, the font cache would need to be
reconstructed the first time the flatpak was launched.

The new mechanism for doing this is to allow each '<dir>' element in
the configuration include a 'map' attribute. When looking for a cache
file for a particular directory, if the directory name starts with the
contents of the <dir> element, that portion of the name will be
replaced with the value of the 'map' attribute.

Outside of the flatpak, nothing need change -- fontconfig will build
cache files using real directory names.

Inside the flatpak, the custom fonts.conf file will now include
mappings such as this:

	<dir map="/usr/share/fonts">/run/host/fonts</dir>

When scanning the directory /run/host/fonts/ttf, fontconfig will
use the name /usr/share/fonts/ttf as the source for building the cache
file name.

The existing FC_FILE replacement code used for the UUID-based
implementation continues to correctly adapt font path names seen by
applications.

v2:
	Leave FcDirCacheCreateUUID stub around to avoid removing
	public API function.

	Document 'map' attribute of <dir> element in
	fontconfig-user.sgml

	Suggested-by: Akira TAGOH <akira@tagoh.org>

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-04-03 12:02:09 +00:00
Keith Packard 4cde12bfda Remove UUID-related tests
Remove test-hash
Remove UUID tests from run-test.sh

Signed-off-by: Keith Packard <keithp@keithp.com>
2019-04-03 12:02:09 +00:00
Akira TAGOH 92caab9c76 Fix make distcheck error 2019-03-23 06:27:39 +00:00
Akira TAGOH f6810ede60 Fix make check on cross-compiled env 2019-03-22 16:51:38 +09:00
Akira TAGOH 71c9c7892a Add a test case for FcFontList 2018-11-27 09:39:15 +00:00
Akira TAGOH ff5b49be2b Do not update mtime when removing .uuid file
This avoids a situation triggers updating caches on a directory where .uuid file was removed.

Resolves: https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/107
2018-10-05 02:32:07 +00:00
Akira TAGOH ba206df9b9 Add a test case for d1f48f11 2018-09-05 12:08:52 +00:00
Akira TAGOH 806fd4c2c5 Fix the issue that '~' wasn't extracted to the proper homedir
'~' in the filename was extracted to the home directory name in FcConfigFilename() though,
this behavior was broken by d1f48f11. this change fixes it back to the correct behavior.

https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/110
2018-09-04 09:55:20 +00:00
Akira TAGOH a887659706 Fix distcheck fail 2018-08-29 10:01:45 +00:00
Akira TAGOH f5dd8512bd Remove .uuid when no font files exists on a directory
https://bugs.freedesktop.org/show_bug.cgi?id=106632
2018-06-11 17:03:46 +09:00
Akira TAGOH 3fa8381336 Add a test case for bz#106618 2018-05-25 15:24:44 +09:00
Akira TAGOH af964f7897 Add a test case for 90-synthetic.conf 2018-05-11 22:15:39 +09:00
Akira TAGOH f665852df9 Add a testrunner for conf 2018-05-11 21:54:24 +09:00
Akira TAGOH 2cf2e79cb6 Fix make check fail when srcdir != builddir. 2018-03-28 18:54:11 +09:00
Akira TAGOH fb7be6d605 Add a testcase for FcNameParse 2018-03-14 21:42:11 +09:00
Akira TAGOH dd1a92911b cleanup files 2017-12-18 11:53:25 +09:00
Akira TAGOH 8d02dbbd97 Fix "make check" fail again 2017-12-14 15:42:22 +09:00
Akira TAGOH a6797cd5c2 Fix distcheck error 2017-12-05 21:57:19 +09:00
Akira TAGOH 64895e719d Add the check of PCF_CONFIG_OPTION_LONG_FAMILY_NAMES back
This isn't enabled by default in freetype so need to check it for testsuites
2017-11-20 17:29:39 +05:30
Alban Browaeys a7953dbf47 Fixes cleanup
Remove leftover references to run-test271.sh.
2017-10-17 16:37:19 +09:00
Akira TAGOH 071111ea58 cleanup 2017-09-29 14:29:37 +09:00
Akira TAGOH 7940ada7a8 Add a testcase for Bug#131804 2017-06-12 13:36:56 +09:00
Akira TAGOH d33be23029 Fix make check fail with freetype-2.7.1 and 2.8 with PCF_CONFIG_OPTION_LONG_FAMILY_NAMES enabled. 2017-05-31 20:08:16 +09:00
Akira TAGOH 5ca2b1e6dc Update a bit for the changes in FreeType 2.7.1
Our test case relies on the outcome of the family property from freetype though,
it was changed in 2.7.1:

  - PCF family names are made more `colourful'; they now include the
    foundry  and information  whether they contain  wide characters.
    For example,  you no longer get `Fixed' but  rather `Sony Fixed'
    or `Misc Fixed Wide'.

https://bugs.freedesktop.org/show_bug.cgi?id=47704
2017-03-21 12:27:11 +09:00
Akira TAGOH 99645ff9ee Bug 96676 - Check range of FcWeightFromOpenType argument
Fix a crash issue when FcWeightFromOpenType() gets a number more than it expects.
2016-07-08 14:18:35 +09:00
Akira TAGOH c965c9f677 Bug 89617 - FcConfigAppFontAddFile() returns false on any font file
Prior to the change of 32ac7c75e8
FcConfigAppFontAddFile() always returned FcTrue no matter what
fonts was added. after that, it always returned FcFalse because
adding a font doesn't add any subdirs with FcFileScanConfig().
so changing that to simply ignore it.

Also fixing it to return FcFalse if non-fonts was added, i.e.
FcFreeTypeQuery() fails.

https://bugs.freedesktop.org/show_bug.cgi?id=89617
2015-03-23 13:31:57 +09:00
Akira TAGOH 5406919c5e do not build test-migration for Win32
This testing code is for XDG base directory spec which may be not interesting for them
2013-10-11 19:31:22 +09:00
Akira TAGOH 6720892e97 Add a test case of the migration for config place 2013-09-02 20:52:20 +09:00
Quentin Glidic 96220a5ed9 Use LOG_COMPILER and AM_TESTS_ENVIRONMENT
TESTS_ENVIRONMENT is deprecated and should be reserved to the user to
override the test environment

<ext>_LOG_COMPILER is meant to contain the program that runs the test
with <ext> extension
LOG_COMPILER is for extensionless tests
AM_TESTS_ENVIRONMENT is meant to set the environment for the tests

  https://bugs.freedesktop.org/show_bug.cgi?id=60192

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2013-02-06 19:53:36 +09:00
Akira TAGOH 241cd53ff6 Revert "test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT"
This reverts commit 2146b0307a.

That change introduces incompatibility and seems not working with
older releases of automake, including automake 1.12.2.
2013-02-05 11:34:22 +09:00
Quentin Glidic 2146b0307a test: Use SH_LOG_COMPILER and AM_TESTS_ENVIRONMENT
TESTS_ENVIRONMENT is deprecated and should be reserved to the user to
override the test environment

<ext>_LOG_COMPILER is meant to contain the program that runs the test
with <ext> extension
AM_TESTS_ENVIRONMENT is meant to set the environment for the tests

  https://bugs.freedesktop.org/show_bug.cgi?id=60192

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2013-02-04 20:35:22 +09:00
Behdad Esfahbod 0831c1770e Ensure we find the uninstalled fontconfig header
Patch from Colin Walters.
2013-01-10 09:02:16 -06:00
Behdad Esfahbod 7680e9ee89 Add pthread test
Not enabled by default since it requires config and fonts.
2013-01-08 14:51:00 -06:00
Behdad Esfahbod ed41b23765 Switch .gitignore to git.mk 2013-01-02 00:36:12 -06:00
Behdad Esfahbod 6bfef3ca4e Make tests run on Windows 2012-12-31 17:21:07 -06:00
Keith Packard 4cbc3ee8fe Yet more cleanups to finish getting 'make distcheck' working This has been
tested to ensure that it even works from a _build directory.
2003-10-27 10:44:13 +00:00
Keith Packard 8fc10a72ad make dist works now. Update to 2.1.90 in preparation for eventual 2.2
release
2003-03-02 07:28:24 +00:00