80 lines
2.6 KiB
Diff
80 lines
2.6 KiB
Diff
|
From 0ddacad43d7fce4668914a4695898902d1006965 Mon Sep 17 00:00:00 2001
|
||
|
From: Keith Packard <keithp@keithp.com>
|
||
|
Date: Mon, 29 Oct 2018 16:36:11 -0700
|
||
|
Subject: [PATCH] Add delays to test-bz106632, check UptoDate separately
|
||
|
|
||
|
On a file system with one-second time stamps, extra delays are needed
|
||
|
between cache modification operations to ensure that fontconfig isn't
|
||
|
fooled.
|
||
|
|
||
|
And, when the timestamps are checked correctly, we need to make sure
|
||
|
that FcConfigUptoDate returns false whenever we change a font
|
||
|
directory, so separate that out from the call to reinitialize the core
|
||
|
config.
|
||
|
|
||
|
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||
|
---
|
||
|
test/test-bz106632.c | 24 ++++++++++++++++++------
|
||
|
1 file changed, 18 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/test/test-bz106632.c b/test/test-bz106632.c
|
||
|
index c2edd72..87a5ec0 100644
|
||
|
--- a/test/test-bz106632.c
|
||
|
+++ b/test/test-bz106632.c
|
||
|
@@ -186,7 +186,7 @@ main (void)
|
||
|
mkdir_p (cachedir);
|
||
|
|
||
|
fprintf (stderr, "D: Copying %s to %s\n", FONTFILE, fontdir);
|
||
|
- snprintf (cmd, 512, "cp -a %s %s", FONTFILE, fontdir);
|
||
|
+ snprintf (cmd, 512, "sleep 1; cp -a %s %s; sleep 1", FONTFILE, fontdir);
|
||
|
system (cmd);
|
||
|
|
||
|
fprintf (stderr, "D: Loading a config\n");
|
||
|
@@ -215,15 +215,21 @@ main (void)
|
||
|
goto bail;
|
||
|
}
|
||
|
fprintf (stderr, "D: Removing %s\n", fontdir);
|
||
|
- snprintf (cmd, 512, "rm -f %s%s*; sleep 1", fontdir, FC_DIR_SEPARATOR_S);
|
||
|
+ snprintf (cmd, 512, "sleep 1; rm -f %s%s*; sleep 1", fontdir, FC_DIR_SEPARATOR_S);
|
||
|
system (cmd);
|
||
|
fprintf (stderr, "D: Reinitializing\n");
|
||
|
- if (!FcConfigUptoDate (config) || !FcInitReinitialize ())
|
||
|
+ if (FcConfigUptoDate(config))
|
||
|
{
|
||
|
- fprintf (stderr, "E: Unable to reinitialize\n");
|
||
|
+ fprintf (stderr, "E: Config reports up-to-date\n");
|
||
|
ret = 2;
|
||
|
goto bail;
|
||
|
}
|
||
|
+ if (!FcInitReinitialize ())
|
||
|
+ {
|
||
|
+ fprintf (stderr, "E: Unable to reinitialize\n");
|
||
|
+ ret = 3;
|
||
|
+ goto bail;
|
||
|
+ }
|
||
|
if (FcConfigGetCurrent () == config)
|
||
|
{
|
||
|
fprintf (stderr, "E: config wasn't reloaded\n");
|
||
|
@@ -254,10 +260,16 @@ main (void)
|
||
|
goto bail;
|
||
|
}
|
||
|
fprintf (stderr, "D: Copying %s to %s\n", FONTFILE, fontdir);
|
||
|
- snprintf (cmd, 512, "cp -a %s %s; sleep 1", FONTFILE, fontdir);
|
||
|
+ snprintf (cmd, 512, "sleep 1; cp -a %s %s; sleep 1", FONTFILE, fontdir);
|
||
|
system (cmd);
|
||
|
fprintf (stderr, "D: Reinitializing\n");
|
||
|
- if (!FcConfigUptoDate (config) || !FcInitReinitialize ())
|
||
|
+ if (FcConfigUptoDate(config))
|
||
|
+ {
|
||
|
+ fprintf (stderr, "E: Config up-to-date after addition\n");
|
||
|
+ ret = 3;
|
||
|
+ goto bail;
|
||
|
+ }
|
||
|
+ if (!FcInitReinitialize ())
|
||
|
{
|
||
|
fprintf (stderr, "E: Unable to reinitialize\n");
|
||
|
ret = 2;
|
||
|
--
|
||
|
2.19.1
|
||
|
|