From 0e8234e090d6aab33f90e2eb0296f30aa0705e57 Mon Sep 17 00:00:00 2001 From: Marti Date: Fri, 29 Apr 2016 18:46:32 +0200 Subject: [PATCH] Added a new testbed case + increasedcMLU test cases --- testbed/crayons.icc | Bin 0 -> 8760 bytes testbed/testcms2.c | 76 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 testbed/crayons.icc diff --git a/testbed/crayons.icc b/testbed/crayons.icc new file mode 100644 index 0000000000000000000000000000000000000000..d04ad0d2e6bd26bdd468053888832bf9febccdf1 GIT binary patch literal 8760 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 aR)7n005~KAU@-weRW$&@0SA2q?*9XHvqWM5 literal 0 HcmV?d00001 diff --git a/testbed/testcms2.c b/testbed/testcms2.c index 885b51fec..203e53c3a 100644 --- a/testbed/testcms2.c +++ b/testbed/testcms2.c @@ -4277,6 +4277,36 @@ cmsInt32Number CheckGamma(cmsInt32Number Pass, cmsHPROFILE hProfile, cmsTagSigna } } +static +cmsInt32Number CheckTextSingle(cmsInt32Number Pass, cmsHPROFILE hProfile, cmsTagSignature tag) +{ + cmsMLU *m, *Pt; + cmsInt32Number rc; + char Buffer[256]; + + + switch (Pass) { + + case 1: + m = cmsMLUalloc(DbgThread(), 0); + cmsMLUsetASCII(m, cmsNoLanguage, cmsNoCountry, "Test test"); + rc = cmsWriteTag(hProfile, tag, m); + cmsMLUfree(m); + return rc; + + case 2: + Pt = cmsReadTag(hProfile, tag); + if (Pt == NULL) return 0; + cmsMLUgetASCII(Pt, cmsNoLanguage, cmsNoCountry, Buffer, 256); + if (strcmp(Buffer, "Test test") != 0) return FALSE; + return TRUE; + + default: + return 0; + } +} + + static cmsInt32Number CheckText(cmsInt32Number Pass, cmsHPROFILE hProfile, cmsTagSignature tag) { @@ -4290,6 +4320,10 @@ cmsInt32Number CheckText(cmsInt32Number Pass, cmsHPROFILE hProfile, cmsTagSignat case 1: m = cmsMLUalloc(DbgThread(), 0); cmsMLUsetASCII(m, cmsNoLanguage, cmsNoCountry, "Test test"); + cmsMLUsetASCII(m, "en", "US", "1 1 1 1"); + cmsMLUsetASCII(m, "es", "ES", "2 2 2 2"); + cmsMLUsetASCII(m, "ct", "ES", "3 3 3 3"); + cmsMLUsetASCII(m, "en", "GB", "444444444"); rc = cmsWriteTag(hProfile, tag, m); cmsMLUfree(m); return rc; @@ -4298,7 +4332,16 @@ cmsInt32Number CheckText(cmsInt32Number Pass, cmsHPROFILE hProfile, cmsTagSignat Pt = cmsReadTag(hProfile, tag); if (Pt == NULL) return 0; cmsMLUgetASCII(Pt, cmsNoLanguage, cmsNoCountry, Buffer, 256); - return strcmp(Buffer, "Test test") == 0; + if (strcmp(Buffer, "Test test") != 0) return FALSE; + cmsMLUgetASCII(Pt, "en", "US", Buffer, 256); + if (strcmp(Buffer, "1 1 1 1") != 0) return FALSE; + cmsMLUgetASCII(Pt, "es", "ES", Buffer, 256); + if (strcmp(Buffer, "2 2 2 2") != 0) return FALSE; + cmsMLUgetASCII(Pt, "ct", "ES", Buffer, 256); + if (strcmp(Buffer, "3 3 3 3") != 0) return FALSE; + cmsMLUgetASCII(Pt, "en", "GB", Buffer, 256); + if (strcmp(Buffer, "444444444") != 0) return FALSE; + return TRUE; default: return 0; @@ -5232,13 +5275,16 @@ cmsInt32Number CheckProfileCreation(void) SubTest("Tags holding text"); - if (!CheckText(Pass, h, cmsSigCharTargetTag)) return 0; + if (!CheckTextSingle(Pass, h, cmsSigCharTargetTag)) return 0; + if (!CheckTextSingle(Pass, h, cmsSigScreeningDescTag)) return 0; + if (!CheckText(Pass, h, cmsSigCopyrightTag)) return 0; if (!CheckText(Pass, h, cmsSigProfileDescriptionTag)) return 0; if (!CheckText(Pass, h, cmsSigDeviceMfgDescTag)) return 0; if (!CheckText(Pass, h, cmsSigDeviceModelDescTag)) return 0; if (!CheckText(Pass, h, cmsSigViewingCondDescTag)) return 0; - if (!CheckText(Pass, h, cmsSigScreeningDescTag)) return 0; + + SubTest("Tags holding cmsICCData"); @@ -5389,6 +5435,29 @@ cmsInt32Number CheckVersionHeaderWriting(void) return 1; } + +// Test on Richard Hughes "crayons.icc" +static +cmsInt32Number CheckMultilocalizedProfile(void) +{ + cmsHPROFILE hProfile; + cmsMLU *Pt; + char Buffer[256]; + + hProfile = cmsOpenProfileFromFile("crayons.icc", "r"); + + Pt = cmsReadTag(hProfile, cmsSigProfileDescriptionTag); + cmsMLUgetASCII(Pt, "en", "GB", Buffer, 256); + if (strcmp(Buffer, "Crayon Colours") != 0) return FALSE; + cmsMLUgetASCII(Pt, "en", "US", Buffer, 256); + if (strcmp(Buffer, "Crayon Colors") != 0) return FALSE; + + cmsCloseProfile(hProfile); + + return TRUE; +} + + // Error reporting ------------------------------------------------------------------------------------------------------- @@ -8466,6 +8535,7 @@ int main(int argc, char* argv[]) // Profile I/O (this one is huge!) Check("Profile creation", CheckProfileCreation); Check("Header version", CheckVersionHeaderWriting); + Check("Multilocalized profile", CheckMultilocalizedProfile); // Error reporting Check("Error reporting on bad profiles", CheckErrReportingOnBadProfiles);