]> granicus.if.org Git - php/commitdiff
Fix and reactivate regression test for bug #50194
authorChristoph M. Becker <cmb@php.net>
Wed, 14 Sep 2016 22:34:55 +0000 (00:34 +0200)
committerChristoph M. Becker <cmbecker69@gmx.de>
Wed, 14 Sep 2016 22:46:00 +0000 (00:46 +0200)
Apparently, different FreeType versions render the string differently, so
we have to cater to these slight differences. Unfortunately, the testing
framework doesn't yet offer a clean API for this, so we work around the
limitations by parsing and checking the output of test_image_equals_file().

ext/gd/tests/bug50194.phpt

index 4b41a3a7027c11b5ffdb24a4db9c33b23973b076..f68165be42c203d74a943ba3940cd3befa26184d 100644 (file)
@@ -4,7 +4,7 @@ Bug #50194 (imagettftext broken on transparent background w/o alphablending)
 <?php
 if (!extension_loaded('gd')) die('skip gd extension not available');
 if (!function_exists('imagettftext')) die('skip imagettftext() not available');
-die('skip freetype issues');
+//die('skip freetype issues');
 ?>
 --FILE--
 <?php
@@ -20,11 +20,19 @@ $font = __DIR__ . DIRECTORY_SEPARATOR . 'Tuffy.ttf';
 imagettftext($im, 40, 0, 10, 40, $black, $font, $text);
 imagesavealpha($im, true);
 
+ob_start();
 test_image_equals_file(__DIR__ . DIRECTORY_SEPARATOR . 'bug50194.png', $im);
+$output = ob_get_clean();
+assert(preg_match('/The images are equal|The images differ in (\d+) pixels/', $output, $matches));
+if (isset($matches[1]) && $matches[1] > 2000) {
+    echo "The images differ in {$matches[1]} pixels.\n";
+} else {
+    echo "The images are similar.\n";
+}
 
 imagedestroy($im);
 ?>
 ===DONE===
 --EXPECT--
-The images are equal.
+The images are similar.
 ===DONE===