Make tests a little more resilient

PNG allows identical images to be stored differently what makes nearly all
tests checking the MD5 hash of the PNG representation fail with external
libgd. For now, we use the GD format instead, which doesn't allow for such
differences.

Of course, this md5() checking should be replaced by a image diffing feature
in the long run.
This commit is contained in:
Christoph M. Becker 2016-08-17 17:59:33 +02:00
parent 48198e4c25
commit a3159d29bb
30 changed files with 60 additions and 60 deletions

View file

@ -15,9 +15,9 @@ Bug #22544 (TrueColor transparency in PNG images).
$red = imageColorAllocate($image, 255, 50, 50); $red = imageColorAllocate($image, 255, 50, 50);
imageColorTransparent($image, $transparent); imageColorTransparent($image, $transparent);
imageFilledRectangle($image, 0, 0, 640-1, 100-1, $transparent); imageFilledRectangle($image, 0, 0, 640-1, 100-1, $transparent);
imagePng($image, $dest); imagegd($image, $dest);
echo md5_file($dest) . "\n"; echo md5_file($dest) . "\n";
@unlink($dest); @unlink($dest);
?> ?>
--EXPECT-- --EXPECT--
10a57d09a2c63fad87b85b38d6b258d6 7643ef115f642a79c2de6e411f485ddd

View file

@ -15,9 +15,9 @@ $color = imagecolorallocatealpha($im, 0, 255, 0, 100);
imagefilledarc($im, 49, 49, 99,99, 0 , 360, $color, IMG_ARC_PIE); imagefilledarc($im, 49, 49, 99,99, 0 , 360, $color, IMG_ARC_PIE);
ob_start(); ob_start();
imagepng($im); imagegd($im);
echo md5(ob_get_clean()); echo md5(ob_get_clean());
imagedestroy($im); imagedestroy($im);
?> ?>
--EXPECT-- --EXPECT--
3d82e4525f19790ae1055366e2a36917 2400a58cd7570b5472c25264715321cd

View file

@ -11,9 +11,9 @@ $im = imagecreatetruecolor(100, 100);
imagesetthickness($im, 5); imagesetthickness($im, 5);
imagearc($im, 50, 50, 90, 90, 0, 360, 0xffffff); imagearc($im, 50, 50, 90, 90, 0, 360, 0xffffff);
ob_start(); ob_start();
imagepng($im); imagegd($im);
$imagestring = ob_get_clean(); $imagestring = ob_get_clean();
echo md5($imagestring); echo md5($imagestring);
?> ?>
--EXPECT-- --EXPECT--
2ffa6afb915afbdf870cf6459477bc8a 4f5080080a774efe4fc8d55cd4a5849c

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagearc($image, 50, 50, 30, 30, 0, 180, $white); imagearc($image, 50, 50, 30, 30, 0, 180, $white);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
f18ad8001afefee2e9b8c08d6884425b 13149c3fd54a92a0d43cd5083a19b1d7

View file

@ -18,7 +18,7 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagearc($image, 50, 50, 30, 30, 0, 180); imagearc($image, 50, 50, 30, 30, 0, 180);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -26,4 +26,4 @@ echo md5(base64_encode($img));
?> ?>
--EXPECTF-- --EXPECTF--
Warning: imagearc() expects exactly 8 parameters, 7 given in %s on line %d Warning: imagearc() expects exactly 8 parameters, 7 given in %s on line %d
abebb25b5a2813cfbf92f1f24365786a c5b7013900f5466aebfc42499a7ec8ec

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagearc($image, 50, 50, 30, 30, 0, -90, $white); imagearc($image, 50, 50, 30, 30, 0, -90, $white);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
ed2c8427a9922dfd8a105f10a88a0d20 fe662ebe7488057c43e38c5de43b1727

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagearc($image, 50, 50, 30, 30, -90, 0, $white); imagearc($image, 50, 50, 30, 30, -90, 0, $white);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
463b4aea9d9acfab30016ee92613c779 8bd78aa775b5f29e7227eaeebaa84889

View file

@ -15,11 +15,11 @@ $white = imagecolorallocate($image, 255,255,255);
$result = imagechar($image, 1, 5, 5, 'C', $white); $result = imagechar($image, 1, 5, 5, 'C', $white);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
e94962ac28ad03bd4142cb1abe9ef98b f0291252e7ac2fadda25e63287e6860c

View file

@ -15,11 +15,11 @@ $white = imagecolorallocate($image, 255,255,255);
$result = imagecharup($image, 1, 5, 5, 'C', $white); $result = imagecharup($image, 1, 5, 5, 'C', $white);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
79b48d5cef6d489bb68573df0296d775 c65aad5d78f934dee2a844e7978eabd5

View file

