From d44d988127841cf9180bb7ba91b6eba8127af467 Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Wed, 18 Sep 2013 20:32:25 +0000 Subject: fix fontconfig backend to only cache new fonts if their outName was unique BUG= R=bungeman@google.com Review URL: https://codereview.chromium.org/23710072 git-svn-id: http://skia.googlecode.com/svn/trunk@11364 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/FontMgrTest.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'tests/FontMgrTest.cpp') diff --git a/tests/FontMgrTest.cpp b/tests/FontMgrTest.cpp index 6b6ee9a73f..00ff79b897 100644 --- a/tests/FontMgrTest.cpp +++ b/tests/FontMgrTest.cpp @@ -11,6 +11,27 @@ #include "SkFontMgr.h" #include "SkTypeface.h" +/* + * If the font backend is going to "alias" some font names to other fonts + * (e.g. sans -> Arial) then we want to at least get the same typeface back + * if we request the alias name multiple times. + */ +static void test_badnames(skiatest::Reporter* reporter) { + const char* inName = "sans"; + SkAutoTUnref first(SkTypeface::CreateFromName(inName, SkTypeface::kNormal)); + + SkString name; + for (int i = 0; i < 10; ++i) { + SkAutoTUnref face(SkTypeface::CreateFromName(inName, SkTypeface::kNormal)); +#if 0 + face->getFamilyName(&name); + printf("request %s, received %s, first id %x received %x\n", + inName, name.c_str(), first->uniqueID(), face->uniqueID()); +#endif + REPORTER_ASSERT(reporter, first->uniqueID() == face->uniqueID()); + } +} + static void test_fontiter(skiatest::Reporter* reporter, bool verbose) { SkAutoTUnref fm(SkFontMgr::RefDefault()); int count = fm->countFamilies(); @@ -49,6 +70,7 @@ DEFINE_bool(verboseFontMgr, false, "run verbose fontmgr tests."); static void TestFontMgr(skiatest::Reporter* reporter) { test_fontiter(reporter, FLAGS_verboseFontMgr); + test_badnames(reporter); } #include "TestClassDef.h" -- cgit v1.2.3