]> granicus.if.org Git - php/commitdiff
Make test case more resilient
authorChristoph M. Becker <cmbecker69@gmx.de>
Sun, 11 Sep 2016 16:29:27 +0000 (18:29 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Sun, 11 Sep 2016 16:29:27 +0000 (18:29 +0200)
This test case fails with external libgd, because libgd < 2.2.4 converts
palette images to truecolor (<https://github.com/libgd/libgd/issues/297>).

However, even if there happens no truecolor conversion, it is not guaranteed
that the palette indexes of the original and the cropped image are identical
(this is, for instance, not the case with current libgd master where the bug
has been fixed). Therefore we check for the expected RGBA value instead of
the palette index.

ext/gd/tests/bug67447.phpt

index 878b3226891d0d75d85ad7ebc0982389723a775b..c17454433d944d36d7d44f254daa9101d6497a3d 100644 (file)
@@ -23,10 +23,19 @@ imagecolorallocate($image, 0, 0, 255); // first palette color = background
 $red = imagecolorallocate($image, 255, 0, 0);
 imagefill($image, 0, 0, $red);
 $cropped = imagecrop($image, ['x' => 0, 'y' => 0, 'width' => 250, 'height' => 250]);
-var_dump(imagecolorat($cropped, 249, 249) === $red);
+var_dump(imagecolorsforindex($cropped, imagecolorat($cropped, 249, 249)));
 imagedestroy($image);
 imagedestroy($cropped);
 ?>
 --EXPECT--
 bool(true)
-bool(true)
+array(4) {
+  ["red"]=>
+  int(255)
+  ["green"]=>
+  int(0)
+  ["blue"]=>
+  int(0)
+  ["alpha"]=>
+  int(0)
+}