@ -18,7 +18,7 @@ $half = imagefilledarc ( $img, 75, 75, 70, 70, 0, 180, $cor, IMG_ARC_PIE );
$half2 = imagefilledarc ( $img, 75, 75, 70, 70, 180, 360, $corA, IMG_ARC_PIE ); $half2 = imagefilledarc ( $img, 75, 75, 70, 70, 180, 360, $corA, IMG_ARC_PIE );
ob_start(); ob_start();
imagepng($img, null, 9); imagegd($img);
$imgsrc = ob_get_contents(); $imgsrc = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -26,5 +26,5 @@ var_dump(md5(base64_encode($imgsrc)));
var_dump($corA); var_dump($corA);
?> ?>
--EXPECT-- --EXPECT--
string(32) "f95489d97f4f1a5c4dc265388922d1ec" string(32) "0981ef94ee2209a8dccb59aa8ad07e18"
int(842163455) int(842163455)

View file

@ -25,11 +25,11 @@ imagecolorset($im, $bg, 0, 0, 255);
// Get output and generate md5 hash // Get output and generate md5 hash
ob_start(); ob_start();
imagepng($im, null, 9); imagegd($im);
$result_image = ob_get_contents(); $result_image = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($result_image)); echo md5(base64_encode($result_image));
imagedestroy($im); imagedestroy($im);
?> ?>
--EXPECT-- --EXPECT--
6f2002aafb57b2d275fad6a6258d7476 85e406abd0a975c97b3403cad5d078c9

View file

