107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com/* 207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * Copyright 2013 Google Inc. 307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * 407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * Use of this source code is governed by a BSD-style license that can be 507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com * found in the LICENSE file. 607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com */ 707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 8a980269c2498836101146adc729ef780fb89824ebungeman@google.com#include "SkCommandLineFlags.h" 9a980269c2498836101146adc729ef780fb89824ebungeman@google.com#include "SkFontMgr.h" 1007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include "SkOTTable_name.h" 1107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include "SkTypeface.h" 128f6884aab8aecd7657cf3f9cdbc682f0deca29c5tfarina@chromium.org#include "Test.h" 1307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com#include <stddef.h> 1507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comtemplate <size_t R, size_t D> struct Format0NameTable { 1707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName header; 1807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Record nameRecord[R]; 1907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com char data[D]; 2007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}; 2107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 2207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comtemplate <size_t R, size_t L, size_t D> struct Format1NameTable { 2307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName header; 2407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Record nameRecord[R]; 2507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct { 2607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Format1Ext header; 2707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Format1Ext::LangTagRecord langTagRecord[L]; 2807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } format1ext; 2907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com char data[D]; 3007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}; 3107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 3207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comtypedef Format0NameTable<1, 9> SimpleFormat0NameTable; 3307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comSimpleFormat0NameTable simpleFormat0NameTable = { 3407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*header*/ { 3507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*format*/ SkOTTableName::format_0, 3607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*count*/ SkTEndianSwap16<1>::value, 3707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*stringOffset*/ SkTEndianSwap16<offsetof(SimpleFormat0NameTable, data)>::value, 3807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 3907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*nameRecord[]*/ { 4007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*Record*/ { 4107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*platformID*/ { SkOTTableName::Record::PlatformID::Windows }, 4207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*encodingID*/ { SkOTTableName::Record::EncodingID::Windows::UnicodeBMPUCS2 }, 4307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*languageID*/ { SkOTTableName::Record::LanguageID::Windows::English_UnitedStates }, 4407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*nameID*/ { SkOTTableName::Record::NameID::Predefined::FontFamilyName }, 4507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*length*/ SkTEndianSwap16<8>::value, 4607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*offset*/ SkTEndianSwap16<0>::value, 4707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } 4807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 4907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*data*/ "\x0" "T" "\x0" "e" "\x0" "s" "\x0" "t", 5007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}; 5107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 5207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comtypedef Format1NameTable<1, 1, 19> SimpleFormat1NameTable; 5307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comSimpleFormat1NameTable simpleFormat1NameTable = { 5407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*header*/ { 5507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*format*/ SkOTTableName::format_1, 5607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*count*/ SkTEndianSwap16<1>::value, 5707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*stringOffset*/ SkTEndianSwap16<offsetof(SimpleFormat1NameTable, data)>::value, 5807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 5907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*nameRecord[]*/ { 6007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*Record*/ { 6107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*platformID*/ { SkOTTableName::Record::PlatformID::Windows }, 6207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*encodingID*/ { SkOTTableName::Record::EncodingID::Windows::UnicodeBMPUCS2 }, 6307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*languageID*/ { SkTEndianSwap16<0x8000 + 0>::value }, 6407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*nameID*/ { SkOTTableName::Record::NameID::Predefined::FontFamilyName }, 6507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*length*/ SkTEndianSwap16<8>::value, 6607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*offset*/ SkTEndianSwap16<0>::value, 6707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } 6807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 6907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*format1ext*/ { 7007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*header*/ { 7107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*langTagCount*/ SkTEndianSwap16<1>::value, 7207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 7307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*langTagRecord[]*/ { 7407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*LangTagRecord*/ { 7507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*length*/ SkTEndianSwap16<10>::value, 7607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*offset*/ SkTEndianSwap16<8>::value, 7707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 7807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 7907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 8007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com /*data*/ "\x0" "T" "\x0" "e" "\x0" "s" "\x0" "t" 8107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com "\x0" "e" "\x0" "n" "\x0" "-" "\x0" "U" "\x0" "S", 8207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}; 8307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 8407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.comstruct FontNamesTest { 8507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName* data; 8607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Record::NameID nameID; 8707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com size_t nameCount; 8807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com struct { 8907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com const char* name; 9007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com const char* language; 9107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } names[10]; 9207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 9307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com} test[] = { 9407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { 9507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com (SkOTTableName*)&simpleFormat0NameTable, 9607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { SkOTTableName::Record::NameID::Predefined::FontFamilyName }, 9707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1, 9807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { 9907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { "Test", "en-US" }, 10007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 10107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 10207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { 10307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com (SkOTTableName*)&simpleFormat1NameTable, 10407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { SkOTTableName::Record::NameID::Predefined::FontFamilyName }, 10507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1, 10607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { 10707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com { "Test", "en-US" }, 10807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 10907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com }, 11007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com}; 11107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 112a980269c2498836101146adc729ef780fb89824ebungeman@google.comstatic void test_synthetic(skiatest::Reporter* reporter, bool verbose) { 11307a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com for (size_t i = 0; i < SK_ARRAY_COUNT(test); ++i) { 11407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Iterator iter(*test[i].data, test[i].nameID.predefined.value); 11507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com SkOTTableName::Iterator::Record record; 11607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com size_t nameIndex = 0; 11707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com while (nameIndex < test[i].nameCount && iter.next(record)) { 1181c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT(reporter, 1191c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon strcmp(test[i].names[nameIndex].name, record.name.c_str()) == 0, 1201c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon "Name did not match."); 12107a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1221c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT(reporter, 1231c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon strcmp(test[i].names[nameIndex].language, record.language.c_str()) == 0, 1241c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon "Language did not match."); 12507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 12607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com //printf("%s <%s>\n", record.name.c_str(), record.language.c_str()); 12707a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 12807a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com ++nameIndex; 12907a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } 13007a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1311c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT(reporter, nameIndex == test[i].nameCount, "Fewer names than expected."); 13207a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 1331c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT(reporter, !iter.next(record), "More names than expected."); 13407a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com } 13507a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com} 13607a69f848cd6e28e0870ac9eeeba2d05f8e8d8bebungeman@google.com 137a980269c2498836101146adc729ef780fb89824ebungeman@google.com#define MAX_FAMILIES 1000 138a980269c2498836101146adc729ef780fb89824ebungeman@google.comstatic void test_systemfonts(skiatest::Reporter* reporter, bool verbose) { 139a980269c2498836101146adc729ef780fb89824ebungeman@google.com static const SkFontTableTag nameTag = SkSetFourByteTag('n','a','m','e'); 140a980269c2498836101146adc729ef780fb89824ebungeman@google.com 141342b7acc46550af5fbefc6f9313231ede11ed692Hal Canary sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); 142a980269c2498836101146adc729ef780fb89824ebungeman@google.com int count = SkMin32(fm->countFamilies(), MAX_FAMILIES); 143a980269c2498836101146adc729ef780fb89824ebungeman@google.com for (int i = 0; i < count; ++i) { 144342b7acc46550af5fbefc6f9313231ede11ed692Hal Canary sk_sp<SkFontStyleSet> set(fm->createStyleSet(i)); 145a980269c2498836101146adc729ef780fb89824ebungeman@google.com for (int j = 0; j < set->count(); ++j) { 146a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkString sname; 147a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkFontStyle fs; 148a980269c2498836101146adc729ef780fb89824ebungeman@google.com set->getStyle(j, &fs, &sname); 149a980269c2498836101146adc729ef780fb89824ebungeman@google.com 150342b7acc46550af5fbefc6f9313231ede11ed692Hal Canary sk_sp<SkTypeface> typeface(set->createTypeface(j)); 151a980269c2498836101146adc729ef780fb89824ebungeman@google.com 152a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkString familyName; 153a980269c2498836101146adc729ef780fb89824ebungeman@google.com typeface->getFamilyName(&familyName); 154a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (verbose) { 155fab44db294846ff05d837b9cf0bf97a073891da7bungeman@google.com SkDebugf("[%s]\n", familyName.c_str()); 156a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 157a980269c2498836101146adc729ef780fb89824ebungeman@google.com 158342b7acc46550af5fbefc6f9313231ede11ed692Hal Canary sk_sp<SkTypeface::LocalizedStrings> familyNamesIter( 159839702b61934914118ec557dd641be322eba3b5fbungeman@google.com typeface->createFamilyNameIterator()); 160a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkTypeface::LocalizedString familyNameLocalized; 161a980269c2498836101146adc729ef780fb89824ebungeman@google.com while (familyNamesIter->next(&familyNameLocalized)) { 162a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (verbose) { 163fab44db294846ff05d837b9cf0bf97a073891da7bungeman@google.com SkDebugf("(%s) <%s>\n", familyNameLocalized.fString.c_str(), 164a6785ccb540b1b752ab536cdf579a698eadbf7d2bungeman familyNameLocalized.fLanguage.c_str()); 165a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 166a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 167a980269c2498836101146adc729ef780fb89824ebungeman@google.com 168a980269c2498836101146adc729ef780fb89824ebungeman@google.com size_t nameTableSize = typeface->getTableSize(nameTag); 169a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (0 == nameTableSize) { 170a980269c2498836101146adc729ef780fb89824ebungeman@google.com continue; 171a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 172a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkAutoTMalloc<uint8_t> nameTableData(nameTableSize); 173a980269c2498836101146adc729ef780fb89824ebungeman@google.com size_t copied = typeface->getTableData(nameTag, 0, nameTableSize, nameTableData.get()); 174a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (copied != nameTableSize) { 175a980269c2498836101146adc729ef780fb89824ebungeman@google.com continue; 176a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 177a980269c2498836101146adc729ef780fb89824ebungeman@google.com 178a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkOTTableName::Iterator::Record record; 179a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkOTTableName::Iterator familyNameIter(*((SkOTTableName*)nameTableData.get()), 180a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkOTTableName::Record::NameID::Predefined::FontFamilyName); 181a980269c2498836101146adc729ef780fb89824ebungeman@google.com while (familyNameIter.next(record)) { 1821c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT( 1831c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon reporter, 1841c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon SkOTTableName::Record::NameID::Predefined::FontFamilyName == record.type, 1851c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon "Requested family name, got something else."); 186a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (verbose) { 187fab44db294846ff05d837b9cf0bf97a073891da7bungeman@google.com SkDebugf("{%s} <%s>\n", record.name.c_str(), record.language.c_str()); 188a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 189a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 190a980269c2498836101146adc729ef780fb89824ebungeman@google.com 191a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkOTTableName::Iterator styleNameIter(*((SkOTTableName*)nameTableData.get()), 192a980269c2498836101146adc729ef780fb89824ebungeman@google.com SkOTTableName::Record::NameID::Predefined::FontSubfamilyName); 193a980269c2498836101146adc729ef780fb89824ebungeman@google.com while (styleNameIter.next(record)) { 1941c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon REPORTER_ASSERT( 1951c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon reporter, 1961c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon SkOTTableName::Record::NameID::Predefined::FontSubfamilyName == record.type, 1971c80e99dd5b23ebc3f10c768857a21887ab9f090Brian Salomon "Requested subfamily name, got something else."); 198a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (verbose) { 199fab44db294846ff05d837b9cf0bf97a073891da7bungeman@google.com SkDebugf("{{%s}} <%s>\n", record.name.c_str(), record.language.c_str()); 200a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 201a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 202a980269c2498836101146adc729ef780fb89824ebungeman@google.com 203a980269c2498836101146adc729ef780fb89824ebungeman@google.com if (verbose) { 204fab44db294846ff05d837b9cf0bf97a073891da7bungeman@google.com SkDebugf("\n"); 205a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 206a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 207a980269c2498836101146adc729ef780fb89824ebungeman@google.com } 208a980269c2498836101146adc729ef780fb89824ebungeman@google.com} 209a980269c2498836101146adc729ef780fb89824ebungeman@google.com 210a980269c2498836101146adc729ef780fb89824ebungeman@google.comDEFINE_bool(verboseFontNames, false, "verbose FontNames test."); 211a980269c2498836101146adc729ef780fb89824ebungeman@google.com 212e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.orgDEF_TEST(FontNames, reporter) { 213a980269c2498836101146adc729ef780fb89824ebungeman@google.com test_synthetic(reporter, FLAGS_verboseFontNames); 214a980269c2498836101146adc729ef780fb89824ebungeman@google.com test_systemfonts(reporter, FLAGS_verboseFontNames); 215a980269c2498836101146adc729ef780fb89824ebungeman@google.com} 216