23 "Path to extracted data from googlefonts_testdata CIPD file.");
26 if (FLAGS_fontTestDataPath.isEmpty()) {
29 if (strlen(FLAGS_fontTestDataPath[0])) {
37constexpr size_t kExpectNumFonts = 51;
53 const std::string& langFilterRegexp)
54 : fFontFilter(fontFilterRegexp), fLangFilter(langFilterRegexp) {
57 SkASSERTF(jsonTestData && jsonTestData->size(),
58 "Unable to access font test metadata at location %s, check bin/fetch-fonts-testdata.",
59 testDataLocation.
c_str());
60 fJsonDom = std::make_unique<skjson::DOM>(
reinterpret_cast<const char*
>(jsonTestData->bytes()),
61 jsonTestData->size());
63 fFonts = root[
"fonts"];
66 "Unable to access all %zu test fonts (only got %zu), check bin/fetch-fonts-testdata.",
69 fSamples = root[
"samples"];
74 while (
testSet && fFontsIndex < fFonts->size()) {
80 std::string fontNameStr(fontName->
str());
81 if (std::regex_match(fontNameStr,
match, fFontFilter)) {
84 testSet->fontFilename = prefixWithFontsPath(
87 getLanguageSamples((*fontsEntry)[
"languages"].as<skjson::ArrayValue>());
96std::vector<TestFontDataProvider::LangSample> TestFontDataProvider::getLanguageSamples(
98 std::vector<LangSample> samples;
99 for (
size_t i = 0; i < languages->
size(); ++i) {
101 std::string langTagStr(langTag->
str());
103 if (std::regex_match(langTagStr,
match, fLangFilter)) {
107 SkString sampleShort(shortSample->
str().data(), shortSample->
str().size());
108 SkString sampleLong(longSample->
str().data(), longSample->
str().size());
109 samples.push_back({
SkString(langTagStr), sampleShort, sampleLong});
#define DEFINE_string(name, defaultValue, helpString)
static bool match(const char *needle, const char *haystack)
static const ConicPts testSet[]
#define SkASSERT_RELEASE(cond)
#define SkASSERTF(cond, fmt,...)
std::atomic< const char * > gFontTestDataBasePath
const char kTestDataJsonFilename[]
const char kTestDataBasePath[]
static sk_sp< SkData > MakeFromFileName(const char path[])
static SkString Join(const char *rootPath, const char *relativePath)
const char * c_str() const
bool next(TestSet *testSet)
TestFontDataProvider(const std::string &fontFilterRegexp, const std::string &langFilterRegexp)
std::string_view str() const
void SetFontTestDataDirectory()