@ -23,11 +23,11 @@ $gaussian = array(
imageconvolution($image, $gaussian, 16, 0); imageconvolution($image, $gaussian, 16, 0);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
594576a2a2a689447ffc07eb5a73f09b 20979b45f8772cdbd78262af4e332638

View file

@ -12,11 +12,11 @@ Rafael Dohms <rdohms [at] gmail [dot] com>
$image = imagecreatetruecolor(180, 30); $image = imagecreatetruecolor(180, 30);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
5a8fe9864cbd20e5dbe730c77f30db95 da884f488a851e0267a316ad232aee86

View file

@ -17,11 +17,11 @@ $image = imagecreatetruecolor(400, 300);
imageellipse($image, 200, 150, 300, 200, 16777215); imageellipse($image, 200, 150, 300, 200, 16777215);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
d8b9bc2ca224bd68569413f4617f8e1f 49c1544b012c3460c74cd04f1332d4ad

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefilledarc($image, 50, 50, 30, 30, 0, 90, $white, IMG_ARC_PIE); imagefilledarc($image, 50, 50, 30, 30, 0, 90, $white, IMG_ARC_PIE);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
beffeaf5231adaaff1f21a2108fb6f7e 87637c60ac0ceea48dbcaa4d98319f90

View file

@ -18,7 +18,7 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefilledarc($image, 50, 50, 30, 30, 0, 90, $white); imagefilledarc($image, 50, 50, 30, 30, 0, 90, $white);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -26,4 +26,4 @@ echo md5(base64_encode($img));
?> ?>
--EXPECTF-- --EXPECTF--
Warning: imagefilledarc() expects exactly 9 parameters, 8 given in %s on line %d Warning: imagefilledarc() expects exactly 9 parameters, 8 given in %s on line %d
abebb25b5a2813cfbf92f1f24365786a c5b7013900f5466aebfc42499a7ec8ec

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefilledarc($image, 50, 50, 30, 30, 0, -25, $white, IMG_ARC_PIE); imagefilledarc($image, 50, 50, 30, 30, 0, -25, $white, IMG_ARC_PIE);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
b467492b806001c3720b3f18cfbde5b0 f25f589b5c5fa7deead7242652919bcf

View file

@ -18,11 +18,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefilledarc($image, 50, 50, 30, 30, -25, 25, $white, IMG_ARC_PIE); imagefilledarc($image, 50, 50, 30, 30, -25, 25, $white, IMG_ARC_PIE);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
cfad369fc6d863785d3c95b4b4788225 43c2973eb4872903eb6f5464c7965a93

View file

@ -15,11 +15,11 @@ $white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefilledellipse($image, 50, 50, 40, 30, $white); imagefilledellipse($image, 50, 50, 40, 30, $white);
ob_start(); ob_start();
imagepng($image); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
9ba540bba1b78c9f08efaa6fa0afd93b 233beffe003a41d3c9e788039e3191dd

View file

@ -22,7 +22,7 @@ imageellipse( $image, 50, 50, 50, 50, imagecolorallocate( $image, 0, 0, 0 ) );
imagefilltoborder( $image, 50, 50, imagecolorallocate( $image, 0, 0, 0 ), imagecolorallocate( $image, 255, 0, 0 ) ); imagefilltoborder( $image, 50, 50, imagecolorallocate( $image, 0, 0, 0 ), imagecolorallocate( $image, 255, 0, 0 ) );
ob_start(); ob_start();
imagepng( $image, null, 9 ); imagegd( $image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -30,4 +30,4 @@ echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
847ec236f1c4d14c465306c8408550fc 8185a06ccff03c2abeb99d5e3ed60e45

View file

@ -21,7 +21,7 @@ $gamma = imagegammacorrect($image, 1, 5);
if ($gamma){ if ($gamma){
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
} }
@ -29,4 +29,4 @@ if ($gamma){
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
e79553115df689ea5df18a4636380569 1f625723f9d27251a1f15b83a6a4bf55

View file

@ -21,7 +21,7 @@ $gamma = imagegammacorrect($image, 1, 5);
if ($gamma){ if ($gamma){
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
} }
@ -29,4 +29,4 @@ if ($gamma){
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
b017b1ddc8bda00e82aa8cbfb54c35d4 32fdb7b3675e4a9fd601c6a0645c88b3

View file

@ -16,7 +16,7 @@ $layer = imagelayereffect($image, IMG_EFFECT_REPLACE);
if ($layer){ if ($layer){
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
} }
@ -24,4 +24,4 @@ if ($layer){
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
5a8fe9864cbd20e5dbe730c77f30db95 da884f488a851e0267a316ad232aee86

View file

@ -16,7 +16,7 @@ $image = imagecreatetruecolor( 100, 100 );
imagerectangle( $image, 0, 0, 50, 50, imagecolorallocate($image, 255, 255, 255) ); imagerectangle( $image, 0, 0, 50, 50, imagecolorallocate($image, 255, 255, 255) );
ob_start(); ob_start();
imagepng( $image, null, 9 ); imagegd( $image );
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -24,4 +24,4 @@ echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
282aaecfdd50091821d63093d9bb1bb9 e7f8ca8c63fb08b248f3ed6435983aed

View file

@ -28,10 +28,10 @@ imageline($mainimg, 50, 50, 50, 60, IMG_COLOR_BRUSHED);
// Get output and generate md5 hash // Get output and generate md5 hash
ob_start(); ob_start();
imagepng($mainimg, null, 9); imagegd($mainimg);
$result_image = ob_get_contents(); $result_image = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($result_image)); echo md5(base64_encode($result_image));
?> ?>
--EXPECT-- --EXPECT--
8168577c0d1fe6d9d11397cb15263d82 2bb294c388d826cc9bba6c6fd31f265a

View file

@ -24,11 +24,11 @@ imagesetthickness($image, 5);
imagerectangle($image, 14, 14, 185, 85, $black); imagerectangle($image, 14, 14, 185, 85, $black);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
93c3077f1bdc372cd0b0db96db282985 1a6bc882772310d2e9b32cca2574236c

View file

@ -15,11 +15,11 @@ $white = imagecolorallocate($image, 255,255,255);
$result = imagestring($image, 1, 5, 5, 'String Text', $white); $result = imagestring($image, 1, 5, 5, 'String Text', $white);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
d0d2fe757400cb7846b36a8c34b41e4a 7f146e3cdcaf89c6b9d68ccbb44cf94e

View file

@ -15,11 +15,11 @@ $white = imagecolorallocate($image, 255,255,255);
$result = imagestringup($image, 1, 5, 25, 'Str', $white); $result = imagestringup($image, 1, 5, 25, 'Str', $white);
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
echo md5(base64_encode($img)); echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
7c28016adcf620b772af2a8655b87bd2 7c55836800702bdd43b4c25d8ebcfcd0

View file

@ -20,7 +20,7 @@ $half2 = imagefilledarc ( $image, 75, 55, 80, 70, 0, -180, $b, IMG_ARC_PIE );
var_dump(imagetruecolortopalette($image, true, 2)); var_dump(imagetruecolortopalette($image, true, 2));
ob_start(); ob_start();
imagepng($image, null, 9); imagegd($image);
$img = ob_get_contents(); $img = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -28,4 +28,4 @@ echo md5(base64_encode($img));
?> ?>
--EXPECT-- --EXPECT--
bool(true) bool(true)
1d41787ff70aa0c7eea5ee9304afa36b 17c901cb2217eb7647deed1c79d445de

View file

@ -107,7 +107,7 @@ $points = array(
imagefilledpolygon($im, $points, 5, $black); imagefilledpolygon($im, $points, 5, $black);
ob_start(); ob_start();
imagepng($im); imagegd($im);
$png = ob_get_contents(); $png = ob_get_contents();
ob_end_clean(); ob_end_clean();
@ -116,4 +116,4 @@ echo md5($png);
imagedestroy($im); imagedestroy($im);
?> ?>
--EXPECTF-- --EXPECTF--
2e6cf558bb4dadf60c8b608d5f8cda4e df7253c765280396f303166f10ba9283