Bug 489133 - Tests for invalid whitepoints and bad cHRM chunks in PNGs. r=joe
authorJeff Muizelaar <jmuizelaar@mozilla.com>
Tue, 12 May 2009 15:59:17 -0400
changeset 25147 65bacadf0ebfc29b61bcc4e6f62a88b06759dbdc
parent 25146 6cfd3fbcab74263855bc3edd651649a35a5822b6
child 25148 7e29034f8e45e111243ed8ed20d246544650a33b
push id1388
push userjdrew@mozilla.com
push dateTue, 12 May 2009 20:03:24 +0000
reviewersjoe
bugs489133
milestone1.9.1b5pre
Bug 489133 - Tests for invalid whitepoints and bad cHRM chunks in PNGs. r=joe
modules/libpr0n/test/reftest/color-management/color-curv.png
modules/libpr0n/test/reftest/color-management/color-lin.png
modules/libpr0n/test/reftest/color-management/color-table.png
modules/libpr0n/test/reftest/color-management/invalid-chrm-ref.png
modules/libpr0n/test/reftest/color-management/invalid-chrm.png
modules/libpr0n/test/reftest/color-management/invalid-whitepoint.png
modules/libpr0n/test/reftest/color-management/reftest.list
modules/libpr0n/test/reftest/color-management/trc-type-ref.html
modules/libpr0n/test/reftest/color-management/trc-type.html
modules/libpr0n/test/reftest/reftest.list
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..994e3a38a658d14c8c936a9fafe1f190effb5125
GIT binary patch
literal 1753
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0ee276fca3125fb6e91f251faade2d1d0ddb1247
GIT binary patch
literal 1749
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..355b3a2ba669095cb4f955597ce26f1456b4d83b
GIT binary patch
literal 1754
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..85f83f78347c6e674bc5d24045773ff5a6b25f3b
GIT binary patch
literal 1460
zc$@*W1xxygP)<h;3K|Lk000e1NJLTq001BW001Be0ssI2{21+{00004XF*Lt00D-e
zG3b_G000GRNkl<ZNXNC7O{g8^8OML``_7!1Gjq<Fxrrv`TDhob6$MedX(Kd?G|`$A
zDT1q7)Oa^-L!lJi)rFgM(T!b{(o#z4CQyomYQ-wFU_l5er7<OXL&(j?xyk)FU-Nxt
z-lvO`OR6L$jm^u$yBYZZp8vzcyniJk+{&Z5#mBkUhrjXfU)r}n(jPy>w&&ROO}=h0
zHvv#r9nm4){t1U&Dno7=)?9puxnFSTad!S6Ms$exUgNEhASCDzb_qL#=Qy*--rw`O
zV84)qV_bNGH`>?`>oIjGgi+0k;ldrPZYA5z{+IZTN9QITyvn;ien@-Pevi(qVuF|;
zBKVj;{f?(9MmGaE!qNxyecAy*NV`keCG64d(T(Utgb|&HV92p|*jF?DpSS3BKJ;m~
zQ2{DMLac|Qk(!Q2Cnk?EU33psaO@vE{T1F<xHk$o%Ia~(bND_gKzE>n^=TPYP3qH$
zDSMb6I)WI1V=FwjgTtS*>z@Mrijy9`hi;?W=n&Px1~d+;rWeqSnMUXyY6h4CpFi8?
zhuZx7`hYRhKX73aVA@wqG%ltg59viT5hmIMY=K@adi~d^+t~KnbpS``mzV(8$M~Bj
zI;bwz!?hG0dNC5AdoYJ=L83;?y08jshe+qSd-3xC?=f&`d+1rU(E%nvb-||vWtS*|
z2o)o9NZer7g*9Pa7zn2h@@T<h2d@cupGk{$3+<tNw2x_{19S%!(kP}qq8Jsy91=HT
zHiR`{Ll_DpVI;iy3hn!O@X4zH{zbNm-b&j=yXY3$NBNil9in@Pq3IDv=opEuID^f`
zXX-;?EDVJ=o|hl|Q9Zcxvw**nx&$t|g=(Q&R~S0L^iVED<PmC9oy+P&%g{2mj4cz(
zC~aPOhM&IUJn-130LKwS$3ZzL7d69pX#euQ>JZbTj4bYm%VQZ@Ml)$)yg8+jIHRom
z?$he<2WH`(D}awM&VK=B_l)GB19XhnmD-)m8n+BBLt!?k4cJg@Xoe2M7Guww<nrXV
zdG{^8G!HlyPT+g^2IYW3&qxkjHY6&vxT!GIj2y;3<B)NW$sE~)B4IkgCa46H;v}>(
zbvET&-{UX8WlPUF14Zozq6`?p5#<PGv$R#JL=P<qObm%f5|BXUARaov?cjB3r_?D;
zicOFdn{aX<&%UaT{LERNqQ}ahj75VMv_*?j7HXOVy$TZ{X-F#4f+Q!&NK?{`EF&$*
zOR_0hLoO7W!lCj7MG$kk@0>5uW2FUcl@^qR2C>*F)c~iDnIK6+Vo7V#DQQVsk`-h*
zSx%mj=j0h>PLVg$wA$V>i~F4ePw9p2fU};Xh6;;VWF}qHloV^Y=WxfU6q`1ZG%9Pz
zrsOqQMP8AW6eUGLnU&M=kPZ39m&3(9oqao%b0r=)szf%R0gE&=71M(JBHPa5578Ma
zL(+z<A+zKS#gt-7IhC@^ro&72{Kk$desS0Qf&J};9as5PI3=uO8*EKeQKe)n+`ddO
zz+~tgm5XH7=8Y*DO50RrQm^;zsncf3+jH+di{E*4-!AQ3GtoG=E9@G!rY<NGvOZhS
z&>i5+)C;7vwy4W0n>1(7%kd@tIharGdvW(y5Bw-zxbyl?=3PGa5_L{7#_ba?6Ay4R
zbcrfuS{EzL@+CQXh7V7h6WjOP`?Z&!e`Nn|<2W~(>>k-hJSIPj=@Xq}ZitgNMLp@;
z{yCO%PMqgxH9vUbg}vW@`N!KA?z)*|_vYVu=^*Z@>W*xqTQ6%lDe{SBsWHos@44@p
z#b<Zz+k4|JUp;tbxvZ>I$aHn};%Kz4q=M?<hacE+=lmB8zv@=U_x}L+th+?hx}^*N
O0000<MNUMnLSTY<oW>jg
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..33dc9e9ce09f03f0b6eef3e23ef1261e82d05258
GIT binary patch
literal 1504
zc$@*?1t0o}P)<h;3K|Lk000e1NJLTq001BW001Be0ssI2{21+{00004XF*Lt00D-e
zG3b_G0000WV@Og>001lo000Nj00000004R>00000004R>00000004R>%3fF1000GR
zNkl<ZNXNC7O{g8^8OML``_7!1Gjq<Fxrrv`TDhob6$MedX(Kd?G|`$ADT1q7)Oa^-
zL!lJi)rFgM(T!b{(o#z4CQyomYQ-wFU_l5er7<OXL&(j?xyk)FU-Nxt-lvO`OR6L$
zjm^u$yBYZZp8vzcyniJk+{&Z5#mBkUhrjXfU)r}n(jPy>w&&ROO}=h0Hvv#r9nm4)
z{t1U&Dno7=)?9puxnFSTad!S6Ms$exUgNEhASCDzb_qL#=Qy*--rw`OV84)qV_bNG
zH`>?`>oIjGgi+0k;ldrPZYA5z{+IZTN9QITyvn;ien@-Pevi(qVuF|;BKVj;{f?(9
zMmGaE!qNxyecAy*NV`keCG64d(T(Utgb|&HV92p|*jF?DpSS3BKJ;m~Q2{DMLac|Q
zk(!Q2Cnk?EU33psaO@vE{T1F<xHk$o%Ia~(bND_gKzE>n^=TPYP3qH$DSMb6I)WI1
zV=FwjgTtS*>z@Mrijy9`hi;?W=n&Px1~d+;rWeqSnMUXyY6h4CpFi8?huZx7`hYRh
zKX73aVA@wqG%ltg59viT5hmIMY=K@adi~d^+t~KnbpS``mzV(8$M~BjI;bwz!?hG0
zdNC5AdoYJ=L83;?y08jshe+qSd-3xC?=f&`d+1rU(E%nvb-||vWtS*|2o)o9NZer7
zg*9Pa7zn2h@@T<h2d@cupGk{$3+<tNw2x_{19S%!(kP}qq8Jsy91=HTHiR`{Ll_Dp
zVI;iy3hn!O@X4zH{zbNm-b&j=yXY3$NBNil9in@Pq3IDv=opEuID^f`XX-;?EDVJ=
zo|hl|Q9Zcxvw**nx&$t|g=(Q&R~S0L^iVED<PmC9oy+P&%g{2mj4cz(C~aPOhM&IU
zJn-130LKwS$3ZzL7d69pX#euQ>JZbTj4bYm%VQZ@Ml)$)yg8+jIHRom?$he<2WH`(
zD}awM&VK=B_l)GB19XhnmD-)m8n+BBLt!?k4cJg@Xoe2M7Guww<nrXVdG{^8G!Hly
zPT+g^2IYW3&qxkjHY6&vxT!GIj2y;3<B)NW$sE~)B4IkgCa46H;v}>(bvET&-{UX8
zWlPUF14Zozq6`?p5#<PGv$R#JL=P<qObm%f5|BXUARaov?cjB3r_?D;icOFdn{aX<
z&%UaT{LERNqQ}ahj75VMv_*?j7HXOVy$TZ{X-F#4f+Q!&NK?{`EF&$*OR_0hLoO7W
z!lCj7MG$kk@0>5uW2FUcl@^qR2C>*F)c~iDnIK6+Vo7V#DQQVsk`-h*Sx%mj=j0h>
zPLVg$wA$V>i~F4ePw9p2fU};Xh6;;VWF}qHloV^Y=WxfU6q`1ZG%9PzrsOqQMP8AW
z6eUGLnU&M=kPZ39m&3(9oqao%b0r=)szf%R0gE&=71M(JBHPa5578MaL(+z<A+zKS
z#gt-7IhC@^ro&72{Kk$desS0Qf&J};9as5PI3=uO8*EKeQKe)n+`ddOz+~tgm5XH7
z=8Y*DO50RrQm^;zsncf3+jH+di{E*4-!AQ3GtoG=E9@G!rY<NGvOZhS&>i5+)C;7v
zwy4W0n>1(7%kd@tIharGdvW(y5Bw-zxbyl?=3PGa5_L{7#_ba?6Ay4RbcrfuS{EzL
z@+CQXh7V7h6WjOP`?Z&!e`Nn|<2W~(>>k-hJSIPj=@Xq}ZitgNMLp@;{yCO%PMqgx
zH9vUbg}vW@`N!KA?z)*|_vYVu=^*Z@>W*xqTQ6%lDe{SBsWHos@44@p#b<Zz+k4|J
zUp;tbxvZ>I$aHn};%Kz4q=M?<hacE+=lmB8zv@=U_x}L+th+?hx}^*N0000<MNUMn
GLSTYj?##mg
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..383a0a035f65c67d47c48dbfaa7a584f0f0fe20e
GIT binary patch
literal 1504
zc$@*?1t0o}P)<h;3K|Lk000e1NJLTq001BW001Be0ssI2{21+{00004XF*Lt00D-e
zG3b_G0000WV@Og>001lo00000004C`008P>0026e000+o008;`004mKZtPc2000GR
zNkl<ZNXNC7O{g8^8OML``_7!1Gjq<Fxrrv`TDhob6$MedX(Kd?G|`$ADT1q7)Oa^-
zL!lJi)rFgM(T!b{(o#z4CQyomYQ-wFU_l5er7<OXL&(j?xyk)FU-Nxt-lvO`OR6L$
zjm^u$yBYZZp8vzcyniJk+{&Z5#mBkUhrjXfU)r}n(jPy>w&&ROO}=h0Hvv#r9nm4)
z{t1U&Dno7=)?9puxnFSTad!S6Ms$exUgNEhASCDzb_qL#=Qy*--rw`OV84)qV_bNG
zH`>?`>oIjGgi+0k;ldrPZYA5z{+IZTN9QITyvn;ien@-Pevi(qVuF|;BKVj;{f?(9
zMmGaE!qNxyecAy*NV`keCG64d(T(Utgb|&HV92p|*jF?DpSS3BKJ;m~Q2{DMLac|Q
zk(!Q2Cnk?EU33psaO@vE{T1F<xHk$o%Ia~(bND_gKzE>n^=TPYP3qH$DSMb6I)WI1
zV=FwjgTtS*>z@Mrijy9`hi;?W=n&Px1~d+;rWeqSnMUXyY6h4CpFi8?huZx7`hYRh
zKX73aVA@wqG%ltg59viT5hmIMY=K@adi~d^+t~KnbpS``mzV(8$M~BjI;bwz!?hG0
zdNC5AdoYJ=L83;?y08jshe+qSd-3xC?=f&`d+1rU(E%nvb-||vWtS*|2o)o9NZer7
zg*9Pa7zn2h@@T<h2d@cupGk{$3+<tNw2x_{19S%!(kP}qq8Jsy91=HTHiR`{Ll_Dp
zVI;iy3hn!O@X4zH{zbNm-b&j=yXY3$NBNil9in@Pq3IDv=opEuID^f`XX-;?EDVJ=
zo|hl|Q9Zcxvw**nx&$t|g=(Q&R~S0L^iVED<PmC9oy+P&%g{2mj4cz(C~aPOhM&IU
zJn-130LKwS$3ZzL7d69pX#euQ>JZbTj4bYm%VQZ@Ml)$)yg8+jIHRom?$he<2WH`(
zD}awM&VK=B_l)GB19XhnmD-)m8n+BBLt!?k4cJg@Xoe2M7Guww<nrXVdG{^8G!Hly
zPT+g^2IYW3&qxkjHY6&vxT!GIj2y;3<B)NW$sE~)B4IkgCa46H;v}>(bvET&-{UX8
zWlPUF14Zozq6`?p5#<PGv$R#JL=P<qObm%f5|BXUARaov?cjB3r_?D;icOFdn{aX<
z&%UaT{LERNqQ}ahj75VMv_*?j7HXOVy$TZ{X-F#4f+Q!&NK?{`EF&$*OR_0hLoO7W
z!lCj7MG$kk@0>5uW2FUcl@^qR2C>*F)c~iDnIK6+Vo7V#DQQVsk`-h*Sx%mj=j0h>
zPLVg$wA$V>i~F4ePw9p2fU};Xh6;;VWF}qHloV^Y=WxfU6q`1ZG%9PzrsOqQMP8AW
z6eUGLnU&M=kPZ39m&3(9oqao%b0r=)szf%R0gE&=71M(JBHPa5578MaL(+z<A+zKS
z#gt-7IhC@^ro&72{Kk$desS0Qf&J};9as5PI3=uO8*EKeQKe)n+`ddOz+~tgm5XH7
z=8Y*DO50RrQm^;zsncf3+jH+di{E*4-!AQ3GtoG=E9@G!rY<NGvOZhS&>i5+)C;7v
zwy4W0n>1(7%kd@tIharGdvW(y5Bw-zxbyl?=3PGa5_L{7#_ba?6Ay4RbcrfuS{EzL
z@+CQXh7V7h6WjOP`?Z&!e`Nn|<2W~(>>k-hJSIPj=@Xq}ZitgNMLp@;{yCO%PMqgx
zH9vUbg}vW@`N!KA?z)*|_vYVu=^*Z@>W*xqTQ6%lDe{SBsWHos@44@p#b<Zz+k4|J
zUp;tbxvZ>I$aHn};%Kz4q=M?<hacE+=lmB8zv@=U_x}L+th+?hx}^*N0000<MNUMn
GLSTaNna^SX
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/reftest/color-management/reftest.list
@@ -0,0 +1,7 @@
+# Colormangement
+
+# bug 489133 and bug 460520
+== invalid-chrm.png invalid-chrm-ref.png
+== invalid-whitepoint.png invalid-chrm-ref.png
+# bug 488955
+== trc-type.html trc-type-ref.html
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/reftest/color-management/trc-type-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<body>
+	<img src="color-lin.png">
+	<img src="color-curv.png">
+	<img src="color-table.png">
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/modules/libpr0n/test/reftest/color-management/trc-type.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<body>
+	<!-- All of these images should render the same 
+	     they all have icc profiles with different
+	     but equivalent tone reproduction curves.
+	
+	The profiles were generated with the following code and added to the images using pngcrush.
+
+	cmsHPROFILE profile = cmsCreate_sRGBProfile();
+
+        cmsAddTag(profile, icSigDeviceMfgDescTag,      (LPVOID) "(lcms moz internal)");
+        cmsAddTag(profile, icSigDeviceModelDescTag,    (LPVOID) "linear");
+        cmsAddTag(profile, icSigProfileDescriptionTag, (LPVOID) "linear");
+
+        GAMMATABLE linear_trc;
+        linear_trc.nEntries = 0;
+
+        cmsAddTag(profile, icSigRedTRCTag, &linear_trc);
+        cmsAddTag(profile, icSigGreenTRCTag, &linear_trc);
+        cmsAddTag(profile, icSigBlueTRCTag, &linear_trc);
+
+        _cmsSaveProfile(profile, "linear_gen.icc");
+
+        GAMMATABLE linear_curve_trc;
+        linear_curve_trc.nEntries = 1;
+        linear_curve_trc.GammaTable[0] = 0x0100;
+
+        cmsAddTag(profile, icSigRedTRCTag, &linear_curve_trc);
+        cmsAddTag(profile, icSigGreenTRCTag, &linear_curve_trc);
+        cmsAddTag(profile, icSigBlueTRCTag, &linear_curve_trc);
+
+        _cmsSaveProfile(profile, "linear_curve_gen.icc");
+
+        GAMMATABLE *linear_table_trc = malloc(sizeof(GAMMATABLE) + sizeof(short)*2);
+        linear_table_trc->nEntries = 2;
+        linear_table_trc->GammaTable[0] = 0x0;
+        linear_table_trc->GammaTable[1] = 0xffff;
+
+        cmsAddTag(profile, icSigRedTRCTag, linear_table_trc);
+        cmsAddTag(profile, icSigGreenTRCTag, linear_table_trc);
+        cmsAddTag(profile, icSigBlueTRCTag, linear_table_trc);
+
+        _cmsSaveProfile(profile, "linear_table_gen.icc");
+
+        free(linear_table_trc);
+ 
+	-->
+	<img src="color-curv.png">
+	<img src="color-table.png">
+	<img src="color-lin.png">
+</body>
+</html>
--- a/modules/libpr0n/test/reftest/reftest.list
+++ b/modules/libpr0n/test/reftest/reftest.list
@@ -23,8 +23,10 @@ include pngsuite-zlib/reftest.list
 include jpeg/reftest.list
 
 # APNG tests
 include apng/reftest.list
 
 # Generic image tests
 include generic/reftest.list
 
+# Color management test
+include color-management/reftest.list